Documente Academic
Documente Profesional
Documente Cultură
1 Introducción
En este informe se desrı́be los pasos para programar y diseñar un prototipos
con el uso de arduino una plataforma electrónica de código abierto en hard-
ware y software flexibles y fáciles de usar, un keypad 4x4 y una lcd. El pro-
grama concite en general una imagen de dos bits en la LCD y con el teclado
keypad 4x4 hacerla mover hacia la derecha y a la izquierda.
2 Objetivos
* Simular un códigos funcionales.
* Recordar los conceptos básicos de programación.
* Basar una simulación digital en una real con la ayuda de arduino.
* Generar una imagen de dos bits entendible.
* Hacer mover la imagen generada.
3 Procedimiento
Elementos usados
* Arduino uno
*lcd
*protoboard
*teclado 4x4 keypad
1
Figure 1: Esquema de la matriz 8x5 . Fuente propia
los bloques en blanco son los 0 y los bloques en negro son los 1.
3.1.1 Montaje
Para que el programa arduino reconozca el teclado de membrana se descargo
la librerı́a del keypad 4x4.
2
Figure 3: Montaje hecho en fritzing. Fuente propia
3.1.2 Codigo
# include <Keypad.h>
# include <LiquidCrystal.h>
int RS = 8;
int E = 9;
int D4 = 10;
int D5 = 11;
int D6 = 12;
int D7 = 13;
LiquidCrystal lcd (RS, E, D4, D5, D6, D7);
//Estas son los pines en donde se conectan de la LCD al arduino.
const byte filas =4;
const byte columnas =4;
byte pinsFilas[filas]={7,6,5,4};
byte pinsColumnas[columnas]={3,2,1,0};
char teclas[filas][columnas]=
{’1’,’2’,’3’,’A’},
{’4’,’5’,’6’,’B’},
{’7’,’8’,’9’,’C’},
{’*’,’0’,’# ’,’D’}
;
Keypad teclado=Keypad(makeKeymap(teclas),pinsFilas,pinsColumnas,filas,columnas);
char tecla;
//imagen
byte Foto 0[8] = { B00000,B00000,B00000,B00001,B00011,B00011,B00011,B00001};
byte Foto 1[8] = { B00000,B00111,B00010,B11111,B11111,B10000,B11111,B11111};
byte Foto 2[8] = { B00000,B11000,B00000,B11100,B11110,B11111,B11110,B11110};
3
byte Foto 3[8] = { B00000,B00000,B00000,B00000,B00001,B11111,B00001,B00000};
byte Foto 4 [8] = { B00000,B00111,B01010,B10101,B10101,B01010,B00111,B00000};
byte Foto 5[8] = { B01111,B11111,B00110,B01001,B01001,B00110,B11111,B00000};
byte Foto 6[8] = { B11000,B11111,B00110,B01001,B01001,B00110,B11111,B00000};
byte Foto 7[8] = { B00000,B11000,B01100,B01100,B00100,B01000,B10000,B00000};
void setup() {
Serial.begin(9600);
lcd.clear();
lcd.begin(16, 2);
lcd.createChar(7,Foto 7);
lcd.createChar(6,Foto 6);
lcd.createChar(5,Foto 5);
lcd.createChar(4,Foto 4);
lcd.createChar(3,Foto 3);
lcd.createChar(2,Foto 2);
lcd.createChar(1,Foto 1);
lcd.createChar(0,Foto 0);
}
void loop() {
int i=0,n=0;
tecla=teclado.getKey();
if(tecla !=NO KEY){ }
if (tecla==’1’){
while(i¡=1){
lcd.setCursor(0,0); // el cursor en el carácter de la linea 0, columna 0 ( o
sea, el primero )
lcd.print((char)0);
lcd.setCursor(1,0); // el cursor en el carácter de la linea 0, columna 0 ( o
sea, el primero )
lcd.print((char)1);
lcd.setCursor(2,0); // el cursor en el carácter de la linea 0, columna 0 ( o
sea, el primero )
lcd.print((char)2);
lcd.setCursor(3,0); // el cursor en el carácter de la linea 0, columna 0 ( o
sea, el primero )
lcd.print((char)3);
lcd.setCursor(0,1);
lcd.print((char)4);
lcd.setCursor(1,1);
lcd.print((char)5);
lcd.setCursor(2,1);
lcd.print((char)6);
lcd.setCursor(3,1);
lcd.print((char)7);
Serial.println(i);
lcd.scrollDisplayLeft();
i++;
}
}
if (tecla==’2’){
4
lcd.scrollDisplayRight();
}
}
El bucle que se imprimirá para cada imagen se representa ası́ for(int i=0; i¡16;
i++), i– no corre hacia la derecha. En un principio i– se suponı́a que lo cor-
rerı́a hacia la izquierda pero este generaba error. Un error con el i– las figuras
despues del primer ciclo se distorsionan.
En las librerı́as de arduino se encontró dos códigos que hacian de funcion
de i–(el de correr hacia la izquierda y derecha) scrollDisplayLeft() scrollDis-
playRight().
if (tecla==’1’)
lcd.scrollDisplayRight()
Este código para escanear el dı́gito y llevarlo a su funció en este caso en 1
es para correr la imagen hacia la derecha en la LCD.
4 Conclusiones
* En la pagina de arduino se muestran los comandos de las librerı́as
* En esta LCD 16x2 se pueden crear imágenes a dos bits.
* Ademas de imágenes se pueden hacer letreros de publicidad móviles.
* Hay diferentes librerı́as en arduino, hay que elegir la mas actualizada.