Vielleicht fängst Du einfach an. Als Beispiel habe ich gestern schnell was zusammengebastelt. Ohne großen Plan, lang ist das Programm nicht. Ob es funktioniert habe ich nicht probiert, müsste aber.
Zumindest wird der Ansatz klar. Ausbauen kann man das im Nachhinein immer. Aber alles Stück um Stück, eins nach dem andern. Dann wird es mit der Fehlersuche einfacher.
Code:
//öffentliche Variablen
const int Pin = 9;
const int pDelay = 250;
int ButState;
//funktionsinterne Variablen
int pState = -1;
unsigned long pMillis = millis();
void setup(){
}
void loop(){
checkButton();
}
void checkButton(){
if (pMillis <= millis()) {
ButState = pState;
pInit();
}else if (digitalRead(Pin) != pState) pInit();
}
void pInit(){
pMillis = millis() + pDelay;
pState = digitalRead(Pin);
}
Der Code enthält loop() und setup(), damit das mit der Arduino IDE einfach kompiliert werden kann. Den Code würde ich auch in ein Objekt in Methoden packen, dann kann man den später als LIB einfügen. Das macht das dann für zukünftige Projekte einfacher.
MfG
Lesezeichen