28jul
Rate This
También la robótica esta increíble con los Hexápodos, este será otro proyecto que mostrare
más adelante, y las aplicaciones en CNC (Fresadoras), en fin son temas que mas adelante
tocaremos.
/*
Temperature Indicator F/C with LM35 sensor.
apcexpert.blogspot.com
apcexpert.wordpress.com
*/
// Variables
float TempC;
float TempF;
int TempPin = 1;
void setup(){
// LCD’s line position of columns and rows:
lcd.begin(16, 2);
lcd.print(” Temp Indicator”);
lcd.setCursor(0, 1);
lcd.print(“Temp”);
}
void loop(){
tempC = analogRead(TempPin); //read the value from the sensor
tempC = (5.0 * TempC * 100.0)/1024.0; //convertion the analog data to temperature
tempF = ((TempC*9)/5) + 32; //convertion celcius to farenheit
lcd.setCursor(5, 1);
lcd.print(TempF,1);
lcd.print(“F”);
delay(1000);
}
Introducción
Hace algún tiempo me compre una placa de desarrollo Arduino Duemilanove a través de Ditentec (distribuidor
oficial de estas placas en Argentina), con la intención de retomar y profundizar mis conocimientos de electrónica
y programación para aplicarlos a mi trabajo artístico.
Más allá de algunas pequeñas pruebas, como el clásico encendido y apagado de LED, y algún que otro sensor,
no me había planteado enserió esta tarea por falta de tiempo, pero ese momento al fin llego.
Entre los primeros componentes electrónicos que adquirí, estaba un display LCD de 16x2, que me propuse
hacer funcionar, y estos son los resultados.
Esta librería, es una de las librerías básicas de Arduino, y permite controlar displays LCD basados en el chipset
Hitachi HD 44780.
El display que había comprado (y el 99% de los displays que se pueden adquirir) trajo como única información
algunos números impresos en la placa y una etiqueta. Entre esos números se encontraba el número de modelo
del display: CCM-1620CSL-V2.
Rastreando en Internet, pude dar con la hoja de datos (Datasheet) de ambos display, y comprobar que el pinout
de ambos es 100% compatible (Podría pasar que no sea compatible, o que .alguno de los pines cambie de
lugar).
Información del controlador HD 44780 en Wikipedia
Hoja de datos del Display CCM-1620CSL-V2 (PDF)
image developed using Fritzing. For more circuit examples, see the Fritzing project page
Lo cual debe dar como resultado una conexión de este tipo en un portoboard:
image developed using Fritzing. For more circuit examples, see the Fritzing project page
Con este programa podremos escribir en las dos lineas de nuestro display:
view source
print?
01./*
02.Este programa permite escribir en un display de 16x2 compatible con el
driver HD 44780 de Hitachi
03.*/
04.
05.// Llamanos a la libreria Liquid Cristal
06.#include <LiquidCrystal.h>
07.
08.// Inicializamos el display con los pines a utilizar en el siguiente
orden: rs, enable, d4, d5, d6, d7
09.LiquidCrystal lcd(6, 7, 8, 9, 10, 11);
10.
11.
12.void setup() {
13. lcd.begin(16, 2); // Definimos el tamaño de la pantalla en 16
caracteres y 2 lineas
14.}
15.
16.void loop() {
17. lcd.clear(); // borramos lo que hay el display
18. lcd.setCursor(0, 0); // Nos posicionamos en el primer caracter de la
primer linea 0,0
19. lcd.print("Hola Mundo!!!");// Escribimos en la primera linea el
display
20.
21. lcd.setCursor(0, 1); // Nos posicionamos en el primer caracter de la
segunda linea 0,0
22. lcd.print("Juan Colombo"); // Escribimos en la segunda linea del
display
23.
24. delay(250); // retardamos la ejecucion del programa 250 milisegundos
25.
26.}
Modificando el Sketch: Scroll de texto
Sin modificar las conexiones que tenemos hechas y haciendo unas correcciones en el programa, cambiando el
caracter en que se empieza a escribir, y generando un ciclo para desplazar el texto de izquierda a derecha,
conseguimos hacer un scroll del texto que mostraba el ejemplo anterior.
view source
print?
01./*
02.Este programa permite escribir en un display de 16x2 compatible con el
driver HD 44780 de Hitachi
03.*/
04.
05.// Llamanos a la libreria Liquid Cristal
06.#include <LiquidCrystal.h>
07.
08.// Inicializamos el display con los pines a utilizar en el siguiente
orden: rs, enable, d4, d5, d6, d7
09.LiquidCrystal lcd(6, 7, 8, 9, 10, 11);
10.
11.
12.void setup() {
13. lcd.begin(16, 2); // Definimos el tamaño de la pantalla en 16
caracteres y 2 lineas
14. Serial.begin(9600); // abrimos el puerto RS323 para su lectura a
través del usb
15.}
16.
17.void loop() {
18. lcd.clear(); // borramos lo que hay el display
19. lcd.setCursor(17, 0); // Nos posicionamos en el caracter 17 de la
primer linea 0,0
20. lcd.print("Hola Mundo!!!");// Escribimos en la primera linea el
display
21. lcd.setCursor(17, 1); // Nos posicionamos en el caracter 17 de la
segunda linea 0,0
22. lcd.print("Juan Colombo"); // Escribimos en la segunda linea del
display
23.
24. for (int posicion = 0; posicion < 32; posicion++) { //Con este ciclo
generamos un scroll hacia la derecha de todo el contenido del display
25. lcd.scrollDisplayLeft(); //despaza el contenido del display hacia la
derecha una posicion
26. delay(250); //espera 250 ms
27. }
28.}
Termómetro Digital con Arduino y pantalla LCD:
Otro tutorial sobre GarageLab muestra una interesante manera de leer la temperatura del
ambiente con el Arduino , y se nota en un LCD de 16 × 2 de la pantalla (en grados
Fahrenheit), mediante el uso de algunos elementos de su programación y
la temperatura LM35 sensor .
Que lo disfruten!
La lista de componentes:
- placa Arduino
- LCD 16 x 2 Pantalla
- 10K potenciómetro
- Puentes de conexión
int Vin; // Variable to read the value from the Arduino’s pin
/* The function above declares which Arduino’s pins will be used for
controlling the LCD */
void setup()
{
lcd.begin(16, 2); // It tells the Arduino that the display is a 16x2
type
lcd.print("Temperature: "); // Send the text to the screen of the
display.
}
void loop()
{
Vin = analogRead (sensor); // Tells the Arduino to read the pin and
// stores the value in “Vin”
Temperature=(500*Vin)/1023; // Converts the voltage value into
temperature
// and stores it into the “Temperature”
variable (in ºC)
TF = ((9*Temperature)/5)+32; // Converts ºC to ºF
lcd.setCursor(0, 1); // Moves the cursor of the display to the
next line
lcd.print(TF); // Exhibits the value of the temperature on the
display
lcd.print(" F"); // Writes “F” to indicate that it is in
Fahrenheit scale.
delay(1000); // Waits for a second to read the pin again
}
Su proyecto para mostrar la temperatura está listo! Esperamos que hayan disfrutado.
Cualquier duda, en este espacio.
Por lo tanto, el valor máximo (1023, por lo tanto, es de 0 a 1023) será 5V. El medio que
coincidirá con el 511 o 2,5 V, y así sucesivamente. A efectos de cálculo, no habría 5V en la
salida del sensor de un valor temaprature de 500 º C (que es diferente en una situación real).
Sin embargo, esta relación nos permite generalizar a la siguiente relación:
Temperatura —– Vin
Así, habrá: