En la clase de hoy hicimos el ultimo avance de la conexión y programación de los circuitos del barco. Con la ayuda de la Miss, acabamos de hacer la programación del LCD. Nos dio un poco de trabajo porque tenemos uno distinto a los comunes. Acabamos de hacer la programacion del teclado y últimos detalles y códigos del servomotor. Le pusimos el delay y las vueltas que debe hacer con los siguientes códigos:
LCD:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//Crear el objeto lcd dirección 0x27 y 16 columnas x 2 filas
LiquidCrystal_I2C lcd(0x2F,16,2); //
void setup() {
// Inicializar el LCD
lcd.init();
//Encender la luz de fondo.
lcd.backlight();
// Escribimos el Mensaje en el LCD.
lcd.print("Hola Mundo");
}
void loop() {
// Ubicamos el cursor en la primera posición(columna:0) de la segunda línea(fila:1)
lcd.setCursor(0, 1);
// Escribimos el número de segundos trascurridos
lcd.print(millis()/1000);
lcd.print(" Segundos");
delay(100);
}
Servomotor:
#include <Keypad.h>
#include <Wire.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x38,20,4);
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int rodar=0;
int pos = 90; // variable to store the servo position
int col=0;
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.init(); // Fijar el numero de caracteres y de filas
lcd.setBacklight(LOW); // Enviar el mensaje
lcd.print("Barco Pirata");
myservo.attach(17); // attaches the servo on pin 9 to the servo object
myservo.write(pos); // tell servo to go to position in variable 'pos'
Serial.begin(9600);
}
void loop()
{
char pulsacion = Teclado1.getKey();
if (pulsacion != 0) // 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')
{
rodar=1;
}
if(pulsacion=='B')
{
rodar=0;
}
if(rodar==1)
{
myservo.write(0); // tell servo to go to position in variable 'pos'
delay(1000);
myservo.write(180); // tell servo to go to position in variable 'pos'
delay(1000);
}
if(rodar==0)
{
myservo.write(90);
}
Serial.print(rodar);
}
Por ultimo colocamos parte de los circuitos en la maqueta y en la siguiente clase vamos a ver si ya implementado los circuitos dentro de la maqueta funciona para presentar el proyecto final.

