» Electrónica »Banco para estudiar HD44780 a bajo nivel

Banco de estudio de bajo nivel HD44780



Escribiste en el programa para Arduino algo como:

lcd.print ("¡Hola, mundo!")


La junta ejecutó obedientemente el comando, y el texto apareció en la pantalla. Pero, ¿cómo un dispositivo "dijo" algo y el segundo "escuchó" y "entendió"? Esto es como pedirle al artista que haga su retrato, pero no ver cómo trabaja en él. El autor de Instructsbles bajo el apodo indoorgeek ideó un soporte que lo ayudará a sentirse en la piel del "Arduino viviente" y dirigir el HD44780 a un nivel bajo. En uno de los concursos, este hecho en casa ganó el primer premio

Necesita un pequeño detalle: cualquier módulo (LCD, VLI o PMOLED) en el controlador HD44780 o compatible, ocho interruptores de palanca, un botón sin enclavamiento, un interruptor deslizante, una resistencia variable de 1 kΩ, una placa con un conector Micro USB y un estuche.








De lo que no se muestra en la foto, necesitamos: una resistencia de 10 kOhm y un condensador de 100 μF y al menos 6,3 V.

El propio Indoorgeek tomó un módulo del tipo más común: LCD, 16 caracteres por línea, dos líneas. Pero el resto de los módulos tienen el mismo principio de control, solo el pinout puede diferir ligeramente, así que no seas demasiado vago para mirar la hoja de datos.

En todos los casos, la conexión al cable común corresponde al cero lógico, y la conexión al bus de alimentación de +5 voltios corresponde a la unidad.

Los pines 1 y 2 son para alimentar el módulo. El primero de ellos siempre está conectado a un cable común, y el segundo siempre con un bus de alimentación.

El pin 3 es para ajustar el contraste. Cuando se le aplica un voltaje de 0 a 5 voltios en relación con el cable común, el contraste cambia de cero a máximo.

El pin 4 le permite elegir entre un registro de datos y un registro de instrucciones. Le damos un cero lógico: se selecciona el registro de instrucciones (en otras palabras, comandos), la unidad es el registro de datos.

Las instrucciones pueden ser, por ejemplo, las siguientes: inicializar el controlador, borrar la pantalla, etc., y los datos incluyen signos que se mostrarán en el indicador.

Por el contrario, puede leer datos de algún registro. Para hacer esto, debe aplicar un alto nivel al pin 5, y la pantalla volverá al modo de salida de información a su microcontrolador. Para comenzar a escribir datos desde su microcontrolador en el controlador de pantalla nuevamente, debe enviar un nivel bajo 5 al pin 5. Muy a menudo, el modo de lectura no se utiliza en absoluto, como, por ejemplo, en este producto casero.

Según los pines 7 a 14, la pantalla puede intercambiar comandos y datos en codificación de 8 bits. El nivel más bajo corresponde al pin 7, el más alto - 14.

El pin 6 es necesario para el gating.Está configurando lentamente los datos en los pines 7 a 14, pero aunque el pin 6 es un cero lógico, el módulo no responde a esto en absoluto. Luego, sin cambiar el estado de los pines 7 a 14, envía un pulso de alto nivel a corto plazo al pin 7, y los datos se transmiten.

Conclusiones 15 y 16: retroiluminación nutricional, si la hay. 15 - más, 16 - menos.

Disponible para indorgeek, la caja resultó ser de 200x150x40 milímetros de tamaño. Este caso fue tomado de otro producto casero desarmado, y ya tenía agujeros. El maestro los usó en el nuevo diseño al máximo para hacer lo menos posible los adicionales.



Estableció ocho interruptores para cambiar el estado de las líneas de bus de datos / comando, un interruptor para elegir entre registros (ver arriba), un botón para activar, una resistencia variable para ajustar continuamente el contraste.

La placa elevadora con un conector Micro USB tiene pines convenientes que facilitan la conexión de los cables. Aquí solo se necesitan dos: +5 V y un cable común. Si no tiene una placa de este tipo, y una toma Micro USB soldada desde algún lugar parece inconveniente para soldar, puede tomar un cable con un conector USB. En cualquier caso, repitamos después del maestro y suelde dicho esquema:



Los contactos de los interruptores de palanca correspondientes a la posición superior, indorgeek se conectaron y presentaron una ventaja sobre ellos. Hizo lo mismo con los contactos de los interruptores de palanca correspondientes a la posición inferior, solo que les dio un signo menos. Conectó los contactos móviles de los interruptores de palanca no entre sí, sino con las conclusiones de los comandos del módulo / bus de datos de acuerdo con el "peso" de ambos (D0 - pin 7 - bajo orden, D7 - pin 14 - alto). Si los maestros no hubieran mordido las resistencias pull-up enfurecidas en la infancia, sería capaz de usar interruptores de palanca más simples, sin cambiar, pero normalmente abiertos.

Pero las mismas resistencias, pero en los circuitos de supresión de contacto de rebote, nunca se ofendió. Aquí, este circuito es necesario para que el controlador de pantalla no presione una vez el botón estroboscópico durante varios. Otros controles no requieren supresión de vibración, ya que mientras no se reciban los pulsos estroboscópicos, los datos en las líneas restantes pueden cambiar muchas veces como se desee. Lo principal es no tocar los interruptores de palanca y el interruptor con el botón presionado. Entonces, con una resistencia de 10 kOhm, el maestro sacó el pin 6 al cable común y con el botón al bus positivo. Dado que la resistencia del botón es mucho menor, cuando se presiona, se "arrastra". Cuando se libera, su resistencia se acerca al infinito, y la resistencia ya la está "jalando". Un condensador de 100 uF (no mostrado en el diagrama), conectado por un más al bus más, y por un menos a la resistencia y la sexta salida de la pantalla, suprime la vibración. Es mejor, por supuesto, suprimir la conversación con un botón de interruptor y un disparador RS.

En el interruptor deslizante, las salidas de los contactos fijos se conectan de la misma manera que para los interruptores de palanca, y el móvil, a la salida del módulo 6. Aquí, el desarrollador nuevamente mostró temor a las resistencias pull-up. Este interruptor es necesario para elegir entre los modos de transmisión de comandos (cero) y datos (unidad).

Indoorgeek conectó la salida de la resistencia variable correspondiente al mínimo contraste con el cable común, lo opuesto al bus positivo y el medio (motor) a la tercera salida del módulo.

Conclusiones 1, 5 y 16 (respectivamente, menos potencia, escritura / lectura y menos luz de fondo) el maestro conectado a un cable común, por lo que el modo de grabación se selecciona continuamente. Conclusiones 2 y 15 (respectivamente, más potencia y más luz de fondo), se conectó al bus de cinco voltios. Una resistencia limitadora de corriente a través de los LED de retroiluminación está integrada en el módulo de visualización.

Si ha recopilado todo esto, frente a usted ahora, algo como esto:



El panel frontal indoorgeek diseñado para que pueda hacer lo mismo:



Puede aprender los comandos del controlador HD44780 y cómo controlarlos mediante hoja de datos. También puede ver ejemplos de guiones ya preparados para simulador. Para empezar, repetiremos los pasos detrás de indoorgeek para mostrar ¡HOLA!

Enciende el dispositivo. La luz de fondo se iluminará. Mueva el interruptor deslizante a la posición correspondiente al cero lógico, de modo que el indicador cambie al modo de recepción de comandos. Establezca el número binario 00001111 en el bus de comando / datos con los vasos y presione brevemente el botón estroboscópico. Este comando significa: encienda la pantalla, haga que el cursor sea visible y parpadee, lo que sucederá. Del mismo modo, emitiremos el comando 00110000, que significa: recibir datos en formato de 8 bits, seleccionar la primera línea y la fuente de 5 por 8 píxeles. Visualmente, no sucederá nada, pero en algún lugar dentro del controlador de pantalla ocurrirán los interruptores necesarios. Puedes transferir datos. Traducimos el interruptor deslizante a la posición correspondiente a la unidad lógica, ahora el módulo indicador está listo para aceptarlos. Configure el código ASCII de la letra H, es decir, 01001000, mueva los interruptores en el bus y presione el botón estroboscópico. La letra correspondiente aparece en la pantalla y el cursor se mueve una posición hacia la derecha. Del mismo modo, pasaremos las letras E, L, L, O y el signo de exclamación: 01000101, 01001100, 01001100, 01001111, 00100001. Si hiciste lo mismo, no importa en el soporte que acabas de armar o en el simulador, verás la inscripción HOLA ! Así:



Así es como entendiste cuánto hace Arduino para mostrar solo unos pocos caracteres. Y hay equipos para realizar acciones más complejas, habiendo dominado lo que, puede obtener efectos interesantes, definir personajes no estándar ...

¡Su excursión a la "cocina" de la biblioteca de Arduino LiquidCrystal acaba de comenzar, y que sea divertida!
7.5
7.5
7.5

Agrega un comentario

    • sonriesonrisasxaxaokno sabesyahoonea
      jeferascarsetontosisi-siagresivosecreto
      lo sientobailardance2dance3perdónayudabebidas
      pararamigosbuenobuenosilbatodesmayarselengua
      fumaraplaudirllorardeclararburlóndon-t_mentiondescargar
      calorfuriosorisa1mdareuniónMoskingnegativo
      not_ipalomitas de maizcastigarleerasustarasustabuscar
      burlagraciasestoto_clueumnikagudode acuerdo
      malbeeeojo negroblum3ruborpresumiraburrimiento
      censuradocortesíasecreto2amenazarvictoriaYusun_bespectacled
      shokrespektjajajaPrevedbienvenidokrutoyya_za
      ya_dobryiayudantene_huliganne_othodigolpearprohibircerrar

Le recomendamos que lea:

Pásalo por el teléfono inteligente ...