Para empezar con las exhibiciones de OLED (6 / 16 paso)

Paso 6: ¿Cómo dibujar un pixel?

Ahora que sabemos cómo funciona el OLED, podemos crear un programa que permite al usuario convertir en un píxel específico de la pantalla.

 #include //Include Wire library for I2C communication#define HEIGHT 64 #define WIDTH 128 const int RST = 10; //Assign pin 10 for Reset int i; //Set variable i as integer static unsigned char array[1024]; //buffer array/> void setup() { pin_init(); //Initialize pins initialize_OLED(); //Initialize screen memset(array, 0, sizeof(array)); //Clear array draw_pixel(63,31); //Store pixel at (x,y) location Flush(); //Send data } void loop() { //Nothing happens here } void pin_init(){ Serial.begin(9600); //Set baud for serial transmission pinMode(RST, OUTPUT); //Set RST as output } void initialize_OLED(){ Wire.begin(); //Initialize I2C interface digitalWrite(RST, LOW); //Set reset pin low (active) delay(10); //Wait 100 ms digitalWrite(RST, HIGH); //Set reset pin high (inactive) Wire.beginTransmission(0x3D); // Start communication with slave Wire.write(0x00); //Command stream Wire.write(0xAE); //Set display Off Wire.write(0xD5); //Set display clock divide ratio/oscillator frequency Wire.write(0x80); Wire.write(0xA8); //Set multiplex ratio Wire.write(0x3F); Wire.write(0xD3); //Set display offset Wire.write(0x00); Wire.write(0x40); //Set display start line Wire.write(0x8D); //Set charge pump Wire.write(0x14); //VCC generated by internal DC/DC circuit Wire.write(0xA1); //Set segment re-map Wire.write(0xC0); //Set COM output scan direction Wire.write(0xDA); //Set COM pins hardware configuration Wire.write(0x12); Wire.write(0x81); //Set contrast control Wire.write(0xCF); Wire.write(0xD9); //Set pre-changed period Wire.write(0xF1); Wire.write(0xDB); //Set VCOMH Deselected level Wire.write(0x40); Wire.write(0xA4); //Set entire display on/off Wire.write(0xA6); //Set normal display Wire.write(0x20); //Set memory address mode Wire.write(0x00); //Horizontal Wire.write(0xAF); //Set display on Wire.endTransmission(); //End communicaiton with slave } void draw_pixel(int x, int y) if((x<0) || (x>=WIDTH) || (y<0) || (y>=HEIGHT)){ //Check for boundaries return; } else{ array[x+(y/8)*WIDTH] |= _BV((y%8)); //Store pixel in array } } void Flush(){ Wire.beginTransmission(0x3D); //Start communication with slave Wire.write(0x00); //Command stream Wire.write(0x00); //Set lower column start address for page addressing mode Wire.write(0x10); //Set higher column start address for page addressing mode Wire.write(0x40); //Set display start line Wire.endTransmission(); //End communication with slave unsigned char twbrbackup = TWBR; //Two wire bit rate register TWBR = 12; //Set to 400 kHz for(unsigned short q=0; q<(WIDTH*HEIGHT/8); q++){ Wire.beginTransmission(0x3D); //Start communication with slave Wire.write(0x40); //Data stream for(unsigned char w=0; w<16; w++){ Wire.write(array[q]); //Transmit data to be displayed q++; } q--; Wire.endTransmission(); //End communication with slave } TWBR = twbrbackup; } 

La biblioteca de alambre permite a Arduino para comunicarse con dispositivos I2C. En la primera parte del código asignar el pin digital ya se ha mencionado a RST y crear un array para los datos que queremos mostrar. Entonces pin RST es inicializado por lo que es una salida. A continuación, se inicializa el OLED siguiendo el ejemplo mostrado en la pantalla hoja de datos en la página 15. Se recomienda que reinicie una vez el dispositivo antes de empezar a utilizarlo. Esto se hace estableciendo primero baja por algún tiempo y luego alta. Ya que este pin es baja activa, debe ser alta durante la operación normal.

Artículos Relacionados

Para empezar con Phidgets en la frambuesa Pi

Para empezar con Phidgets en la frambuesa Pi

Este instructable es una adaptación de uno de nuestro blog posts .Antes de comenzar, usted querrá tener algunas cosas en su lugar. Necesitarás:Una funcionamiento frambuesa Pi (obviamente).Un por separado USB concentrador, ya que el Raspberry Pi no es
Para empezar con uno de LinkIt - GPS

Para empezar con uno de LinkIt - GPS

Este es instructivo forma parte de una serie de instructables en el que muestro cómo comenzar con un tablero de LinkIt uno. En el anterior instructable veíamos cómo conectar su LinkIt uno a una red WiFi, en este instructable voy a mostrarte cómo empe
Para empezar con el Edison Intel - WIFI

Para empezar con el Edison Intel - WIFI

Esto es parte de una serie de procedimientos iniciales con el Edison de Intel, en el tutorial pasado que veíamos cómo actualizar Linux corriendo en el Edison y antes de que debe cómo comenzar con el IDE de Arduino y Edison de Intel en una escapada de
Para empezar con Edison - parpadear un LED en la consola de

Para empezar con Edison - parpadear un LED en la consola de

Esto es parte de una serie de procedimientos iniciales con el Edison de Intel, en los dos últimos tutoriales que te mostré cómo instalar el IDE de Arduino, programa el Edison de Intel y actualizar Linux corriendo en el Edison.En este tutorial voy a m
Para empezar con el ATMega328P

Para empezar con el ATMega328P

En el movimiento de Internet de las cosas , personas en todo el mundo conectan sus cosas – TV, mascotas, plantas de interior incluso - a internet y transmitir a todo tipo de datos.Si vas a ser parte de ese movimiento, o quieren incursionar en prototi
Para empezar con IoT usando la partícula

Para empezar con IoT usando la partícula

IoT es un muy divertido experimentar, mientras que la diversión también es energía muy completo. Puede obtener una amplia gama de dispositivos de conexión, como por ejemplo una cafetera puede tweet cuando se hace el café o un automático garage abrela
Para empezar con el DP32 de Digilent

Para empezar con el DP32 de Digilent

Yo uso el DP32 para mi serie de Robots baratos. Este tutorial es a debe leer para cualquier persona usando DP32, debido a la configuración de esta tarjeta significa que toma configuración un poco más que las otras placas como la UC32 o Arduino.El DP3
Para empezar con uno de LinkIt - Servo

Para empezar con uno de LinkIt - Servo

En los últimos instructable le mostré cómo empezar con un LinkIt uno y cómo a parpadear un LED y crear patrones de uso. Esto es parte de la serie donde te muestro cómo conseguir comenzó con Servos con el link uno y cómo controlar un servo con un telé
Para empezar con AVR de Atmel y BASCOM

Para empezar con AVR de Atmel y BASCOM

He visto un montón de Instructables que muestra cómo trabajar con microprocesadores, pero todos asumen que han trabajado con ellos antes y saber lo que está haciendo. No he visto un Instructable que te lleva de la nada y se basa en cada paso.Lo que h
Para empezar con la frambuesa Pi 2 (LabVIEW)

Para empezar con la frambuesa Pi 2 (LabVIEW)

Esta guía detallada se va sobre los pasos necesarios para conectar la frambuesa Pi 2 modelo B (2 de RPI) o frambuesa Pi 3 modelo B a LabVIEW utilizando LabVIEW MakerHub LINX. LINX es utilizado para interactuar con plataformas comunes incrustadas como
Para empezar con Analog.IO y eléctrica Imp

Para empezar con Analog.IO y eléctrica Imp

Analog.IO es un nuevo sitio web dedicado al intercambio de flujos de datos de internet de las cosas los dispositivos conectados. Analog.IO le permite ver sus datos a través de un navegador donde quiera que estés en el mundo. Control de los datos que
Para empezar con el Kit de escena para iOS

Para empezar con el Kit de escena para iOS

En iOS 8, escena fue lanzado el iOS y dio a los desarrolladores el poder usar 3D en sus juegos móviles sin conocimiento de OpenGL ES, un motor de juego separado como unidad 3D o Unreal Engine. Es una gran biblioteca que se puede utilizar en las aplic
Para empezar con eléctrica Imp

Para empezar con eléctrica Imp

Imp eléctrico hace que sea fácil y divertido para llevar conectividad a Internet a sus dispositivos.Este Instructables te guiará por el proceso de creación de una cuenta eléctrica Imp y consiguiendo a su primer Imp en línea.Usted necesitará los sigui
Para empezar con uno de LinkIt - Servos

Para empezar con uno de LinkIt - Servos

¿Cuál es el punto de tener una placa de desarrollo si usted no mover las cosas con él?Esta es la guía que comenzar con el uso de Servos (motorreductores controlados digitalmente) en sus proyectos usando el tablero de LinkIt uno.Otra vez esto está dir