#define LED0 D2
#define LED1 D3
#define LED2 D4
#define LED3 D5
// Variables para el control de tiempo
unsigned long Millis_Anterior = 0;
const unsigned long interval = 10; // Intervalo en ms
void setup() {
pinMode(LED0,OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3,OUTPUT);
Serial.begin(115200);
// Estado inicial (todos los LEDs apagados)
digitalWrite(LED0, LOW);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
Serial.println("Sistema iniciado. Esperando comando...");
Serial.println("Enviar 'a' o 'd' para controlar LEDs");
}
byte ultimoComando = 0; // Inicialmente no hay comando
void loop() {
unsigned long Millis_Actual = millis();
if (Millis_Actual - Millis_Anterior >= interval) {
Millis_Anterior = Millis_Actual;
if (Serial.available() > 0) {
char dato = Serial.read(); // Lee un byte
while(Serial.available() > 0) Serial.read(); //Limpio el buffer serial.
if(dato=='a'){
Serial.print("Recibido: ");
Serial.println(dato);
digitalWrite(LED0, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
ultimoComando='a';
}
else if(dato=='d'){
Serial.print("Recibido: ");
Serial.println(dato);
digitalWrite(LED0, LOW);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
ultimoComando='d';
}
else{
Serial.println("Comando no valido. Use 'a' o 'd'");
}
}
}
else{
if(ultimoComando==0){
digitalWrite(LED0, LOW);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
}
}