Hallo littlekenny,
Ich beziehe mich mal auf "meinen" Code: und gehe davon aus, dass dein Integer bei der CPU 16 Bit ist,
dann passt da maximal der Wert 65535 in dei Zählvariable rein.
Wenn der Zähler tatsächlich überlaufen sollte, bei einem Schleifendurchlauf von 1 Millisekunde
dann wären das 65535 / 1000 = 65,535 Sekunden.
Du müstest also die Taste eine Minute lang drücken bis der Zähler überlaufen würde und dann würde tatsächlich
auch eine neue Message gesendet werden.
Die Wahrscheinlichkeit ist eher gering.
Was ich mir aber vorstellen kann und auch schon erlebt habe ist:
das dass delay(1) nicht funktioniert und nur ein paar Mikrosekunden gewartet wird.
Daher wäre mein erste Gedanke, mach mal aus delay(1) ein delay(2) oder delay(5) und probiere meinen Code nochmal aus.
Alles andere kannst Du ruhig so lassen, das tut keinem weh.
Zudem kann er NIEMALS einen Tastecode senden, wenn diese nicht gedrückt ist.
Demnach wäre hier die Ursache zu suchen, warum er da überhaupt rein kommt.
Das würde nämlich bedeuten, dass deine Abfrage
status = digitalRead(button_2);
nicht richtig funktioniert und oder der Pin irgendwie Störungen drauf hat.
Evenetuell wird hier auch noch ein sogenannter Pullup an dem Pin benötigt. (Widerstand nach Plus)
Probier mal bitte nochmal den ersten Code lediglich mit der veränderten Delayzeit von 2 oder 5
Wenn er tatsächlich einen ButtonCode sendet obwohl die entsprechende Taste nicht gedückt ist,
dann muss geklärt werden woher das kommt.
Deine neueren Codes weiter unten leuchten mir nicht ein,
da Du sendest wenn die Taste nicht gedrückt ist. (button released) ????
Zudem sind da andere ungereimtheiten, die ich jetzt nicht weiter erläutern will.
Siro
ich habe grad noch etwas gefunden wegen dem Widerstand nach Plus (Pullup):
mach mal aus deinem
pinMode(inPin1, INPUT);
pinMode(inPin2, INPUT);
pinMode(inPin1, INPUT_PULLUP);
pinMode(inPin2, INPUT_PULLUP);
Lesezeichen