#include <stdint.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
const int ledPinR = 6;
const int ledPinG = 13;
const int pinBuzzer = 6;
typedef enum estados {s0, s1, s2, s3} estados;
const uint8_t botonTA = 2;
const uint8_t botonTB = 3;
const uint8_t botonTC = 4;
const uint8_t botonTD = 5;
void setup() {
pinMode(botonTA, INPUT_PULLUP);
pinMode(botonTB, INPUT_PULLUP);
pinMode(botonTC, INPUT_PULLUP);
pinMode(botonTD, INPUT_PULLUP);
pinMode(ledPinR, OUTPUT);
pinMode(ledPinG, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
lcd.begin(16, 2);
}
void loop() {
char respuesta = ' ';
static estados estadoActual = s0;
switch (estadoActual) {
case s0:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pregunta 1:");
lcd.setCursor(0, 1);
lcd.print("Cual es la capital");
delay(1000);
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.setCursor(0, 1);
lcd.print("de china? ");
delay(1000);
if (digitalRead(botonTA) == LOW) {
respuesta = 'A';
estadoActual = s1;
}
if (digitalRead(botonTB) == LOW) {
respuesta = 'B';
digitalWrite(ledPinR, HIGH);
delay(1000);
digitalWrite(ledPinR, LOW);
}
if (digitalRead(botonTC) == LOW) {
respuesta = 'C';
digitalWrite(ledPinR, HIGH);
delay(1000);
digitalWrite(ledPinR, LOW);
}
if (digitalRead(botonTD) == LOW) {
respuesta = 'D';
digitalWrite(ledPinR, HIGH);
delay(1000);
digitalWrite(ledPinR, LOW);
}
break;
case s1:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Respuesta: A");
digitalWrite(ledPinG, HIGH);
delay(1000);
digitalWrite(ledPinG, LOW);
estadoActual = s2;
break;
case s2:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pregunta 2:");
lcd.setCursor(0, 1);
lcd.print("Cual es el");
delay(1000);
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.scrollDisplayLeft();
lcd.setCursor(0, 1);
lcd.print("color del cielo? ");
delay(1000);
if (digitalRead(botonTB) == LOW) {
respuesta = 'B';
estadoActual = s3;
}
if (digitalRead(botonTA) == LOW) {
respuesta = 'A';
digitalWrite(ledPinR, HIGH);
delay(1000);
digitalWrite(ledPinR, LOW);
}
if (digitalRead(botonTC) == LOW) {
respuesta = 'C';
digitalWrite(ledPinR, HIGH);
delay(1000);
digitalWrite(ledPinR, LOW);
}
if (digitalRead(botonTD) == LOW) {
respuesta = 'D';
digitalWrite(ledPinR, HIGH);
delay(1000);
digitalWrite(ledPinR, LOW);
}
break;
case s3:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Respuesta: B");
digitalWrite(ledPinG, HIGH);
delay(1000);
digitalWrite(ledPinG, LOW);
delay(1000);
estadoActual = s3;
break; }
//case s4:
//lcd.clear();
//lcd.setCursor(0, 0);
//lcd.print("Fin del juego");
// digitalWrite(ledPinG, HIGH);
// delay(1000);
// digitalWrite(ledPinG, LOW);
// estadoActual = s4;
// void generarSonido(int pinBuzzer, int frecuencia, int duracion) {
// int nota = 1000000 / frecuencia;
//int tiempo = nota / 2;
// for (int i = 0; i < duracion * 1000L; i += nota * 2) {
//digitalWrite(pinBuzzer, HIGH);
// delayMicroseconds(tiempo);
//digitalWrite(pinBuzzer, LOW);
// delayMicroseconds(tiempo);
}
//break; }