Menú
gratis
Registro
Hogar  /  Programas/ Pantalla táctil para Arduino. Botones táctiles en Arduino

Pantalla táctil para Arduino. Botones táctiles en Arduino

La pantalla táctil será una decoración para cualquier proyecto Arduino.

En este artículo veremos una pantalla táctil con una ranura incorporada para una tarjeta microSD. La pantalla TFT tiene una diagonal de 2,8", retroiluminada mediante 4 LED blancos y la capacidad de mostrar 262.000 tonos de colores (18 bits). La pantalla tiene una resolución de 240 x 320 píxeles con control individual. Tenga en cuenta que esto es mucho más que , por ejemplo, pantalla LCD blanco y negro 5110. El escudo tiene una pantalla táctil resistiva incorporada, que le permite determinar la posición de su dedo cuando presiona la pantalla.

Información general y características técnicas del escudo TFT LCD 2.8"

La pantalla TFT se vende completamente montada, lista para usar. Sólo necesitas instalarlo encima de tu Arduino y conectar la biblioteca necesaria al IDE de Arduino. ¡El procedimiento de instalación/puesta en servicio/primera puesta en marcha no tardará más de 10 minutos!

El escudo TFT tiene un controlador incorporado con almacenamiento en búfer de RAM. Como resultado, la mayoría de las operaciones se transfieren al propio escudo, en lugar de cargar el controlador en el Arduino. Para conectar una pantalla de pantalla TFT, bastan unos pocos pines: 12 pines son responsables de la pantalla, 13 del funcionamiento de la tarjeta SD, si utiliza una.

Por supuesto, los fabricantes no nos dejaron solos con la hoja de datos y el deseo “¡Buena suerte!” Existen bibliotecas que te facilitarán enormemente el trabajo con el escudo TFT.

Hay uno genial gráficos de código abierto una biblioteca que te permite dibujar píxeles, líneas, rectángulos, círculos y texto: Descargar en Github.

Además, se ha escrito una biblioteca de pantalla táctil: Descargar en Github, que determina las coordenadas x, y, z (presión), que contiene un boceto de ejemplo para demostrar estas capacidades. ¡Este boceto está escrito para Arduino, pero puede adaptarse a otros microcontroladores!

Especificaciones de la pantalla TFT:

  • La diagonal de la pantalla LCD TFT es de 2,8"
  • Resolución 240x320 píxeles, gama de colores de 18 bits (262000)
  • Controlador ILI9325 o ILI9328 con buffer incorporado RAM
  • Interfaz digital 8 bits, más 4 líneas de control
  • Utiliza pines digitales 5-13 y analógicos 0-3. Esto significa que puedes usar los pines digitales 2, 3 y analógicos 4 y 5. El pin 12 también está disponible si no estás usando una tarjeta microSD.
  • Compatible con cualquier placa Arduino "328 o Mega
  • ¡Compatible con 5V! Puede utilizar potencia lógica de 3,3 V y 5 V.
  • Hay un regulador LDO incorporado de 3,3 V a 300 mA.
  • Iluminado con 4 LEDs blancos. Habilitado de forma predeterminada. Para el control, puede conectar un transistor a un pin digital retroiluminado.
  • Pantalla táctil resistiva de 4 hilos

Preguntas y respuestas adicionales

Miré la hoja de datos y descubrí que hay una interfaz SPI disponible. ¿Por qué estás utilizando una interfaz paralela? SPI es mejor, ¡se utilizarán menos pines!

De hecho, el controlador en la pantalla admite SPI, pero no hay pantallas que puedan usarlo. En el escudo de la pantalla táctil los pines correspondientes simplemente no se muestran como conectores. Lo más probable es que esto se deba al hecho de que la velocidad de transferencia a través de SPI sería muy lenta.

¡Todos los pines están incluidos! ¿Cómo puedo conectar algo más al Arduino?

Ejemplo de dibujo en una pantalla táctil.

Este protector LCD TFT tiene una pantalla resistiva de 4 hilos incorporada de 2,8". Se puede utilizar para determinar el punto de contacto de un dedo, lápiz óptico, etc. Para trabajar con pantalla táctil Necesitarás 4 pines en el Arduino.

Puedes descargar el ejemplo aquí: Repositorio de Github. No olvide descomprimir el archivo descargado y moverlo a la carpeta de bibliotecas de su Arduino IDE.

La pantalla táctil se conecta al Arduino de la siguiente manera:

  • Y+ se conecta al pin analógico 1
  • Y - se conecta al pin digital 7
  • X+ se conecta al pin digital 6
  • X - se conecta al pin analógico 2

Una vez conectado, descargue el ejemplo tftpaint_shield, que se encuentra en la biblioteca TFTLCD. CON lado derecho En la pantalla aparecerán “cajas con flores”. Puedes hacer clic en uno de los cuadros para seleccionar el color con el que pintarás. Al hacer clic en el lado izquierdo de la pantalla, puede borrarlo.

La pantalla táctil está hecha de cristal fino. Es muy frágil. La más mínima grieta o daño lo dejará inutilizable. Tenga cuidado al mover la pantalla, especialmente en las esquinas. Para interactuar con la pantalla resistiva, puede utilizar no solo los dedos, sino también el lápiz óptico. Por supuesto, tampoco deberías ejercer demasiada presión sobre la superficie de la pantalla.


Subiendo fotos

La pantalla LCD TFT de 2,8" tiene una ranura incorporada para una tarjeta micoSD. ¡Esta ranura se puede utilizar para cargar imágenes! Preformatee la tarjeta en FAT32 o FAT16 (aquí se muestran más detalles sobre cómo funciona una tarjeta SD con Arduino) .

En la mayoría de los bocetos de ejemplo, la tarjeta SD no funcionará. Primero debe inicializarse.

Para aumentar la velocidad de transferencia de datos, puede descargar una biblioteca adicional aquí: Correcciones y actualizaciones de la biblioteca SD de Arduino. No olvide copiar la biblioteca extraída a la carpeta correspondiente en el IDE de Arduino.

Si está utilizando Arduino Mega, realice algunos cambios en el archivo SD/utility/Sd2Card.h. Debes eliminar la etiqueta de comentario de la línea #define MEGA_SOFT_SPI 1. Gracias a esto, Arduino Mega podrá usar los mismos pines que el Arduino clásico para intercambiar datos con la tarjeta SD. Para realizar pruebas, puedes descargar esta imagen de un tigre: ¡Descarga este mapa de bits de tigre y guárdalo en la tarjeta microsd!

Inicie Arduino IDE y seleccione el boceto tftbmp_shield. ¡Súbelo a tu Arduino y listo! La pantalla mostrará lo siguiente:


Se pueden cargar imágenes de menos de 240 x 320 píxeles. Los dibujos deben guardarse en 24 bits. formato BMP. Incluso si el dibujo no era originalmente de 24 bits, vuelva a guardarlo, ya que este es el formato más fácil de leer. usando arduino. Puede rotar imágenes usando el procedimiento setRotation().

Control de retroiluminación

De forma predeterminada, los desarrolladores de Shield suponen que utilizará la luz de fondo todo el tiempo. Sin embargo, puedes controlar su brillo mediante salidas PWM o apagarlo por completo para ahorrar energía. Para hacer esto necesitarás trabajar un poco. Busque dos conectores de retroiluminación en la parte posterior del protector LCD TFT de 2,8". Con un cuchillo, retire la pista entre los terminales VCC y conecte los dos cuadrados etiquetados como Pin3. Después de esto, podrá controlar la retroiluminación utilizando el pin digital 3.

Deja tus comentarios, preguntas y comparte experiencia personal abajo. ¡A menudo surgen nuevas ideas y proyectos de las discusiones!

El escudo en cuestión es una placa con módulos de control y visualización integrados. La indicación se realiza mediante la pantalla LCD TC1602, el control se realiza mediante botones integrados. Es posible ajustar el brillo de la pantalla directamente en la placa mediante una resistencia de ajuste. La placa está equipada con conectores a los que se pueden conectar otros dispositivos, como por ejemplo sensores. Los pines 4 a 10 se utilizan para trabajar con la pantalla y solo se utiliza un pin analógico A0 para detectar pulsaciones de botones. Los pines digitales 0-3, 11-13 y los pines analógicos A1-A5 están libres.

Las principales áreas de aplicación del escudo: la creación de módulos de control que implementan la configuración del dispositivo mediante la interfaz del menú. La pantalla protectora se puede utilizar para mostrar información recibida de los sensores, y el usuario puede realizar cualquier acción presionando los botones integrados. Naturalmente, puedes encontrar otras formas de utilizar el tablero: por ejemplo, para implementar un juego como el Tetris.

Presupuesto

  • Tipo de pantalla: LCD 1602, caracteres, modo de 4 bits.
  • Resolución: 16×2 (dos líneas de 16 caracteres cada una). Lugar familiar 5x8 puntos.
  • Color de pantalla: azul (opciones amarillas y verdes disponibles). Las letras son blancas.
  • Tecnología: STN, Transflectiva, Positiva.
  • Controlador de pantalla: HD44780U.
  • Límite de frecuencia de actualización de pantalla: 5 Hz
  • Potencia de la pantalla: 5 voltios
  • Botones: 6 botones (5 botones de control y reset).
  • Elementos adicionales: ajuste del brillo de la retroiluminación (potenciómetro).
  • Temperatura de funcionamiento de la pantalla: de -20 °C a +70 °C;
  • Temperatura de almacenamiento de la pantalla: de -30 °C a +80 °C.

Distribución de pines del escudo LCD para conectar a Arduino

Mostrar contactoLCD 1602 Descripción Contacto enEscudo LCD
Pataspantalla LCD
TierraTierra
VDDFuente de alimentación 5V
Contrastecontrol de contrastePotenciómetro
R.S.Comandos/Datos8
R/ELeer/Escribir
PermitirEncendido (activación)9
DB0No usado
DB1No usado
DB2No usado
DB3No usado
DB4Fecha 14
DB5fecha 25
DB6fecha 36
DB7fecha 47
LED trasero+Enciende la luz de fondo10
LED trasero –Potencia de retroiluminación
Alfileres para botones
botón ARRIBAbotón de controlA0
botón ABAJObotón de controlA0
botón IZQUIERDObotón de controlA0
botón DERECHObotón de controlA0
Botón SELECCIONARbotón de controlA0
ReiniciarReiniciar
PEPSIICSP para flashear el microcontrolador incorporado HD44780U
UARTContactos para conexión UART0, 1

Elementos de escudo adicionales

  • LED indicador (se enciende cuando se conecta la alimentación a la placa).
  • Almohadillas de contacto para conexión dispositivos analógicos(GND, VSS, pin de datos).
  • Potenciómetro para ajustar el contraste de la pantalla.

Conexión de la placa protectora LCD a Arduino

Conectar el escudo es muy simple: debe colocar las patas en los conectores correspondientes de la placa Arduino y alinearlas con cuidado. No es necesario conectar ni soldar nada adicional. ¡Debe recordar y tener en cuenta el hecho de que algunos pines están reservados para controlar la pantalla y los botones y no pueden usarse para otras necesidades! Para facilitar la conexión de equipos adicionales, la placa tiene conectores adicionales de 5V y GND para cada uno. almohadilla de contacto pines analógicos. Sin duda, esto facilita el trabajo con sensores. También puedes conectarte dispositivos digitales a través de los pines libres 0-3 y 11-13. Una vez conectado el escudo, podemos trabajar con la pantalla y los botones del mismo de la misma forma que con dispositivos individuales, teniendo en cuenta únicamente los números de los pines a los que están soldados los contactos correspondientes.

Boceto para la pantalla en el escudo LCD Arduino.

Para trabajar con pantallas LCD se suele utilizar la popular biblioteca LiquidCrystal. En la etapa de inicialización, se crea un objeto de la clase LiquidCrystal, en cuyo constructor especificamos pines con contactos de pantalla conectados. Para nuestro escudo necesitamos usar esta opción: LiquidCrystal lcd(8, 9, 4, 5, 6, 7); Secuencia de argumentos del constructor:

  • RS (8)
  • Habilitar (9)
  • datos(4)
  • datos(5)
  • datos(6)
  • datos(7)

No hay nada complicado en trabajar con un objeto. En setup() inicializamos el objeto dándole el número de caracteres y líneas:

Lcd.comienzo(16, 2);

Para mostrar información en la pantalla, utilice el método print():

Lcd.print (“¡Maestro Arduino!”);

El texto se mostrará en la ubicación actual del cursor (al comienzo del boceto, esta es la primera línea y el primer carácter). Para especificar una posición arbitraria del cursor, puede utilizar setCursor(<столбец>, <строка>):

Lcd.setCursor(0, 0); // Primer carácter de la primera línea lcd.setCursor(0, 1); // Primer carácter de la segunda línea lcd.setCursor(2, 1); //Tercer carácter de la segunda línea

Botones de protección del teclado LCD

Hay cinco botones de control en la placa, que se operan a través de un pin analógico A0. El escudo utiliza un método bastante común de codificación de señal simple, en el que cada botón genera un cierto valor de voltaje, que después del ADC se convierte en el valor correspondiente de 0 a 1023. Por lo tanto, podemos transmitir información sobre cómo presionar diferentes botones a través de un pin. , leyéndolo usando funciones ;

Valores del nivel de señal en el pin A0 según el botón seleccionado:

Presionando un botón Valor del pin analógico
BIEN0-100
ARRIBA.100-200
ABAJO200-400
IZQUIERDA400-600
SELECCIONAR600-800
Tecla no presionada800-1023

Un ejemplo de un boceto de cómo trabajar con los botones del protector del teclado LCD:

Int keyAnalog = analogRead(A0);< 100) { // Значение меньше 100 – нажата кнопка right // Выполняем какое-то действие для кнопки вправо. } else if (keyAnalog < 200) { // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP // Выполняем какое-то действие для кнопки вверх } else if (keyAnalog < 400) { // Значение больше 200, но меньше 400 – нажата кнопка DOWN // Выполняем действие для кнопки вниз } else if (keyAnalog < 600) { // Значение больше 400, но меньше 600 – нажата кнопка LEFT // Выполняем действие для кнопки влево } else if (keyAnalog < 800) { // Значение больше 600, но меньше 800 – нажата кнопка SELECT // Выполняем действие для кнопки выбора пункта меню } else { // Все остальные значения (до 1023) будут означать, что нажатий не было }

si (claveAnalógico

  • El método de codificación elegido tiene dos desventajas principales:
  • No se puede rastrear la pulsación simultánea de varios botones;

Las posibles distorsiones de la señal pueden provocar falsas alarmas. Debe tener en cuenta estas limitaciones al elegir este SLD en sus proyectos si planea utilizar el dispositivo en sistemas con un gran número

interferencia que puede distorsionar la señal en la entrada A0, debido a que el ADC puede generar un valor erróneo y el boceto ejecutará otras instrucciones como resultado.

Un boceto de ejemplo para trabajar con la pantalla y los botones de menú. EN en este ejemplo

detectamos el botón actualmente presionado y mostramos su nombre en la pantalla. Tenga en cuenta que, por conveniencia, hemos separado la operación de definición de botones en una función separada. También en el boceto destacamos un método separado para mostrar texto en la pantalla. En él mostramos un mensaje (parámetro de mensaje) y lo borramos al cabo de un segundo. Hay que recordar que durante este segundo no se procesan las pulsaciones de botones. #incluir< 100) { // Значение меньше 100 – нажата кнопка right return BTN_RIGHT; } else if (keyAnalog < 200) { // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP return BTN_UP; } else if (keyAnalog < 400) { // Значение больше 200, но меньше 400 – нажата кнопка DOWN return BTN_DOWN; } else if (keyAnalog < 600) { // Значение больше 400, но меньше 600 – нажата кнопка LEFT return BTN_LEFT; } else if (keyAnalog < 800) { // Значение больше 600, но меньше 800 – нажата кнопка SELECT return BTN_SELECT; } else { // Все остальные значения (до 1023) будут означать, что нажатий не было return BTN_NONE; } } void clearLine(int line){ lcd.setCursor(0, 1); lcd.print(" "); } void printDisplay(String message){ Serial.println(message); lcd.setCursor(0, 1); lcd.print(message); delay(1000); clearLine(1); } void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.print("Arduino Master"); delay(3000); lcd.setCursor(0, 0); lcd.print("Arduino Master"); } void loop() { int button = detectButton(); switch (button) { case BTN_UP: printDisplay("UP"); break; case BTN_DOWN: printDisplay("DOWN"); break; case BTN_LEFT: printDisplay("LEFT"); break; case BTN_RIGHT: printDisplay("RIGHT"); break; case BTN_SELECT: printDisplay("SELECT"); break; default: //printDisplay("Press any key"); break; } }

Lcd de cristal líquido (8, 9, 4, 5, 6, 7); #definir BTN_UP 1 #definir BTN_DOWN 2 #definir BTN_LEFT 3 #definir BTN_RIGHT 4 #definir BTN_SELECT 5 #definir BTN_NONE 10 int detectButton() ( int keyAnalog = analogRead(A0); if (keyAnalog

Breves conclusiones sobre la placa de expansión del escudo del teclado LCD La placa de expansión del teclado LCD es bastante popular, es simple y conveniente de usar en proyectos arduino

. Hoy puedes comprarlo fácilmente en casi cualquier tienda online.

  • Ventajas del escudo LCD:
  • Facilita la conexión de la pantalla LCD.
  • Reduce las dimensiones totales del dispositivo, porque Elimina cables y placas de circuito que sobresalen.
  • Reduce la cantidad de errores asociados con una instalación y conexión incorrectas.

Agrega funcionalidad de control con botones si la placa tiene botones instalados (protector del teclado LCD).

  • Defectos:
  • El costo de un escudo es mayor que el costo de una pantalla separada.
  • No siempre se necesita funcionalidad adicional en forma de botones. El escudo consume más energía que elementos individuales

honorarios.
Este artículo trata sobre cómo trabajar con pantallas táctiles resistivas sin controladores integrados.

Las coordenadas táctiles se determinan utilizando datos analógicos recibidos de la pantalla táctil. Familiarícese con el proceso de obtención de coordenadas táctiles a través de los controladores de funciones TouchScreen

Algunas pantallas están equipadas con una pantalla táctil (TouchScreen, literalmente traducida como tocar la pantalla), que le permite recibir las coordenadas del punto de contacto. Usando estas coordenadas puedes dibujar curvas o usarlas para simular un teclado.

Actualmente se han desarrollado muchos pantallas táctiles, que detectan un toque y reciben coordenadas de varias maneras: resistivos, matriciales, capacitivos, infrarrojos, ópticos, galgas extensométricas, piezoeléctricos, de inducción e incluso ultrasónicos. Veremos pantallas táctiles resistivas.

Información general:

La pantalla táctil resistiva consta de dos paneles transparentes. Un panel es de vidrio (ubicado en el lado de la pantalla), el segundo panel es de plástico elástico (ubicado en el exterior, lo presionamos), actúa como una membrana. Se aplica una fina capa conductora que tiene una resistencia uniforme a las superficies internas de ambos paneles (que se "miran" entre sí). Hay cables en lados opuestos de los paneles, dos para cada panel (consulte la figura a continuación). Entre los paneles hay un pequeño espacio lleno de microaislantes (microbolas dieléctricas), asegurando que los paneles no estén conectados eléctricamente. Cuando se toca la membrana, las capas conductoras de la membrana y del vidrio entran en contacto entre sí, conectándose eléctricamente. La resistencia entre los terminales de ambos paneles depende de las coordenadas del punto de su contacto.


En la mayoría de las pantallas, los pines de la pantalla táctil son pines de doble propósito. Combinan dos funciones: recibir coordenadas del sensor y mostrar datos en la pantalla. La asignación dual de pines es posible debido al hecho de que la salida de datos a la pantalla y la lectura de coordenadas del sensor se realizan en diferentes intervalos de tiempo.

Obteniendo coordenadas táctiles:

Para obtener coordenadas, debe configurar dos pines Arduino conectados a un panel en modo de entrada y dos pines Arduino conectados a otro panel en modo de salida. Aplique diferentes niveles lógicos a las salidas (uno BAJO a otro ALTO) y lea el nivel de voltaje de una de las entradas.

Obteniendo la coordenada X:

  • Los pines Arduino a los que están conectados los pines X+ y X- (desde el revestimiento del vidrio) se cambian al modo de salida.
  • El pasador X+ (XP) se conduce a ALTO y el pasador X- (XM) se conduce a BAJO.
  • Los pines Arduino a los que están conectados los pines Y+ e Y- (desde el revestimiento de la membrana) se cambian al modo de entrada.
  • Los datos recibidos por la función analogRead de la entrada Y+ (YP) serán inversamente proporcionales a la coordenada táctil a lo largo del eje X.
  • El pin Y- (YM) está en un estado de alta impedancia porque lo hemos configurado en modo de entrada, pero no leeremos datos de él.

Obteniendo coordenadas a lo largo del eje Y:

  • Los pines Arduino a los que están conectados los pines Y+ e Y- (desde el revestimiento de la membrana) se cambian al modo de salida.
  • El pin Y+ (YP) está configurado en ALTO y el pin Y- (YM) está configurado en BAJO.
  • Los pines Arduino a los que están conectados los pines X+ y X- (desde el revestimiento del vidrio) se cambian al modo de entrada.
  • Los datos recibidos por la función analogRead desde la entrada X- (XM) serán inversamente proporcionales a la coordenada táctil a lo largo del eje Y.
  • El pin X+ (XP) está en un estado de alta impedancia porque lo configuramos en modo de entrada, pero no leeremos datos de él.

Si aplica HIGH en lugar de LOW a los terminales de la placa a la que se aplica voltaje, y aplica LOW en lugar de HIGH (cambie los niveles de los terminales), entonces el valor leído no será inverso, sino directamente proporcional a la coordenada de toque. .

Puedes leer datos de cualquier pin de la placa al que no se le aplicó voltaje (niveles BAJO y ALTO), pero como normalmente uno de los pines está conectado al pin analógico del Arduino, y el otro al pin digital, tienes para leer los datos solo del pin que se conectó al pin analógico Arduino.

Después de leer las coordenadas, todos los pines deben configurarse en el modo que se configuró antes de la lectura, para un funcionamiento normal con la pantalla.

La biblioteca TouchScreen hace frente con éxito a todas estas tareas. No solo devuelve niveles de voltaje directamente proporcionales a los puntos de contacto, sino también el nivel de fuerza de presión.

Ejemplo:

// Incluir bibliotecas: #include // Incluimos la biblioteca para trabajar con la pantalla #include // Conecte la biblioteca para trabajar con TouchScreen // Defina los pines utilizados para controlar la pantalla UNO TFT 320x240 de 2,8": const uint8_t RS = A2; // const uint8_t WR = A1; // const uint8_t CS = A3; // const uint8_t RST = A4; // const uint8_t SER = A0; // // Definir los pines utilizados para leer datos de la pantalla táctil: const uint8_t YP = A2 // El pin Y+ debe estar conectado a la entrada analógica const uint8_t XM = A3; ; debe estar conectado a la entrada analógica const uint8_t YM = 8; // Salida Y- const uint8_t XP = 9 // Salida X+ // Determinar los extremos de los valores leídos de las entradas analógicas al determinar los puntos de contacto en la pantalla táctil: const int tsMinX = 210; // correspondiente al punto de origen a lo largo del eje X const int tsMinY = 205 // correspondiente al punto de origen a lo largo del eje Y const int tsMaxX = 930; punto a lo largo del eje X const int tsMaxY = 915 coordenadas a lo largo del eje Y const int mipPress = 10; // correspondiente al grado mínimo de presión en la pantalla táctil const int maxPress = 1000; // correspondiente al grado máximo de presión en la pantalla táctil // Crear objetos de biblioteca: UTFT myGLCD(TFT28UNO, RS, WR, CS, RST, SER); // Crea un objeto para trabajar con la pantalla táctil ts = TouchScreen(XP, YP, XM, YM); // Crea un objeto para trabajar con TouchScreen // void setup(void)( // Serial.begin(9600); // Inicia la transferencia de datos al monitor puerto serie a 9600 bps myGLCD.InitLCD(); // Iniciar trabajo con la pantalla TFT myGLCD.clrScr(); // Borrar la pantalla de visualización ) // void loop())( // // Leer lecturas de la pantalla táctil: TSPoint p = ts.getPoint(); // Leer las coordenadas y la intensidad de presionar en la pantalla táctil en la estructura p / / Devuelve el modo de funcionamiento de los pines: pinMode(XM, OUTPUT); // Devuelve el modo de funcionamiento del pin X al valor de “salida” para trabajar con la pantalla pinMode(YP, OUTPUT); modo del pin Y+ al valor de “salida” para trabajar con la pantalla // Si se detecta un clic en la pantalla táctil, entonces... if(p.z>mipPress && p.z Calibración:

Para la calibración, el boceto proporciona 4 constantes: tsMinX, tsminy, tsMaxX Y tsMaxY, almacenando extremos (valores extremos) de niveles legibles de entradas analógicas para los ejes X e Y.

El hecho es que la biblioteca TouchScreen devuelve niveles de lectura, no valores de coordenadas. Para que se conviertan en coordenadas, es necesario convertirlas de un rango de niveles a un rango de coordenadas, que es lo que sucede en el boceto de la sección “Convertir los valores recibidos de la pantalla táctil en coordenadas de visualización”. Conocemos el rango de coordenadas: para el eje X desde 0 hasta el ancho de la pantalla, para el eje Y desde 0 hasta la altura de la pantalla, en píxeles. Y el rango de niveles legibles depende del tipo de pantalla táctil. . Para conocer este rango, debe descomentar la línea en la sección " Mostramos las lecturas de la pantalla táctil “sin procesar”, cargamos el boceto y abrimos el monitor del puerto serie.

Calibración aproximada:

Cada vez que presione la pantalla, el monitor mostrará las coordenadas del clic X e Y cerca de cada borde de la pantalla, mientras recuerda o anota los valores máximo y mínimo para cada eje. Luego asigne estos valores, en la sección “Definición de extremos” (al comienzo del boceto), para cada constante: tsMinX, tsMinY, tsMaxX y tsMaxY. Y sube el boceto nuevamente.

Calibración precisa:

Una vez que la pantalla táctil se haya calibrado aproximadamente, es posible que sea necesaria una calibración más precisa.

Coloca la pantalla como se muestra en la primera imagen de este artículo (el origen de ambos ejes está en la parte superior izquierda).

  • Dibuja suavemente una línea a lo largo de la pantalla desde el centro hacia la izquierda.
    • Si la línea que se muestra en la pantalla está delante del punto de presión, entonces se debe reducir el valor de tsMinX.
    • Si la línea que se muestra en la pantalla va por detrás del punto de presión, entonces se debe aumentar el valor de tsMinX.
  • Dibuja suavemente una línea a lo largo de la pantalla desde el centro hacia la derecha.
    • Si la línea que se muestra en la pantalla está delante del punto de presión, entonces es necesario aumentar el valor de tsMaxX.
    • Si la línea que se muestra en la pantalla va por detrás del punto de presión, entonces se debe reducir el valor tsMaxX.
  • Dibuja suavemente una línea a lo largo de la pantalla desde el centro hacia arriba.
    • Si la línea que se muestra en la pantalla está por delante del punto de presión, entonces se debe reducir el valor tsMinY.
    • Si la línea que se muestra en la pantalla va por detrás del punto de presión, entonces se debe aumentar el valor tsMinY.
  • Dibuja suavemente una línea a lo largo de la pantalla desde el centro hacia abajo.
    • Si la línea que se muestra en la pantalla está delante del punto de presión, entonces es necesario aumentar el valor tsMaxY.
    • Si la línea que se muestra en la pantalla va por detrás del punto de presión, entonces se debe reducir el valor tsMaxY.

Descripción de las funciones de la biblioteca:

Conectando la biblioteca:

#incluir // Conecta la biblioteca TouchScreen ts = TouchScreen(OUTPUT_X+, OUTPUT_Y+, OUTPUT_X-, OUTPUT_Y- [, RESISTANCE ]); // Crea un objeto ts para trabajar con TouchScreen, especificando los números de sus pines // el parámetro opcional RESISTENCIA en Ohmios (entre los pines Y+ e Y-) te permite determinar con mayor precisión el grado de presión

función obtenerPunto();

  • Propósito: obtener datos "en bruto" sobre el punto de presión
  • Sintaxis: getPoint();
  • Opciones: No
  • Valores de retorno: Estructura de tres variables de tipo int16_t
    • x - valor de la entrada analógica, directamente proporcional a la coordenada de presión a lo largo del eje X
    • y - valor de la entrada analógica, directamente proporcional a la coordenada de presión a lo largo del eje X
    • z - valor correspondiente al grado de presión en la pantalla táctil
  • Nota: Cada valor se puede obtener por separado utilizando las funciones que se describen a continuación
  • Ejemplo:
TSPoint p = ts.getPoint(); // Definir la estructura “p” con tres variables de tipo int16_t, que almacenan el valor de las coordenadas y la intensidad de presión

función leerTouchX();

  • Propósito: obtener el valor “bruto” correspondiente al punto de presión a lo largo del eje X
  • Sintaxis: readTouchX();
  • Opciones: No
  • Nota: El valor resultante debe convertirse del rango de valores sin procesar al rango de ancho de pantalla.
  • Ejemplo:

Int i = ts.readTouchX(); // Obtener el valor “bruto” correspondiente a la coordenada X

función leerTouchY();

  • Propósito: obtener el valor “bruto” correspondiente al punto de presión a lo largo del eje Y
  • Sintaxis: readTouchY();
  • Opciones: No
  • Valores de retorno: número de tipo int
  • Nota: El valor resultante debe convertirse del rango de valores sin procesar al rango de altura de la pantalla.
  • Ejemplo:

Int i = ts.readTouchY(); // Obtener el valor “bruto” correspondiente a la coordenada Y

Función presión();

  • Finalidad: obtener el valor del grado de pulsación correspondiente en la Pantalla Táctil
  • Sintaxis: presión();
  • Opciones: No
  • Valores de retorno: número de tipo int
  • Ejemplo:

Int i = ts.presion(); // Obtener el valor correspondiente al grado de pulsación en la pantalla táctil

Nota:

Las coordenadas del sensor deben coincidir con las coordenadas de la pantalla. Si va a mostrar datos utilizando una biblioteca que no sea UTFT.

Este artículo describe cómo conectar el TE-ULCD a Arduino y cómo se puede utilizar junto con la placa de expansión Ethernet Shield v2. En el proceso de estudiar el módulo, obtuvimos una biblioteca y un pequeño boceto que obtuvimos de Internet y que muestra la hora en formato UTC, el estado del tráfico en Moscú usando el servicio Yandex.traffic y el clima usando GisMeteo. servicio de informante.

Elegí este módulo como una de las pocas soluciones listas para usar basadas en la interfaz SPI disponibles en la Federación de Rusia, es decir, no requiere muchos (16-32) pines para su control.

TE-ULCD es producido por Terraelectronics LLC. El módulo se basa en una pantalla gráfica en color de 3,5" (o 5,6") con pantalla táctil y un microcontrolador ARM-7 de 32 bits. El mantenimiento de una pantalla gráfica en color mediante un microcontrolador especializado le permite separar las funciones de visualización y control de información y permite proporcionar una interfaz "hombre-máquina" en varios sistemas de información y control. En la etapa de fabricación se carga una biblioteca de funciones gráficas en la memoria del programa del microcontrolador. Las funciones se pueden llamar desde el programa de aplicación mediante comandos SPI. Esto simplifica enormemente la creación de imágenes en la pantalla TFT, así como el mantenimiento de la pantalla táctil. Es posible actualizar la biblioteca descargada. Se utiliza una tarjeta de memoria microSD para almacenar imágenes en formato BMP.

Componentes requeridos

Conexión

El módulo de visualización funciona con 5 voltios CC, en el manual del usuario el fabricante indica una corriente nominal de 0,2 A. Medí el consumo de corriente usando una fuente de alimentación digital y resultó ser 0,299 A estable, por lo que debes concentrarte en 0,3 A. Cuando se alimentaba con TE- El ULCD de Arduino, el convertidor de voltaje instalado en la placa se calentaba bastante, así que, por si acaso, encendí el módulo de pantalla desde el USB de una computadora personal usando un cable de un mouse viejo. El conector X8 TE-ULCD está diseñado para fuente de alimentación y tiene la siguiente distribución de pines: PIN 1, 3, 7 y 9 - entrada de 5 V, PIN 2, 4, 6, 8, 10 - GND, PIN5 se utiliza como clave para controlar la conexión correcta. Puede suministrar energía a cualquier pin +5 V y GND.
El Arduino se conecta al conector X6 del módulo display, según el diagrama que se muestra en la figura. SPI TE-ULCD funciona a un nivel de 3,3 V, por lo que debes hacer coincidir los niveles del módulo de visualización y Arduino usando un divisor de resistencia simple.
Dado que el plan es utilizar la tarjeta de expansión TE-ULCD y Ethernet Shield juntas, se utilizarán PIN9 y PIN10 para seleccionar dispositivos administrados (esclavos), respectivamente. Se eligió PIN9 en función de la facilidad de conexión y puede usar cualquier otro gratuito cambiando el valor de SlaveSelectPin en el boceto.

Los comandos de escritura y lectura de TE-ULCD corresponden a las configuraciones de SPI CPOL=1 y CPHA=1, que corresponden a SPI_MODE3 para Arduino. Para la tarjeta de expansión Ethernet Shield v2, la configuración de SPI corresponde a SPI_MODE0. Esta configuración será necesaria para acceder al módulo correspondiente.

Descripción del programa

El programa descrito en el artículo utiliza la biblioteca ULCD especialmente preparada para Arduino. Las imágenes para TE-ULCD deben almacenarse en microSD.

Las descripciones de los comandos, registros y mensajes del módulo gráfico TE-ULCD utilizado en la biblioteca ULCD fueron tomadas del manual del operador de los módulos TE-ULCD35/56. El módulo TE-ULCD admite dos modos de funcionamiento: terminal y modo de funcionamiento utilizando una biblioteca de funciones gráficas (presentada en este ejemplo).

Actualmente, el conjunto de widgets integrados (primitivas de interfaz gráfica de usuario) de TE-ULCD incluye:

    Cuadro (0x01). Requerido, usado para alojar widgets.

    Ventana (0x00). Diseñado para colocar widgets, tiene un conjunto específico de propiedades.

    Panel (0x06). Diseñado para colocar widgets, tiene un conjunto específico de propiedades.

    Línea estática (0x12). Es una línea con una sombra y se puede utilizar para separar unos componentes de otros.

    Botón (0x0A). Le permite colocar un botón y realizar alguna acción al hacer clic en él.

    Texto (0x07). Se utiliza para mostrar texto en la pantalla.

    Mapa de bits (0x05). Diseñado para mostrar imágenes en formato bmp.

    GirarControl (0x0V). Diseñado para mostrar una imagen de un regulador en forma de “rueda” giratoria.

    Control deslizante (0x0C). Diseñado para mostrar una imagen del controlador en forma de "control deslizante" en la pantalla.

Usando la biblioteca ULCD

La biblioteca ULCD para Arduino implementa los siguientes procedimientos para trabajar con el módulo de visualización universal TE-ULCD:

    ULCD() - constructor;

    void RESET() - reinicio del software del módulo;

    void digitalPortWrite(valor de byte): envío de un byte desde Arduino a TE-ULCD;

    void LOAD_FONT(byte R, String FileName): carga una fuente desde la memoria flash TE-ULCD en el registro TE-ULCD;

    void LOAD_PICTURE(byte R, String FileName): cargar una imagen en formato BMP desde una tarjeta microSD al registro TE-ULCD;

    void LOAD_TEXT(byte R, String Text): carga una cadena de texto de Arduino en el registro TE-ULCD;

    void LOAD_SCRIPT(byte R, byte Número): carga un script de Arduino en el registro TE-ULCD;

    void SET_SIZE(int X, byte Y): configura el tamaño del widget;

    void SET_POS(int X, byte Y): establece la posición (esquina inferior izquierda) del widget;

    void SET_BACK_COLOR(byte R, byte G, byte B): configura el color de fondo del widget;

    void SET_FONT_COLOR(byte R, byte G, byte B): configura el color de fuente del widget;

    void SET_FONT(byte R): configuración de la fuente del widget desde el registro TE-ULCD;

    void SET_MAIN(byte R): configuración del widget como principal (se aplica solo al marco);

    void SET_SCALE(byte min, byte max, byte pos): configuración de los valores mínimo, máximo y predeterminado del widget (para el control deslizante y la rueda);

    void SET_SCRIPT(byte R): configuración del script para el widget (la acción que realizará TE-ULCD en un evento determinado) desde el registro TE-ULCD;

    void SET_TEXT(byte R): configura una cadena para el widget desde el registro TE-ULCD;

    void SET_PICTURE(byte R): configuración de una imagen en formato BMP para el widget desde el registro TE-ULCD;

    void SEND_REG(byte R1, byte R2): envía el contenido del registro R2 a R1;

    void WRITE_REG(byte R, valor de byte): escribir un valor en el registro TE-ULCD especificado;

    void CR_WID(byte WidType): crea un widget del tipo especificado (de la lista de widgets TE-ULCD integrados);

    byte READ(byte R): lee el contenido del registro TE-ULCD;

    void REPAINT_TEXT(byte R1, byte R2, String Text): reemplaza (redibuja) el texto del widget almacenado en el registro R1 con el texto transferido en la variable Texto, guarda el texto en el registro R2;

    void REPAINT_BMP(byte R1, byte R2): vuelve a dibujar la imagen del widget almacenado en el registro R1 en la imagen almacenada en el registro R2;

Por ejemplo, la imagen de fondo en el programa se configura de la siguiente manera:

#incluir pantalla LCD ULCD; // ... lcd.LOAD_PICTURE (1, "atrás.bmp" );//Carga la imagen desde la microSD al registro R1 lcd.CR_WID(5);//Crea un widget BitMap (para el fondo) lcd.SET_SIZE(320, 240);//Establece el tamaño del mapa de bits igual al tamaño de la pantalla TE-ULCD35 lcd.SET_POS(0, 0);//Establece la posición del mapa de bits lcd.SET_PICTURE(1);

//establece la imagen para el widget del registro R1

Para comodidad del usuario, TE-ULCD tiene 32 registros de propósito general (R0-R31) para almacenar punteros a widgets (imágenes, texto, scripts). Si lo desea, los punteros se pueden almacenar en el Arduino.

Quería hacer mi propio semáforo inmediatamente después de ver uno similar en Yandex, solo que allí estaba controlado desde una PC, pero todavía quiero uno autónomo, solo un Arduino y un Escudo Ethernet. No puede recibir una solicitud directa sobre el estado del tráfico del servidor Yandex.Traffic. Una carta al equipo de soporte técnico de Ya.probka tampoco ayudó: “Gracias por su atención a nuestro servicio. No proporcionamos dicha información. Intente conectar el módulo de atascos de tráfico y utilice el control de “Tráfico”.

Para obtener el estado del tráfico en la carretera utilicé el informador, o más bien la imagen que en él se transmite. El algoritmo de acciones es el siguiente:

    Conéctese al servidor (info.maps.yandex.net);

    Analizamos la imagen resultante, se transmite en el estándar PNG (0xFF 0xA4 0x00 amarillo, 0x3F 0xBB 0x00 verde, 0xFF 0x2A 0x00 rojo), la presencia de colores es única para cada estado verde-amarillo-rojo (además, contando el número de píxeles de cada color puede determinar la puntuación de los enchufes, no sólo el color);

    Mostramos la imagen en la pantalla TE-ULCD.

La solicitud de imagen informadora tiene la siguiente forma:

OBTENER http://info.maps.yandex.net/traffic/moscow/current_traffic_88.gif HTTP/1.1 Aceptar: image/gif Aceptar-Idioma: en-US;

Control de caché: edad máxima = 0 Host: info.maps.yandex.net Agente de usuario: Chrome

Esta solicitud es adecuada para Moscú, pero puede solicitar el estado del tráfico en cualquier ciudad para la que opere el servicio de información Ya.Traffic. Este bloque, con una pequeña modificación, puedes usarlo para controlar tu propio semáforo usando Arduino y relés, será como en Yandex :).

Conseguir tiempo

La forma más sencilla y sencilla de obtener la hora en formato UTC es enviar una solicitud a algún servidor (al principio usé Google, pero luego para ahorrar memoria cambié al servidor Yandex.Traffic) y analizar la respuesta, la cadena resultante se ve así este:

Actualmente, la solicitud para obtener la hora tiene este aspecto:

OBTENER http://info.maps.yandex.net/traffic/moscow HTTP/1.1

La precisión de dicha hora no es alta, hasta minutos, pero es adecuada para relojes simples.

Obtener un pronóstico del tiempo

int freeRam () (extern int __heap_start, * __brkval; int v; return (int) & v - (__brkval == 0? (int) & __heap_start: (int) __brkval); )

Si alguien puede decirme cómo mejorar el programa se lo agradeceré :), hay para discusión

Pantalla 2.4 TFT 240x320 táctil + MicroSD

El módulo es un monitor LCD en color QVGA sin paquete con una pantalla táctil de 2,4 pulgadas de diagonal. Está diseñado para funcionar en conjunto con varios tipos de microcontroladores y sistemas de procesador. Aunque puede mostrar fotografías a todo color, su uso principal es mostrar gráficos simples y datos de caracteres usando 16 colores. Puede mostrar animación en la pantalla:

Las capacidades gráficas del monitor son suficientes para crear la imagen de un teclado que funciona gracias a superficies táctiles. Simultáneamente con el procesamiento de clics, la pantalla táctil 2.4 TFT 240x320 + display MicroSD muestra los resultados de los comandos del operador e indica los valores de los parámetros controlados. La aplicación simplifica enormemente los dispositivos de entrada/salida del dispositivo. El indicador LCD tiene una luz de fondo constantemente encendida. Hay un botón. Hay un contenedor para una tarjeta SD en la placa.

Características 2.4TFT240x320

Nutrición
Voltaje 5V
Corriente 300 mA
Tensión de entrada 5 o 3,3 V
Diagonal 2,4 pulgadas
Resolución 320 X 240 puntos con control individual
Número máximo de tonos 262144
Luz de fondo blanca
interfaz 8080
Capacidad máxima de tarjeta microSD 32 GB
Dimensiones 71x52x7mm

Contactos

El indicador LCD utiliza 8 pines de módulo para transmisión de datos y 4 pines para señales de control. La parte táctil de la pantalla utiliza 4 contactos junto con la pantalla LCD. Para trabajar con una tarjeta Micro SD se necesitan 4 pines.

Contacto
Potencia de 3,3 V
Potencia de 5 V
Energía de tierra
Botón J4-1

Indicador LCD y superficie táctil.

LCD_RD Control LCD, lectura
LCD_WR TOUCH_YP Control LCD, grabación o datos de superficie táctil
LCD_RS TOUCH_XM Control LCD, comando/datos o datos de superficie táctil
LCD_CS Control LCD, selección de dispositivo
Reinicio LCD_RST
LCD_D2 Datos LCD
LCD_D3 Datos LCD
LCD_D4 Datos LCD
LCD_D5 Datos LCD
LCD_D6 / TOUCH XP Datos LCD / datos de superficie táctil
LCD_D7 / TOUCH YM Datos LCD / datos de superficie táctil
LCD_D0 Datos LCD
LCD_D1 Datos LCD

Selección SD_CS
SD_DI Entrada de datos SD
Salida de datos SD_DO
Reloj de datos SD_SCK

Display 2.4 TFT 240x320 táctil + MicroSD se puede instalar en conectores Arduino.

Conexión a Arduino UNO:

Contactos del módulo arduino
LCD_CS A3
LCD_RS A2
LCD_WR A1
LCD_RD A0
LCD_RST A4, puede conectar LCD_RESET a la línea RESET de Arduino UNO como se describe a continuación.
LCD_D0 DIO 8
LCD_D1 DIO 9
LCD_D2 DIO 2
LCD_D3 DIO 3
LCD_D4 dio 4
LCD_D5 dio 5
LCD_D6 DIO 6
LCD_D7 DIO 7
SD SS DIO 10
SDDI DIO 11
SD DO DIO 12
SCK SD DIO 13
3,3 V 3,3 V
5V 5V
Tierra Tierra


Al instalar en los contactos Arduino UNO, antes de encenderlo, debes comprobar que los contactos de la placa no tocan el conector USB y, si es necesario, pegar un aislante a la placa.

Esquema

Pantalla 2.4 TFT 240x320 táctil + MicroSD.

Se suministra energía de 5 voltios a los circuitos del circuito y al chip regulador de voltaje U1 de 3,3 voltios. Las señales de información pasan a través de chips 74xx541: búferes de bus de datos. Chip IC1 ADS7843 – controlador de pantalla táctil. Se trata de un ADC de 12 bits con un dispositivo de muestreo y retención, una interfaz serie síncrona y teclas de control de contacto táctil de baja impedancia.
El componente principal del módulo es una pantalla de cristal líquido TFT1 combinada con un controlador especializado. Enlaces a descripciones de pantallas LCD y varios tipos de controladores al final de la página.

Botón

Hay un botón en el borde de la placa del módulo. Además del teclado táctil, la pantalla táctil 2.4 TFT 240x320 + MicroSD dispone de un botón mecánico. Sus contactos conectan el pin 1 del conector J4 al cable común. Este es un pin sin firmar ubicado en el borde del conector J4 cerca del pin 3V3. El botón se puede utilizar según las necesidades del dispositivo que se está ensamblando. Cuando se trabaja con Arduino, el pin 1 del conector J4 está conectado a la línea de reinicio. Al presionar el botón, el Arduino se reinicia.

Empezando

La mayor parte del funcionamiento del módulo pertenece al programa del microcontrolador. Para ello, es conveniente utilizar soluciones de software existentes publicadas en Internet. Toman como base programas escritos para Arduino y los modifican para adaptarlos al hardware del dispositivo que se está desarrollando.
Cuando intentamos frenar la pantalla táctil 2.4 TFT 240x320 + display MicroSD, podemos obtener resultados inesperados: una pantalla blanca, toda la pantalla tiene ruido, las funciones táctiles no funcionan, o la posición de la coordenada Y está invertida, los colores están invertidos. El hecho es que diferentes fabricantes instalan diferentes tipos de controlador LCD principal en la pantalla: ST7781, Spfd5408, IL9341, Sitronix ST7783262K, S6D0154 y otros. Sus descripciones están al final de la página. En primer lugar, debe determinar qué tipo de controlador de pantalla se utiliza en su módulo. El microcircuito y la pantalla LCD son un solo dispositivo. El tipo sólo se puede configurar mediante programación. Para hacer esto, use el módulo del microcontrolador Arduino UNO y el programa LCD_ID_Reader Versión 1.2, que lee el identificador del chip. LCD_ID_Reader no requiere la instalación de bibliotecas adicionales. También hay un programa para determinar el tipo de controlador en la biblioteca samurái, que se analizará más adelante.

softwarearduino

Se han desarrollado varias bibliotecas para diferentes controladores LCD.

Joao López F. Básicamente, esta es una biblioteca de Adafruit modificada para SPFD5408. Tiene la capacidad de calibrar la pantalla táctil.

Para controladores
S6D0154 diagonal 2,8 pulgadas
ILI9488 diagonal 3,95 pulgadas 320 x 480 píxeles
ILI9327 diagonal 3,6 pulgadas
ILI9341
NT35702, compatible con ILI9327
Biblioteca Samurái
De forma predeterminada, esta biblioteca está diseñada para pantallas de 2,8 pulgadas. En los más pequeños, parte de la imagen desaparece. Para una diagonal de 2,4 pulgadas, en el archivo TFTLCD-Library/Adafruit_TFTLCD.cpp, debe neutralizar las líneas:

//#definir TFTWIDTH 320
//#definir TFTHEIGHT 480

Y elimine los caracteres de comentario en las líneas:

#definir ANCHO TFT 240
#definir TFTALTURA 320

El programa para determinar el tipo de controlador LCD es Graphicstest. El tipo de controlador LCD se mostrará en el monitor del puerto serie.
Para cambiar el funcionamiento de la pantalla táctil #definir YP A1 #definir XM A2 #definir YM 7 #definir XP 6

Para controladores
ILI9325
ILI9328
Y para un controlador con código de identificación 0xC505
adafruit/TFTLCD-Biblioteca

Para el controlador ST7781, instale:
Humo y cables/Código de ejemplo de escudo TFT
adafruit/Biblioteca Adafruit-GFX
adafruit/Biblioteca-de-pantalla-táctil

Instalación de la biblioteca, pruebas, descripción de la biblioteca, fuentes, acerca dedeterminación de coordenadas de clic, trabajo con una tarjeta microSD, conversión de formato de 24 bits a 16 bits

Superficie táctil

La pantalla 2.4 TFT 240x320 táctil + MicroSD transmite tres valores al programa: coordenadas de presión (X e Y) y presión Z. Se utiliza tecnología de pantalla táctil resistiva.

La superficie consta de dos capas de polímero recubiertas con un material resistivo que actúa como electrodos. Las capas están pegadas en los bordes. Bajo el control del programa, los datos provienen de IC1 para la detección de presión. El microcontrolador del dispositivo recibe un número de 10 bits (0..1023) para cada eje. El software escala este valor para ajustarlo al tamaño de la pantalla.

Cinco cables de la superficie táctil (cuatro de señal y uno común) están conectados a través de un cable delgado al controlador LCD.

El controlador SPFD5408 utiliza la biblioteca de pantallas táctiles resistivas de 4 cables. Copie las carpetas descomprimidas y renombradas:

El controlador LCD ST7781 utiliza una biblioteca de control de presión. Instalar también. Descargue y descomprima el código de demostración. Copie la carpeta SWIFT-Shield del archivo extraído a la carpeta de bibliotecas de Arduino.

Prueba de gráficos

Para módulo con controlador IL9341.

Conecte una pantalla táctil 2.4 TFT 240x320 + pantalla MicroSD al Arduino UNO. Descargue las bibliotecas adafruit/TFTLCD-Library y Adafruit-GFX-Library.

Pruebe el ejemplo más gráfico en la biblioteca adafruit/TFTLCD. La pantalla debería mostrar una imagen como la que se muestra arriba. Si la pantalla táctil 2.4 TFT 240x320 + pantalla MicroSD no muestra nada o solo muestra una imagen estática, entonces puedes intentar cambiar el programa Graphictest. Modificar el programa consiste en configurar rígidamente el tipo de controlador de pantalla. Reemplace la línea 60 con:

Identificador Uint16_t = 0x9341; //Necesita código físico aquí (IC)

Para controlador LCD SPFD5408.

Cree dos archivos gráficos en formato BMP con los siguientes parámetros: ancho de imagen de 320 píxeles, color de 24 bits y tamaño no superior a 250 KB. El nombre del archivo debe constar de ocho letras latinas. Copie el archivo al directorio raíz de la tarjeta microSD. Si el experimento tiene éxito, se podrán grabar muchas imágenes en la tarjeta. La prueba los mostrará en la pantalla uno por uno.

Descargue las siguientes bibliotecas:
Código-de-ejemplo-de-escudo-TFT
Desempaquete y copie a la carpeta SWTFT-Shield en las bibliotecas de Arduino.

Conecte el cable USB a su PC y abra el IDE de Arduino. A continuación, abra en Archivo->Ejemplos -> SWTFT-Shield.

Resultados de los ejemplos del programa.

Prueba de gráficos

Prueba de rotación.
Abra el monitor serie Arduino IDE y seleccione velocidad 9600 y Nueva línea en la parte inferior de la ventana. Al hacer clic en el botón Enviar, aparecerán varias imágenes.

Ttfbmp.
Los archivos BMP grabados en la tarjeta micro SD se mostrarán en la pantalla.

Pintura Ttf.
Puedes elegir cualquier color para dibujar o escribir en la pantalla táctil.