Vous êtes sur la page 1sur 35

Conectando una pantalla LCD a

Arduino
Posted on 23 noviembre, 2012
Como ya vimos en una entrada anterior, podemos conectar una pantalla de cristal lquido a
nuestro Arduino. En aquella ocasin yo utilic un shield que compr en Dealextreme por unos
7 dlares. Es algo caro si lo comparamos con lo que en realidad cuesta slo la pantalla, algo de
2.20 dlares, podemos comprar 3 pantallas antes que un shield de Dealextreme, claro.. No
vamos a tener los botones ni la conectividad sencilla que ofrece el shield.

Un display HD44780 funcionando desde un Atmega 328p con bootloader Arduino
Bien, Mi pantalla arrib en unos 20 das a casa as que me dediqu a jugar un poco con ella,
leyendo su datasheet primero.
Por suerte mi pantalla tena la serigrafa escrita con el significado de cada pin, que detallo a
continuacin:
Esta pantalla funciona gracias al famoso y superconocido chip HD44780 que se utiliza en
infinidad de proyectos.
Bien, veamos los pines:
VSS que es el pin de negativo o masa o 0 volts o GND.
VDD es la alimentacin principal de la pantalla y el chip, lleva 5 volts.
VO es el contraste de la pantalla, debe conectarse con un potenciometro de unos 10k
ohms o una resistencia fija una vez que encontremos el valor deseado de contraste.
Tengan en cuenta que si no conectan esto, no vern nada.
RS es el selector de registro (Register select).
RW es el pin que comanda la lectura/escritura. En nuestro caso siempre estar en 0
(conectado a GND) para que escriba en todo momento.
E es enable, habilita la pantalla para recibir informacin.
D0~D3 no los vamos a utilizar. Como pueden ver la pantalla tiene un bus de datos de 8
bits, de D0 a D7. Nosotros solamente utilizaremos 4 bits, de D4 a D7.
A y K son los pines del led del backlight de la pantalla. A se conectar a 4 o 5 volts y K a
gnd.
Habiendo conocido los pines del modulito HD44780, conectemoslo a Arduino, primero el
hardware:

En mi caso utiilic el siguiente conexionado:
VSS: a GND.
VDD: a 5 volts.
VO: Al pin medio de un potenciometro de 10K con sus terminales entre 5v y GND.
RS: Pin 11.
RW: a GND.
E: Pin 12.
D0~D3: Sin conectar.
D4~D7: pines 7 a 10. (bits de datos).
A: A 5 volts pasando por una resistencia de 5K para bajar un poco la luminosidad.
K: a GND.
Para comandar la HD44780 utilizamos la librera ya conocida LiquidCrystal
Lo primero que hacemos en el cdigo, es incluir la librera y configurarla segn nuestros pines:
#include <LiquidCrystal.h>
LiquidCrystal lcd(11, NULL, 12, 7, 8, 9, 10);
Luego podemos utilizarla como en cualquier otro proyecto:
void setup() {
lcd.begin(16, 2);
}

void loop() {
lcd.setCursor(0,0);
lcd.print("Hola! ");
}
http://www.proyectosarduino.com.ar/

LiquidCrystal
La librera LiquidCrystal te permite controlar displays LCD que
sean complatibles con el driver Hitachi HD44780. Hay muchos
de ellos ah fuera, y puedes comunicarte con ellos a travs del
interfaz de 16 pines.
Este sketch de ejemplo imprime "Hello World!" en el LCD y
muestra el tiempo en segundos desde que Arduino fu
reseteado por ltima vez.

salida del sketch en un LCD de 2x16
El LCD tiene un interfaz paralelo, significando esto que el
microcontrolador tiene que manipular varios pines del interfaz a
la vez para controlarlo. El interfaz consta de los siguientes
pines:
Un pin de seleccin de registro (RS) que controla en qu parte de la
memoria del LCD ests escribiendo datos. Puedes seleccionar
bien el regisro de datos, que mantiene lo que sale en la
pantalla, o un registro de instruccin, que es donde el
controlador del LCD busca las instrucciones para saber cual es lo
siguiente que hay que hacer.
El pin de lectura/escritura (R/W)que selecciona el modo de lectura o el
de escritura.
Un pin para habilitar (enable) que habilita los registros.
8 pines de datos (D00-D07). Los estados de estos pines (nivel alto o
bajo) son los bits que ests escribiendo a un registro cuando
escribes, o los valores de lectura cuando ests leyendo.
Hay tambin un pin de contraste del display (Vo), pines de alimentacin
(+5V y GND) y pines de retro-iluminacin (Bklt+ y Bklt-), que te permiten
alimentar el LCD, controlar el contraste del display, o encender
y apagar la retro-iluminacin, respectivamente.
El proceso de controlar el display involucra la colocacin de los
datos que componen la imagen de lo que quieres mostrar, en
los registros de datos, y luego, colocar las instrucciones, en el
registro de instrucciones. La libreraLiquidCrystal te simplifica
todo este proceso de forma que no neesitas saber las
instrucciones de bajo nivel.
Los LCD-s compatibles con Hitachi pueden ser controlados de
dos modos: 4 bits u 8 bits. El modo de 4 bits requiere siete
pines de E/S de Arduino, mientras el modo de 8 bits requiere 11
pines. Para mostrar texto en la pantalla, puedes hacer la
mayora de las cosas en modo 4 bits, por lo que el ejemplo
muestra como controlar un LCD de 2x16 en modo de 4 bits.
NOTA: La librera LiquidCrystal tiene revisiones venidas a menos despus de la
versin 0016 de Arduino. Gracias a Limor Fried por reescribirla para
incluir los modos de 4 y 8 bits y otras funcionalidades. Estas
notas hacen referencia a la versin actual como es Arduino
0017.
Otros ejemplos de la librera LiquidCrystal
Hello World - muestra "hello world!" y los segundos desde el
ltio reset
Blink - control del cursor en forma de bloque.
Cursor - control del cursor en forma de guin bajo.
Display - limpieza rpida del display, sin perder lo que haba en
l.
Text Direction - controla en qu sentido fluye el texto desde el
cursor.
Autoscroll - scroll automtico del nuevo texto.
Serial input - acepta la entrada serie y la muestra.
SetCursor - establece la posicin del cursor.
Scroll - realiza un scroll del texto a la izquierda y a la derecha
Circuito
El pin RS del LCD conectado a la E/S digital en el pin 12
El pin enable del LCD conectado a la E/S digital en el pin 11.
Los pines D4 - D7 conectado a las E/S digitales desde el pin 5
hasta el 2.
Los pines de voltaje y tierra conectados a +5V y tierra.
El pin Vo, que controla el constraste, conectado a un
potencimetro. Ajusta el potencimetro para que el texto tenga
el contraste que t quieras.
Nota: Este diagrama de wiring es diferente que el que haba en
anteriores versiones la de librera LiquidCrystal. Los pines de
R/W (lectura/escritura) estn conectado a tierra, y el pin de
enable se mueve al pin 11, liberando el pin E/S para otros usos.
pincha en la imagen para aumentarla

image developed using Fritzing. For more circuit examples, see the Fritzing
project page
Esquemtico:
pincha en la imagen para aumentarla



LiquidCrystal
La librera LiquidCrystal te permite controlar displays LCD que
sean complatibles con el driver Hitachi HD44780. Hay muchos
de ellos ah fuera, y puedes comunicarte con ellos a travs del
interfaz de 16 pines.
Este sketch de ejemplo imprime "Hello World!" en el LCD y
muestra el tiempo en segundos desde que Arduino fu
reseteado por ltima vez.

salida del sketch en un LCD de 2x16
El LCD tiene un interfaz paralelo, significando esto que el
microcontrolador tiene que manipular varios pines del interfaz a
la vez para controlarlo. El interfaz consta de los siguientes
pines:
Un pin de seleccin de registro (RS) que controla en qu parte de la
memoria del LCD ests escribiendo datos. Puedes seleccionar
bien el regisro de datos, que mantiene lo que sale en la
pantalla, o un registro de instruccin, que es donde el
controlador del LCD busca las instrucciones para saber cual es lo
siguiente que hay que hacer.
El pin de lectura/escritura (R/W)que selecciona el modo de lectura o el
de escritura.
Un pin para habilitar (enable) que habilita los registros.
8 pines de datos (D00-D07). Los estados de estos pines (nivel alto o
bajo) son los bits que ests escribiendo a un registro cuando
escribes, o los valores de lectura cuando ests leyendo.
Hay tambin un pin de contraste del display (Vo), pines de alimentacin
(+5V y GND) y pines de retro-iluminacin (Bklt+ y Bklt-), que te permiten
alimentar el LCD, controlar el contraste del display, o encender
y apagar la retro-iluminacin, respectivamente.
El proceso de controlar el display involucra la colocacin de los
datos que componen la imagen de lo que quieres mostrar, en
los registros de datos, y luego, colocar las instrucciones, en el
registro de instrucciones. La libreraLiquidCrystal te simplifica
todo este proceso de forma que no neesitas saber las
instrucciones de bajo nivel.
Los LCD-s compatibles con Hitachi pueden ser controlados de
dos modos: 4 bits u 8 bits. El modo de 4 bits requiere siete
pines de E/S de Arduino, mientras el modo de 8 bits requiere 11
pines. Para mostrar texto en la pantalla, puedes hacer la
mayora de las cosas en modo 4 bits, por lo que el ejemplo
muestra como controlar un LCD de 2x16 en modo de 4 bits.
NOTA: La librera LiquidCrystal tiene revisiones venidas a menos despus de la
versin 0016 de Arduino. Gracias a Limor Fried por reescribirla para
incluir los modos de 4 y 8 bits y otras funcionalidades. Estas
notas hacen referencia a la versin actual como es Arduino
0017.
Otros ejemplos de la librera LiquidCrystal
Hello World - muestra "hello world!" y los segundos desde el
ltio reset
Blink - control del cursor en forma de bloque.
Cursor - control del cursor en forma de guin bajo.
Display - limpieza rpida del display, sin perder lo que haba en
l.
Text Direction - controla en qu sentido fluye el texto desde el
cursor.
Autoscroll - scroll automtico del nuevo texto.
Serial input - acepta la entrada serie y la muestra.
SetCursor - establece la posicin del cursor.
Scroll - realiza un scroll del texto a la izquierda y a la derecha
Circuito
El pin RS del LCD conectado a la E/S digital en el pin 12
El pin enable del LCD conectado a la E/S digital en el pin 11.
Los pines D4 - D7 conectado a las E/S digitales desde el pin 5
hasta el 2.
Los pines de voltaje y tierra conectados a +5V y tierra.
El pin Vo, que controla el constraste, conectado a un
potencimetro. Ajusta el potencimetro para que el texto tenga
el contraste que t quieras.
Nota: Este diagrama de wiring es diferente que el que haba en
anteriores versiones la de librera LiquidCrystal. Los pines de
R/W (lectura/escritura) estn conectado a tierra, y el pin de
enable se mueve al pin 11, liberando el pin E/S para otros usos.
pincha en la imagen para aumentarla

image developed using Fritzing. For more circuit examples, see the Fritzing
project page
Esquemtico:
pincha en la imagen para aumentarla



LiquidCrystal
La librera LiquidCrystal te permite controlar displays LCD que
sean complatibles con el driver Hitachi HD44780. Hay muchos
de ellos ah fuera, y puedes comunicarte con ellos a travs del
interfaz de 16 pines.
Este sketch de ejemplo imprime "Hello World!" en el LCD y
muestra el tiempo en segundos desde que Arduino fu
reseteado por ltima vez.

salida del sketch en un LCD de 2x16
El LCD tiene un interfaz paralelo, significando esto que el
microcontrolador tiene que manipular varios pines del interfaz a
la vez para controlarlo. El interfaz consta de los siguientes
pines:
Un pin de seleccin de registro (RS) que controla en qu parte de la
memoria del LCD ests escribiendo datos. Puedes seleccionar
bien el regisro de datos, que mantiene lo que sale en la
pantalla, o un registro de instruccin, que es donde el
controlador del LCD busca las instrucciones para saber cual es lo
siguiente que hay que hacer.
El pin de lectura/escritura (R/W)que selecciona el modo de lectura o el
de escritura.
Un pin para habilitar (enable) que habilita los registros.
8 pines de datos (D00-D07). Los estados de estos pines (nivel alto o
bajo) son los bits que ests escribiendo a un registro cuando
escribes, o los valores de lectura cuando ests leyendo.
Hay tambin un pin de contraste del display (Vo), pines de alimentacin
(+5V y GND) y pines de retro-iluminacin (Bklt+ y Bklt-), que te permiten
alimentar el LCD, controlar el contraste del display, o encender
y apagar la retro-iluminacin, respectivamente.
El proceso de controlar el display involucra la colocacin de los
datos que componen la imagen de lo que quieres mostrar, en
los registros de datos, y luego, colocar las instrucciones, en el
registro de instrucciones. La libreraLiquidCrystal te simplifica
todo este proceso de forma que no neesitas saber las
instrucciones de bajo nivel.
Los LCD-s compatibles con Hitachi pueden ser controlados de
dos modos: 4 bits u 8 bits. El modo de 4 bits requiere siete
pines de E/S de Arduino, mientras el modo de 8 bits requiere 11
pines. Para mostrar texto en la pantalla, puedes hacer la
mayora de las cosas en modo 4 bits, por lo que el ejemplo
muestra como controlar un LCD de 2x16 en modo de 4 bits.
NOTA: La librera LiquidCrystal tiene revisiones venidas a menos despus de la
versin 0016 de Arduino. Gracias a Limor Fried por reescribirla para
incluir los modos de 4 y 8 bits y otras funcionalidades. Estas
notas hacen referencia a la versin actual como es Arduino
0017.
Otros ejemplos de la librera LiquidCrystal
Hello World - muestra "hello world!" y los segundos desde el
ltio reset
Blink - control del cursor en forma de bloque.
Cursor - control del cursor en forma de guin bajo.
Display - limpieza rpida del display, sin perder lo que haba en
l.
Text Direction - controla en qu sentido fluye el texto desde el
cursor.
Autoscroll - scroll automtico del nuevo texto.
Serial input - acepta la entrada serie y la muestra.
SetCursor - establece la posicin del cursor.
Scroll - realiza un scroll del texto a la izquierda y a la derecha
Circuito
El pin RS del LCD conectado a la E/S digital en el pin 12
El pin enable del LCD conectado a la E/S digital en el pin 11.
Los pines D4 - D7 conectado a las E/S digitales desde el pin 5
hasta el 2.
Los pines de voltaje y tierra conectados a +5V y tierra.
El pin Vo, que controla el constraste, conectado a un
potencimetro. Ajusta el potencimetro para que el texto tenga
el contraste que t quieras.
Nota: Este diagrama de wiring es diferente que el que haba en
anteriores versiones la de librera LiquidCrystal. Los pines de
R/W (lectura/escritura) estn conectado a tierra, y el pin de
enable se mueve al pin 11, liberando el pin E/S para otros usos.
pincha en la imagen para aumentarla

image developed using Fritzing. For more circuit examples, see the Fritzing
project page
Esquemtico:
pincha en la imagen para aumentarla
http://panamahitek.com/uso-de-pantalla-lcd-con-arduino/



http://store.arduino.cc/index.php?mai
n_page=product_info&cPath=2&pro
ducts_id=185
http://www.arduteka.com/arduino/
http://www.hispavila.com/3ds/atmega/
indice.html
https://sites.google.com/site/electronic
aittg0/home/arduino-uno
Arduino Uso de Pantalla LCD con Arduino
Uso de Pantalla LCD con Arduino
antony.garcia.gonzalez@gmail.comFebruary 8, 2013Arduino, Arduino Nano
Una pantalla LCD son dispositivos diseados para mostrar informacin en
forma grfica. LCD significa Liquid Crystal Display (Display de cristal lquido).
La mayora de las pantallas LCD vienen unidas a una placa de circuito y
poseen pines de entrada/salida de datos. Como se podrn imaginar, Arduino
es capaz de utilizar las pantallas LCD para desplegar datos.
Es extremadamente sencillo enviarle datos al circuito integrado de una
pantalla LCD desde Arduino gracias a la librera LiquidCrystal que viene junto
con Arduino IDE.
Pero, antes de pasar a la programacin veamos un poco ms del hardware
que utiliza una pantalla LCD.
Recientemente traje 2 display LCD de 2 filas por 16 columnas. Esto quiere decir
que podemos imprimir caracteres en 2 filas, en las cuales caben 16
caracteres.

Estas pantallas que he comprado tienen un fondo azul y vienen con un LED de
iluminacin. Las letras son blancas y podemos desplegar cualquier tipo de
texto.

Este es un ejemplo muy sencillo de un mensaje impreso con mi Arduino Mega
en la pantalla LCD. Como se puede apreciar, para su funcionamiento
requiere que se hagan algunas conecciones.
A continuacin les presento el PINOUT de una pantalla LCD como las que les
he mostrado en este post:

Estas pantallas constan de 16 pines. De izquierda a derecha, sus usos son los
siguientes:
Pin 1 VSS o GND
Pin 2 VDD o alimentacin (+5V)
Pin 3 Voltaje de contraste. Se conecta a un potencimetro.
Pin 4 Seleccin de registro. Aqu se selecciona el dispositivo para su uso.
Pin 5 Lectura/Escritura. Dependiendo del estado (HIGH o LOW), se podr
escribir o leer datos en el LCD
Pin 6 Enable. Es el pin que habilita o deshabilita el LCD.
Pin 7 hasta Pin 14 Son los pines de datos por donde se enva o recibe
informacin.
Pin 15 El nodo del LED de iluminacin de fondo (+5v).
Pin 16 El ctodo del LED de iluminacin de fondo (GND).
Si contamos con una pantalla LCD y la queremos utilizar con Arduino,
debemos hacer las siguientes conexiones:

Esta configuracin podr ser usada con cualquier tipo de placa Arduino. Se
debe hacer lo siguiente:
-Conseguir un potencimetro de 10 K. Los potencimetros tienen 3 patas. La
de la derecha se conecta a 5V en la placa Arduino. La pata de la izquierda se
conecta en el GND de Arduino. La pata del centro se conecta al tercer pin en
el LCD (Voltaje de contraste).
-Se conecta el pin 1 el LCD al GND de Arduino.
-El pin 2 del LCD va a 5V en Arduino.
-El pin 4 va al pin 12 de Arduino.
-El pin 5 se conecta a GND.
-El pin 6 del LCD va al pin 11 en Arduino.
-Los pines 7, 8, 9 y 10 del LCD no se conectan.
-Los pines 11, 12, 13 y 14 del LCD se conectan en el 5, 4, 3 y 2 del Arduino,
respectivamente.
-El pin 15 se conecta en 5V y el pin 16 se conecta en GND.
Una vez hecho esto, nos dirigimos a Arduino IDE.
Vamos al men Archivo/Ejemplos/LiquidCrystal/HelloWorld.

Nos aparecer un cdigo que podremos subir a nuestra placa de al instante.
El cdigo lo que har es imprimir el mensaje hello World! en la fila 1. En la fila
2 aparecern los segundos que han transcurrido desde que se inici la
ejecucin del cdigo.
Para este ejemplo decid utilizar mi Arduino Nano. Estoy llevando a cabo un
proyecto donde necesito utilizar una pantalla LCD por lo que decid
aprovechar la oportunidad para escribir este post.
Me compr una placa perforada y sold los pines de mi Arduino Nano para
poder trabajar de manera ms cmoda con la pantalla LCD.




Usted es libre de hacer el diseo que usted prefiera. Yo decid adaptar la
pantalla LCD a la placa perforada utilizando los filamentos que conforman un
cable de red RJ45.

Con unos 3 o 4 pies de cable RJ45 obtendrn una cantidad inmensa de
jumpers. El RJ45 pose 8 filamentos que son muy tiles en proyectos de
electrnica.

Utilic un cable chocolate para el contraste, 2 cables verdes para el enable y
el read/write, 4 cables naranjas para los pines de datos, 3 cables blancos para
el GND y 2 azules para los +5V.
Sold todo a la placa perforada y agregu un trimmer como potencimetro
para el contraste.


Una vez hecho esto podemos subir el cdigo de Hello World a Arduino o ver
los resultados.
El video no me qued con buena calidad, sin embargo el usuario es capaz de
darse cuenta de como debe verse el resultado. Si el LCD no despliega
informacin, pruebe con ajustar el potencimetro (o trimmer) hasta hallar el
contraste apropiado.
Espero sus comentarios.



Sensor de temperatura y humedad
DHT11
Posted on 13 noviembre, 2012

Hace algunas semanas arrib a mi casa, entre otras cosas de China, un sensor de temperatura y
humedad DHT-11. Es un pequeo sensor digital que utiliza un protocolo propietario de un hilo
para enviar la informacin, funciona de maravillas con Arduino o cualquier microcontrolador
similar.
El encapsulado consta de 4 pines, uno de los cuales est sin conexin

Se alimenta con 3 a 6 volts y enva datos en un rate bastante alto, la precisin es muy buena,
aunque su rango es algo acotado para las temperaturas, cosa que se puede solucionar
comprando un sensor mejor como el DHT-22 (claro, es mas caro tambin). Desde ya, por el
minimo costo de este sensor, no podemos pedir mas, y para aplicaciones hogareas es
suficiente.

Conectandolo al arduino UNO
La conexin es simple, lo alimentamos con 5 volts, GND y usamos una de las entradas
analgicas (A0~A5) para conectar el pin DATA del sensor
En mi caso, lo hice funcionar con mi LCD keypad shield y para ello utilic el siguiente cdigo:
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 15 //Analog 1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Sensor desconectado");
} else {
lcd.setCursor(0,0);
lcd.print("Temperatura ");
lcd.print(t,0);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humedad ");
lcd.print(h,0);
lcd.print("%");
delay(1200);
}
}
El delay de 1200ms es necesario para no saturar el sensor con datos, de esta forma
conseguiremos datos factibles y no errores por lecturas muy rpidas.

Probablemente necesiten descargar la libreria DHT11 para Arduino, la pueden descargar desde
aqu: https://github.com/adafruit/DHT-sensor-library

En el caso de que solo quieran conseguir una salida serial de los datos de humedad y
temperatura, el cdigo debera ser algo asi:
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 15 //Analog 1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Sensor desconectado");
} else {
Serial.println(t);
Serial.println(h);
delay(1200);
}
}
http://panamahitek.com/uso-de-pantalla-lcd-con-arduino/
http://geekytheory.com/arduino-ethernet-shield-relay/
https://decibel.ni.com/content/docs/DOC-22834
http://rduinostar.com/tutoriales/tutorial-3-entradas-analogicas/
http://www.electronicaestudio.com/arduino_productos.htm
http://www.olx.es/q/kit-de-practicas-con-arduino-uno-r3/c-366
http://www.laurence.com.ar/artes/programacion/ejemplos.html
https://mega.co.nz/#!qAhQGZpA!JxZzrGdqT96Bto_SJlSeBEzdBKtqQbl-i9MbCR4EVug



http://tdrobotica.co/
http://www.forosdeelectronica.com/
http://electronica-pic.blogspot.mx/2012/04/arduino-es-unaplataforma-abierta-para.html
http://ultra-lab.net/blog/talleres-infantiles-electr%C3%B3nica-imaginaci%C3%B3n-y-juego
http://www.buscamigos.net/
http://docuteka.net/practicas-labview-arduino

Vous aimerez peut-être aussi