UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO”
4° AÑO PAI - 10° AÑO DE EGB “C”
Servomotor+ teclado+arduino+ lcd
Nombre: Emily Cortez Fecha: 05/10/17
MATERIALES:
- Arduino UNO
- Servomotor
- Cables macho-macho
- LCD 16x2
- Teclado matricial 4x4
- Potenciómetro
PROCESO:
- CONEXIÓN
Para iniciar con la conexión de todos los elementos, podemos empezar conectando el teclado directamente al arduino desde el pin 5 al 12. Usamos cables macho-macho como en la siguiente imagen:
Después de realizar esa conexión procedemos a conectar el lcd en el arduino. Conectamos los pines del lcd al arduino de la siguiente manera: DB7(LCD) al pin 4(arduino), DB6 (LCD) al pin 3 (arduino), y DB5 (LCD) al pin 2 (arduino).
Luego conectamos DB4 en A2, E (enable) al pin A1,
- PROGRAMACIÓN:
Tras terminar con la respectiva conexión debemos editar un código de la aplicación Arduino y juntarlo con otro, de esta manera podemos hacer que el teclado tenga control en el movimiento del servomotor y el encendido del lcd. Tras editar el código, este queda así:
#include <Keypad.h>
#include <LiquidCrystal.h>
#include <Servo.h>
LiquidCrystal lcd(14, 15, 16, 2, 3, 4); // ( RS, EN, d4, d5, d6, d7)
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
const byte Filas = 4; //Cuatro filas
const byte Cols = 4; //Cuatro columnas
byte Pins_Filas[] = {12, 11, 10, 9}; //Pines Arduino a los que contamos las filas.
byte Pins_Cols[] = { 8, 7, 6, 5}; // Pines Arduino a los que contamos las columnas.
char Teclas [ Filas ][ Cols ] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);
void setup()
{ lcd.begin(16, 2); // Fijar el numero de caracteres y de filas
lcd.print("Hola mundo! =)"); // Enviar el mensaje
myservo.attach(17);
}
int col =0 ;
void loop()
{
char pulsacion = Teclado1.getKey() ;
if (pulsacion !=12 ) // Si el valor es 0 es que no se ha pulsado ninguna tecla
{
lcd.setCursor(col, 1); // set the cursor to column 0, line 1
lcd.print(pulsacion); // print the number of seconds since reset:
col = col +1;
if(pulsacion== 'A')
{pos=90;}
if (pulsacion== 'B')
{pos=180;}
}
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(1000);
myservo.write(0);
}



No hay comentarios:
Publicar un comentario