Go Down

Topic: Shield casero para pantallas genéricas ILI9341 en arduino Due (Read 868 times) previous topic - next topic

TFTLCDCyg

Recientemente he estado trabajando varios proyectos en arduino Due con pantallas TFT genéricas basadas en el chip ILI9341.


Afortunadamente hay mucho trabajo hecho al respecto en los foros y tenemos bastante información para conexionado y librerias para su manejo.

Inevitablemente y aún con buena voluntad, el montaje de este tipo de pantallas finaliza con este resultado:


Hasta ahora no he visto un shield que ayude a mejorar esta situación. Claro se puede usar una protoboard, pero también hay que colocar cableado para las conexiones.

Para tener un mejor manejo de la pantalla decidí construir un shield para el arduino Due.

Materiales

- 1 proto shield como estos  Prototype PCB for Arduino UNO R3 Shield Board DIY
- 1 tira de 16 pines con conectores cortos
- 3 tiras de 6 pines con conectores de 12 mm
- 2 tiras de 8 pines con conectores de 12 mm
- 1 tira de 10 pines con conectores de 12 mm
- 1 shield micro SD
- Cables de prototipado de colores diferentes
- 1 tira de 20 pines
- Herramientas para cortar cable y soldar


El PCB del shield universal que seleccioné tiene dos particularidades:

- No hay pistas de cobre que unan el cabezal SPI a los pines digitales relacionados con el arduino UNO
- Las perforaciones del PCB que quedan sobre el conector SPI, estan alineadas con los 6 pines. Esto permite extender el cabezal SPI hasta el shield de soporte del TFT.

Montaje

Paso 1
Para tener acceso al pin A6 del arduino Due, hay que rebajar la esquina inferior derecha del PCB universal, hasta llegar a la pista de cobre del pin A5. Con ello dejamos libre todos los pines analógicos.


Paso 2
Para asegurar que la extensión del cabezal SPI no tenga falsos contactos, colocamos dos tiras de 6 pines en el conector. Si es posible conseguir cabezales de 3 pines es mejor, no pude conseguir cabezales mas pequeños.


Paso 3
Colocamos los cabezales de 10, 8 y 6 pines, en las posiciones respectivas en el PCB. De esta forma conseguimos alinear todos los pines respecto al arduino Due.


Paso 4
Estañamos los extremos de cada cabezal, asegurando su posición.


Separamos el PCB del arduino Due, procurando que no se doblen los pines de los cabezales, ya que aun no están completamente asegurados.

Paso 5
Resta por colocar el soporte principal de la pantalla: al cabezal de 16 pines. Recortamos a la mitad de su extensión tres de los pines en uno de sus extremos


El cabezal de soporte lo centramos en el PCB, en el extremo opuesto a la posición de SPI, procurando dejar una hilera de perforaciones en el borde del PCB. Los pines recortados deben quedar sobre el conector de alimentación externa del Due

Paso 6
Estañamos todos los pines de los cabezales, para asegurar su lugar en el PCB



PD: dejo aquí el montaje debo ir al trabajo  :)

TFTLCDCyg

Perdí de vista el hilo, encima he estado muy atareado con otros proyectos. Continuando con el montaje:

Paso 7
Colocamos una tira de 6 pines cerca del pin digital 4, servirá como soporte para la pantalla.




Paso 8
Se ubica el shield del lector micro SD a un lado del conector principal de la pantalla. Decidí dejar la tira de pines que tiene con la idea de disponer de pines extra del cabezal SPI.


Estañé la parte posterior para fijar el shield al PCB.


Paso 9
Realizar las conexiones con cables reciclados. Decidí hacerlo así en lugar de trazar pistas en el PCB, ya que es menos tardado y decidí recuperar la pedacería de cables de otros proyectos. No queda 100% estético, pero hace el trabajo.


El conexionado que seguí es el siguiente:

Code: [Select]
Pantalla TFT      Arduino Due

GND                 GND en cabezal SPI
VCC                 5V en cabezal SPI
MOSI                MOSI en cabezal SPI
SCK                 SCK en cabezal SPI
RESET               RESET en cabezal SPI
CS                  PIN 10
D/C                 PIN 9


Pantalla táctil    Arduino Due

T_CLK                PIN 6
T_CS                 PIN 5
T_DIN                PIN 4
T_DO                 PIN 3
T_IRQ                PIN 2

MicroSD    Arduino Due

SD-CS                PIN 7
GND                  GND
VCC                  5V-SPI
SD-MOSI              MOSI-SPI
SD-MISO              MISO-SPI
SD-SCK               SCK-SPI


La librería que estoy usando es esta: ILI9341_due by MarekB. Para la pantalla táctil estoy usando la librería U-touch

Este es el resultado, armé dos shields para poder aprovechar las pantallas ILI9341 de 2.4" en un par de proyectos. También pueden conectarse pantallas de 2.8" y de 2.2".




La ventaja principal es que ya no me tengo que preocupar de cables sueltos, y los pines quedan libres para hacer pruebas con sensores o shields adicionales.

El control del domo de ventilación lo habilité en una bahía de 5 1/4, aproveché uno de los shields con una extensión de 20 cms con cables de prototipado. Me permitió conseguir una instalación ordenada y de fácil mantenimiento









El otro shield me ha permitido experimentar con sensores de humedad, extensiones mas largas, sensores de temperatura, un DS3231, y mas adelante me permitirá experimentar con un módulo GPS, un sensor de voltaje.





Tengo planes para armar un controlador de ventiladores, mas adelante les compartiré el avance de ese proyecto.

FlyMan42

Gracias por compartirlo, buen trabajo, te sigo para ver como termina.

Saludos.

TFTLCDCyg

Las prioridades familiares y del trabajo me tienen algo alejado del proyecto. En los ratos libres he podido ensamblar los componentes del controlador prototipo.

Afortunadamente la libreria ILI9341_due, ya tiene soporte para arduinos de 5V como el MEGA o el UNO. Dado que tengo el arduino Due ocupado en la PC, para controlar el domo de ventilación, construí un segundo shield con divisores de voltaje para poder usar una pantalla ILI9341 en un arduino MEGA.

En cuando logre ensamblar la carcasa del controlador podré usar el Due, para el cual está diseñado el proyecto. Adapté un par de módulos de relevadores con la idea de poder encender y apagar cada uno de los ventiladores cuando no se necesiten (prueba con los relevadores). Esa versión tiene potenciadores de 50K

El circuito que estoy usando para regular la velocidad de cada ventiladores con ayuda potenciadores es este:


En lugar del TIP31C, conseguí algunos TIP41C, que tienen un mejor desempeño. También logré conseguir potenciadores lineales de 20K con la idea de mejorar el cambio de voltaje y por lo tanto mejorar el control de la velocidad de los ventiladores.



El problema con el que me he topado es que la linea de 12V de la fuente de la PC, tiene fluctuaciones cuando se activan los 5 ventiladores del controlador. Tengo que adaptar un regulador  o fuente de voltaje/amperaje con la idea de que que la alimentación de energía sea estable.

Pienso que una fuente regulada, con unos 2 a 3A a la salida puede ser la solución. Debo hacer mas pruebas antes de instalarlo en la PC

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy