#define LEDR 23
#define LEDV 22
#define tiempo_high 1000 //msec a 1
#define tiempo_low 1000 //msec a 0
unsigned long tic, tac;
void espera_millis(int valor, unsigned long tiempo_espera){
tic=millis();
do{
// valor --> serial plotter
tac=millis();
}
while(tac-tic<tiempo_espera);
return;
}
unsigned char letra; // variable para almacenar el byte leido del buffer serie
// simulador online wokwi -> https://wokwi.com/projects/375288720477722625
void setup() {
pinMode(LEDR, OUTPUT);
pinMode(LEDV, OUTPUT);
letra='V'; //empieza en verde
Serial.begin(115200); // speed for Serial communicationç
Serial.print("\nPulse R o V y presione enter:\n");
}
void loop() {
switch(letra){
case 82:
digitalWrite(LEDR, HIGH);
espera_millis(1, tiempo_high);
digitalWrite(LEDR, LOW);
espera_millis(0, tiempo_low);
Serial.println("ROJO");
break;
case 86:
digitalWrite(LEDV, HIGH);
espera_millis(1, tiempo_high);
digitalWrite(LEDV, LOW);
espera_millis(0, tiempo_low);
Serial.println("VERDE");
break;
}
if (Serial.available()>0) { //
letra = Serial.read(); // leer el byte actual
delay(100); //pausa de 100 ms, damos tiempo a que entren otros caracteres por el puerto serie
do {
Serial.read(); // quitar siempre el caracter de retorno de carro (Enter)
}while(Serial.available());
Serial.printf("\nPulse otra tecla\n");
}
return;
}