Sunteți pe pagina 1din 5

MANIPULACIÓN DE CARACTERES.

IMAGENES CON LOS BOTONES


Juan David Solarte Moreno
February 19, 2019

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

3.1 Generar la imagen


Se pide simular en arduino un programa que genere una imagen de dos bits.
Como solo son dos bits de color se imprimirá a blanco y negro siendo 1 para el
color blanco y el 0 para el color negro. En la pantalla LCD hay 32 matrices de
8x5 adjuntadas como 16x2, para la imagen se en cada matriz se le añadira los
unos y ceros que se correspondan.
Ejemplo del código para generar una matriz.
byte Foto 0[8]={ B00000,B00000,B00000,B00001,B00011,B00011,B00011,B00001};

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.

Figure 2: Imagen completa en dos bits. Fuente propia

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.

Figure 4: Imagen en la LCD. Fuente propia

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.

S-ar putea să vă placă și