#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <Servo.h> // Librería para controlar servos
Servo servoBoca;
int opcion = 0;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("MATERIA:");
lcd.setCursor(5, 1);
lcd.print("Stem");
delay(2000);
lcd.setCursor(2, 0);
lcd.print("CREADO POR:");
lcd.setCursor(1, 1);
lcd.print("Jeronimo Diaz");
delay(2000);
lcd.setCursor(2, 0);
lcd.print("ENTREGADO A:");
lcd.setCursor(1, 1);
lcd.print(" Miguel Diaz ");
delay(2000);
lcd.setCursor(2, 0);
lcd.print(" GRACIAS ");
lcd.setCursor(2, 1);
lcd.print(" POR VENIR ");
delay(2000);
servoBoca.attach(9);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
servoBoca.write(90);
Serial.begin(9600);
Serial.println("Escribe una opción (1-10):");
Serial.println("1) abrir la boca");
Serial.println("2) abrir ojos");
Serial.println("3) parpadear una vez");
Serial.println("4) abrir boca y parpadear una vez");
Serial.println("5) abrir ojos y parpadear una vez");
Serial.println("6) parpadear dos veces");
Serial.println("7) abrir boca y abrir ojos");
Serial.println("8) parpadear dos veces y abrir la boca");
Serial.println("9) parpadear dos veces y abrir ojos");
Serial.println("10) abrir boca, abrir ojos y parpadear");
}
void loop() {
if (Serial.available() > 0) {
opcion = Serial.parseInt();
Serial.print("Elegiste la opción: ");
Serial.println(opcion);
if (opcion == 1) {
// Opción 1: abrir la boca
servoBoca.write(45);
delay(500);
servoBoca.write(90);
delay(500);
} else if (opcion == 2) {
// Opción 2: abrir ojos
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
delay(500);
} else if (opcion == 3) {
// Opción 3: parpadear una vez
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
} else if (opcion == 4) {
// Opción 4: abrir boca y parpadear una vez
servoBoca.write(45);
delay(500);
servoBoca.write(90);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
} else if (opcion == 5) {
// Opción 5: abrir ojos y parpadear una vez
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
} else if (opcion == 6) {
// Opción 6: parpadear dos veces
for (int i = 0; i < 2; i++) {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
}
} else if (opcion == 7) {
// Opción 7: abrir boca y abrir ojos
servoBoca.write(45);
delay(500);
servoBoca.write(90);
delay(500);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
delay(500);
} else if (opcion == 8) {
// Opción 8: parpadear dos veces y abrir la boca
for (int i = 0; i < 2; i++) {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
}
servoBoca.write(45);
delay(500);
servoBoca.write(90);
delay(500);
} else if (opcion == 9) {
// Opción 9: parpadear dos veces y abrir ojos
for (int i = 0; i < 2; i++) {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
}
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
delay(500);
} else if (opcion == 10) {
// Opción 10: abrir boca, abrir ojos y parpadear
servoBoca.write(45);
delay(500);
servoBoca.write(90);
delay(500);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
} else {
Serial.println("Opción no válida. Elige entre 1 y 10.");
}
delay(1000);
}
}