#define pinLedR 38
#define pinLedG 47
#define pinPulsador 10
unsigned long t_actual, t_serial, t_wait;
volatile bool EstadoSerial = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(pinLedR, OUTPUT);
pinMode(pinLedG, OUTPUT);
pinMode(pinPulsador, INPUT_PULLUP);
digitalWrite(pinLedR, LOW);
digitalWrite(pinLedG, HIGH);
t_serial = 0;
t_wait = 0;
EstadoSerial = false;
}
void loop() {
// put your main code here, to run repeatedly:
t_actual = millis();
if (EstadoSerial == false){
if(Serial.available() > 0){
String entrada = Serial.readStringUntil('/n');
t_serial = t_actual;
}
else{
t_wait = t_actual - t_serial;
if(t_wait >= 10000){
EstadoSerial = true;
}
}
}
else{
digitalWrite(pinLedR, HIGH);
digitalWrite(pinLedG, LOW);
attachInterrupt(pinPulsador, alternarEstado, FALLING);
}
delay(10); // this speeds up the simulation
}
void ARDUINO_ISR_ATTR alternarEstado() {
EstadoSerial = !EstadoSerial;
digitalWrite(pinLedR, LOW);
digitalWrite(pinLedG, HIGH);
}