Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
habe es mal schnell auf einen nackten nano geflasht und seit 30 minuten (nichts an Pin2 angeschlossen) keinen "Fehler". Könnte vielleicht an dem liegen, was bei Dir dort angeschlossen ist,.. oder der verwendete Microcontroller hat den Schaden und der interne Pullup funktioniert nicht (k.a., ob sowas möglich ist)
Nur zum Spaß: flash doch mal diesen Sketch. Der zählt alle Flankenwechsel die bei einer Tasterbetätigung (high zu low beim Drücken, low zu high beim Loslassen) auftreten und gibt sie im 2-Sekunden-Takt auf dem Seriellen Monitor aus. Idealerweise sollte er pro Drücken und Loslassen +2 registrieren. Bei einem quick-and-dirty-test bei mir kann das aber auch mal schnell 4, 6, 8 oder noch mehr Sprünge machen... Ergo: Taster prellt.
int but = 2;
bool btnstate, btnlaststate;
unsigned long counter = 0;
unsigned long serialtimer;
void setup() {
Serial.begin(9600);
pinMode(but, INPUT_PULLUP);
Serial.println("setup");
btnlaststate = HIGH;
}
void loop() {
btnstate = digitalRead(but);
if (btnstate != btnlaststate) { // Flankenerkennung High <-> Low
counter++;
}
btnlaststate = btnstate;
if ((millis() - serialtimer) > 2000) { // alle 2 Sekunden eine Ausgabe auf dem Serial Monitor
Serial.print ("Flankenerkennungen: ");
Serial.println(counter);
serialtimer = millis();
}
}
Abhilfe schafft da eine geeignete Bibliothek (z.B. Bounce2), die das Entprellen für Dich übernimmt.
Danke für die info. Ich komme einfach eher aus der well von Sps (z.B Siemens sps) und von da kenn ich es garnicht das Schaltern "Prellen" können. Danke für die info ich werde mich mit dem Thema meher auseinandersetzen und dann schauen wie ich es lösen will