1 votos

¿Cómo hacer funcionar esta pantalla I2C OLED? (probablemente SH1106)

Acabo de recibir esta pantalla: lien pero desgraciadamente es diferente a lo mostrado en las revisiones. Esta es mi versión lien

Probablemente se basa en el SH1106 pero no puedo hacerlo funcionar. He probado algunas bibliotecas populares de Arduino pero no puedo obtener la dirección de esta pantalla desde el escáner I2C - no responde.

¿Alguien sabe cómo programarlo?

1voto

Isuress Puntos 18

Creo que su pantalla OLED podría ser una basada en SSD1306, y no una SH1106 como usted cree.

Si ese fuera el caso, creo que te alegrará saber que existe una biblioteca para ello (hecha por Adafruit):

https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples

Por lo que he leído, también debes hacer una pequeña modificación de código para que tu pantalla OLED funcione. Es sencillo y lo puedes encontrar aquí:

http://www.modlog.net/?p=887

Espero que esto te ayude.

1voto

nick_gabpe Puntos 123

Pude hacer que la pantalla funcionara con la librería de Adafruit, basándome en la siguiente configuración:

// If using software SPI (the default case):
#define OLED_MOSI   11       //SDA in the OLED display
#define OLED_CLK   13        //SCL in the OLED display
#define OLED_DC    9         //D/C in the OLED display
#define OLED_CS    10        //Its not connected
#define OLED_RESET 2         //RST in the OLED display
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

Recuerde: Utiliza el ejemplo con la comunicación SPI, ¡todo funciona GENIAL!

0voto

nick_gabpe Puntos 123

Acabo de comprar una pantalla exactamente igual a la tuya y también tenía el mismo problema... y tratando de buscar una solución llegué con tu pregunta, y después encontré la solución!!!:

http://forum.arduino.cc/index.php?topic=217290.0

Siga los pasos del usuario: Caltoa, -Usa el U8glib, toma el ejemplo 'Hello World' para Arduino, y descomenta la sección:

U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9);   // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

Y añade un "2" al final, así:

U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 2);    // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

Entonces conéctate así:

U8GLIB_SSD1306_128X64 u8g( SCL, SDA, 'cs no connected', D/C, RST);

¡¡Totalmente trabajando!!

p.d. No es una pantalla I2C, utiliza una comunicación SPI, ¡las etiquetas de la pantalla están mal! Por eso en la librería tienes que usar la 'Comunicación SPI por software'.

¡¡Espero que te funcione, y a todos los que tienen el mismo problema!!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X