Voltee la imagen de la pantalla OLED 128x64 de 0.96 pulgadas

2

Estoy buscando un método para voltear la imagen de una pantalla OLED 128x64 0.96 pulgadas (con controlador SSD1306). Es el que tengo solo con 4 pines (imagen encontrada en Internet):

Loquequierohaceres:

¿Existen actualmente formas posibles de hacer esto con un Arduino?

Vi en diferentes foros que las personas están cambiando sus pantallas debido a un problema de biblioteca. ¿Puedo hacer eso intencionalmente para lograrlo?

Pensé que podía obtener cada píxel y posicionarlo de nuevo, pero ocuparía mucho ram. Si esa es la única solución, ¿podría decirme cómo puedo obtener el píxel, esté o no encendido, de Arduino?

Gracias de antemano!

    
pregunta Jordan Fung

3 respuestas

4

SSD1306 admite el cambio de pantalla (creación de reflejo): solo es necesario cambiar la inicialización: COMSCANDEC a COMSCANINC o vice verasa.

COMSCANINC = 0xc0
COMSCANDEC = 0xc8

Más información en hoja de datos y la sección: 10.1.14 Establecer la dirección de exploración de salida COM (C0h / C8h)

    
respondido por el vlk
1

La forma de cambiar lo que estás haciendo por lo que quieres hacer es muy fácil, probablemente.
PERO hasta que nos diga lo que realmente está haciendo para obtener la descripción de la imagen de cambio para visualizar los datos y emitirlos, no podemos estar seguros de que la solución sea correcta.

Debes proporcionar enlaces para mostrar & controlador y suficientes detalles sobre cómo está generando y transfiriendo datos a la pantalla para que quede claro sin ambigüedades.

Se necesitan más datos sobre cómo conducir estos. ¿Produces la imagen completa en la unidad uC y la imprimes o?

Soluciones que pueden funcionar según lo que realmente sea su método no revelado.

(1) Si efectivamente tiene la imagen como un mapa de bits o puede generarla como si fuera una, enviar las líneas de datos en orden inverso hará lo que quiera.
Envíe la última línea 1ª, luego 2ª a última, luego 3ª a última ...

(2) Si tiene la capacidad de escribir una línea de píxeles en la línea (xxx)
luego escribiéndola en la línea (line_numbermax - xxx +1 ) hará lo que quieras.
por ejemplo, en una pantalla de 9 líneas
la línea 1 se asigna a 9-1 + 1 = 9
la línea 9 se asigna a 9-9 + 1 = 1
la línea 3 se asigna a 9 - 3 +1 = 7
QED.

    
respondido por el Russell McMahon
0

Con el paquete Arduino SSD1306.h, simplemente añada

display.flipScreenVertically();

después de su llamada a display.init ()

    
respondido por el John

Lea otras preguntas en las etiquetas