Pantalla invertida y de color incorrecto

2

Estoy tratando de abordar una pantalla LCD 320x240 con sistema ILI9320 (chino barato) de un Arduino Mega 1280. Lo tengo para trabajar a través de biblioteca UTFT . Bueno, no del todo; se muestra algo, pero los colores parecen estar un poco desvanecidos e incorrectos, y la pantalla parece estar invertida en un espejo (al menos las letras impresas en la pantalla por los programas de ejemplo de la biblioteca UTFT).

Supuestamente esta es la documentación de la pantalla que tengo. Lo estoy ejecutando desde un Arduino Mega 1280, el ejemplo dado en la página de documentación es para el Mega 2560; ¿Podría ser esa la razón de mis problemas? Conecté todos los pines (RST, RS, WR (en realidad llamados RW en mi tablero de pantalla), RO y DB0-DB7 de acuerdo con la documentación anterior:

RS -> D38
WR -> D39
CS(pin6) -> D40
RSET-> D41
RD -> 3.3V
DB0->DB7 to D22->D29

Verificó dos veces todas estas conexiones para que estén conectadas donde los documentos dicen que deberían.

Primero tuve 5V y Gnd también conectado; pero como la asignación de pines anterior no los menciona en absoluto, los probé sin ellos y noté que no eran necesarios; la pantalla también muestra algo sin ellos conectados, aunque la desconexión de Gnd hace que la imagen sea un poco más oscura. ¿Podría haber volado los circuitos de pantalla de alguna manera por eso? ¿Debo conectar 5V?

Aquí hay algunos ejemplos de imágenes de cómo se ve:

Desde el programa de demostración (Bitmap de UTFT): Supongo que deben ser Tux'es de color adecuado y caras felices en varios tamaños, supongo:

Sesuponequeesunrectángulorojoconeltexto"Hello World" en todo, que se muestra a través del mismo método que en el programa de demostración "Bitmap" de UTFT): Sesuponequeesunrectángulorojoconeltexto"Hola mundo" a través de

¿Alguna idea de lo que estoy haciendo mal aquí?

Algo que olvidé mencionar al principio (¡pero que podría ser muy importante!): En el código de ejemplo, intenté usar myGLCD(ILI9320,38,39,40,41) para la inicialización como se menciona en la documentación, pero ILI9320 no parece estar definido en la versión de UTFT que estoy usando (y tampoco se menciona en ninguna parte en los comentarios en UTFT.h, solo ILI9325D), así que probé ITDB24D; Jugué un poco con el posible valor, pero no he probado todos los valores posibles, ¿quizás aún no he encontrado el correcto? ¿Alguien sabe cuál es el valor correcto que se debe usar o dónde se define ILI9320?

    
pregunta codeling

4 respuestas

1

Suponiendo que su cableado es correcto: ¿ha intentado ingresar a myGLCD (GEEE24,38,39,40,41)? Esto es para los controladores ILI9320. Está escrito en el PDF en la carpeta UTFT. Probé el mismo módulo y, para mí, la imagen resultó ser reflejada con muchos parpadeos (pero con la calidad de imagen adecuada) hasta que descubrí que definir el controlador como ITDB24D solucionó todos los problemas a la vez. Por lo tanto, el controlador interno (al menos en mi módulo, como dijo el vendedor) realmente parece ser un ILI9325 ... confuso, pero mi módulo está funcionando ahora (con un mega2560 y 5V suministrados). Solo tuve que calibrar la pantalla táctil.

    
respondido por el insanitywolf
3

Según sus comentarios de aclaración, parece que está logrando alimentar la pantalla a través de sus diodos de protección. Es realmente notable que funcione tan bien como está, dadas las circunstancias.

Debe conectar Vcc en la pantalla a 3.3V y Gnd a tierra para asegurarse de que toda la lógica en el controlador de la pantalla esté obteniendo el voltaje correcto a una corriente suficiente.

    
respondido por el Dave Tweed
0

Debes usar ITDB24 no D. También use memorysaver.h y elimine los comentarios de todos los tipos de visualización que no esté utilizando para reducir la sobrecarga de la biblioteca.

    
respondido por el dezellis
0

Si está utilizando la rotación predeterminada, todavía debe declararla en su código. Esto solucionó el problema para mí. Hay una pequeña demostración de video aquí al final:

enlace

Solo configura tu    tft.setRotation (0); y deberías ser bueno para ir.

    
respondido por el user99272

Lea otras preguntas en las etiquetas