Guten Abend,
Ich habe eben meinen Aduino bekommen und jetzt mal ein Programm geschrieben, mit dem man durch Drücken eines Schalters den Zustand einer Led( ein oder aus) ändern kann.
Zum entprellen habe ich eine Zeit von 300 ms eingestellt.
Der Code sieht folgendermaßen aus:
int led = 12;
int schalter = 10;
int pause = 200;
int zeitschalter = millis();
int ledstatus = HIGH;
void setup() {
pinMode(led, OUTPUT);
pinMode(schalter, INPUT);
}
void loop() {
if (digitalRead(schalter) == HIGH){
if((millis()-zeitschalter) > pause){
zeitschalter = millis();
if(ledstatus == HIGH){ledstatus = LOW;}else{ledstatus = HIGH;}}
}
digitalWrite(led , ledstatus);
}
Dies funktioniert auch soweit ganz gut. Zum Beispiel, wenn ich den Schalter einfach gedrückt halte ändert sich alle 300 ms der Zustand.
Allerdings funktioniert das nur bis ca. 30 Sekunden.
Nach dieser Zeit leuchtet die Led nur bei gedrücktem Schalter, oder das an/ ausschalten geschieht mehr oder weniger zufällig, oder die Led wird nur etwas dunkler, wenn ich den Schalter drücke.
Weiß jemand, woher das kommen kann ?