Forum: Mikrocontroller und Digitale Elektronik Eingang digitalWrite wird beim ARDUINO UNO verzögert


von Wilfried F. (wilfriedwst)


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!

von Mario M. (Gast)


Lesenswert?

Am Eingang fehlt der Pullup-Widerstand. Dadurch hält der Eingang seinen 
Pegel noch eine Weile. Mit pinMode(buttonPin, INPUT_PULLUP); schaltet 
man den Pullup ein.

von A.Dent (Gast)


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

von Mario M. (Gast)


Lesenswert?

A.Dent hat natürlich Recht.

von Wilfried F. (wilfriedwst)


Lesenswert?

Hallo A.Dent und Mario M.!  Super, hätte ich auch selber merken können.
Vielen Dank für die Hilfe und freundliche Grüße. Wilfried

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.