viernes, 20 de octubre de 2017

Servomotor+ teclado+arduino+ lcd


 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:

  1. Arduino UNO
  2. Servomotor
  3. Cables macho-macho
  4. LCD 16x2
  5. Teclado matricial 4x4
  6. 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