Go Down

Topic: [SOLUCIONADO] Mostrar gráficos en OLED I2C SSD1306 con ESP8266 (Read 1 time) previous topic - next topic

luisbcn

Hola,

Estoy intentando montar un display OLED I2C SSD1306 con un ESP8266 que me muestre lecturas de un sensor DHT22.

Intento dibujar imágenes para mostrarlas (batería, termómetro...), pero el problema es que al mostrarlas me aparecen cortadas como se ve en la imagen adjunta.


Utilizo las librerías Adafruit-GFX-Library y esp8266-oled-ssd1306 (https://github.com/squix78/esp8266-oled-ssd1306) y en un principio funcionan bien, incluso la demo que trae con una imagen del logo de Wifi se muestra correctamente, pero las que yo creo no.

Os suena a qué puede ser debido?

Muchas gracias por vuestro tiempo.

luisbcn

Hola,

Por lo que he conseguido que me contesten en otro foro, parece que el problema es debido al orden de los bits.
El bitmap se pinta en la pantalla de izquierda a derecha y ordenándolo al revés funciona:

Mi código (ERRONEO):
Code: [Select]
const char batt_high_bits[] PROGMEM = {
0xFF, 0xFE, 0x80, 0x02, 0xBF, 0xC3, 0xBF, 0xC3, 0xBF, 0xC3, 0xBF, 0xC3, 0x80, 0x02, 0xFF, 0xFE,
};


El código que pinta bien el bitmap (CORRECTO):
Code: [Select]
const char batt_high_bits[] PROGMEM = {
0xFF, 0x7F, 0x01, 0x40, 0xFD, 0xC3, 0xFD, 0xC3, 0xFD, 0xC3, 0xFD, 0xC3, 0x01, 0x40, 0xFF, 0x7F,
};


No he conseguido entender esta respuesta que me han dado, he probado con diferentes programas y opciones, pero no he conseguido generar este código correcto, es decir, averiguar como hacer el "reverso".

Sabéis donde puedo encontrar información sobre esto, o alguien que controle el tema puede echarme una mano?

Gracias.

luisbcn

Tema solucionado.

Según me explican en el foro inglés, la forma de hacer está conversión es cambiando el orden de los valores binarios.

Adjunto el mismo ejemplo que me han dado:
Code: [Select]
You need to think in binary. For example
0xFE, 0x80, 0x02,... in binary is:
11111110, 10000000, 00000010

became:
0x7F, 0x01, 0x40,... which is:
01111111, 00000001, 01000000

Ahora los bitmaps ya se muestran bien:


Quizás alguien se encuentre con el mismo problema y le vaya bien esta explicación.

Un saludo.

Go Up