Eingang digitalWrite wird beim ARDUINO UNO verzögert

OP #4570890
Lesenswert?

Freundliches Hallo in die Runde, ich bin neu hier und hoffe auf Hilfe.
Mit diesem Programm aus den ARDUNIO Beispielen bin ich angefangen:

const int buttonPin = 2;
const int ledPin = 12;
int buttonState = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}

Merkwürdigerweise geht die LED an Pin 12 nur mit einer Verzögerung von
ca. 2..3 Sekunden aus, wenn ich die 5V am Eingang Pin 2 wegnehme.  Ich 
habe
auch schon andere Varianten zur Programmierung mit digitalWrite 
versucht, immer tritt diese Verzögerung auf.  Hat jemand eine Idee warum 
das so ist?
Vielen Dank für die Unterstützung vorab!
Gast #4570913
Lesenswert?

Legst du einfach +5V an Pin 2 an und ziehst das Kabel wieder ab? In dem 
Fall hättest du einen offenen CMOS-Eingang, der ladungen noch einige 
Zeit speichern kann, und so etwas länger noch ein "HIGH" liest.
2 einfache Vorschläge:
1.: Du beschaltest den Pin mit einem Pull-Down-Widerstand (z.B. 10 kOhm) 
zusätzlich zum Schalter.
2.: Du schreibt pinMode(buttonPin, INPUT_PULLUP) statt 
pinMode(buttonPin, INPUT) und ziehst den Pin gegen GND. Dann ist ein 
interner Pullup aktiviert, der den Eingang auf VCC läd, sobald ihn das 
Kabel nicht mehr gegen GND zieht.

A.Dent

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren