/*
Capitulo 21 de Arduino desde cero en Español.
Programa que mediante las interrupciones generadas por el foto interruptor
modelo KY-010 conectado a interrupcion externa sobre el pin digital 2
enciende y apaga el LED incorporado con mayor frecuencia a medida que ingresan
mas interrupciones.
*/
volatile int CONTADOR = 0; // variable global CONTADOR
void setup(){
pinMode(13, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2), sensor, RISING); // interrupcion sobre pin digital 2
} // con rutina ISR llamada sensor
void loop(){
digitalWrite(13, HIGH); // enciende LED integrado
delay(CONTADOR); // demora basada en variable CONTADOR
digitalWrite(13, LOW); // apaga LED integrado
delay(CONTADOR); // demora basada en variable CONTADOR
if (CONTADOR < 100){ // si CONTADOR es menor a 100
CONTADOR = 1000; // restablece valor de CONTADOR a 1000
}
}
void sensor(){ // rutina ISR
CONTADOR = CONTADOR-100; // decrementa valor de CONTADOR en 100
}