#define entrada0 0
#define entrada1 2
volatile bool D0_pressed = false;
volatile bool D1_pressed = false;
void IRAM_ATTR interruptD0(){
if(digitalRead(entrada1) == HIGH){
D0_pressed = !D0_pressed;
}
}
void IRAM_ATTR interruptD1(){
if(digitalRead(entrada0) == HIGH){
D1_pressed = !D1_pressed;
}
}
void setup() {
Serial.begin(115200);
pinMode(entrada0, INPUT_PULLUP);
pinMode(entrada1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(entrada0), interruptD0, CHANGE);
attachInterrupt(digitalPinToInterrupt(entrada1), interruptD1, CHANGE);
}
void loop() {
if (D0_pressed == true) {
for (int dutycycle = 0; dutycycle <= 255; dutycycle++) {
Serial.printf("Subiendo Persiana: %d %%\n", dutycycle);
if(dutycycle == 255){
Serial.println("Persiana Subida");
}
else if (D0_pressed == false) {
break;
}
}
}
if (D1_pressed == true) {
for (int dutycycle = 255; dutycycle >= 0; dutycycle--) {
Serial.printf("Bajando Persiana: %d %%\n", dutycycle);
if (D1_pressed == false) {
break;
}
else if(dutycycle == 0){
Serial.println("Persiana Bajada");
}
}
}
}