Paso 8: Programación (contra rebotes los interruptores x 12)
Aquí está nuestro lazo debounced. Tenga en cuenta que también estamos almacenando los tiempos debounce como valores independientes 12:
int buttonState [12]; la lectura actual del pin de entrada
int lastButtonState [12] = {baja, baja, baja, baja, baja, baja, baja, baja, baja, baja, baja, baja};
largo lastDebounceTime [12] = {0,0,0,0,0,0,0,0,0,0,0,0}; la última vez que el pin de salida fue fijada debounceDelay largo = 50; el tiempo de debounce; aumentar si la salida parpadea
para (int x = 0; x < 12; x ++) {}
currentPin [x] = digitalRead(pedalPins[x]);
Si (currentPin [x]! = {lastButtonState[x])}
lastDebounceTime [x] = millis();
}
Si ((millis() - lastDebounceTime[x]) > debounceDelay) {}
Si (currentPin [x]! = {buttonState[x])}
buttonState [x] = currentPin [x];
Si (currentPin[x]==0) {Serial.print ("Pedal"); Serial.Print(x+1); Serial.println ("Up"); }
Si (currentPin[x]==1) {Serial.print ("Pedal"); Serial.Print(x+1); Serial.println ("abajo"); }
}
}
lastButtonState [x] = currentPin [x]; }
}
Funciona muy bien! No repetición activa ahora. Apenas limpiar arriba y abajo de los eventos. Vamos a hacer MIDI!