Forum: Mikrocontroller und Digitale Elektronik "Seltsames" Problem mit Eingang


von Gross M. (grossmeisterb)


Lesenswert?

Hallo zusammen!

Versuche immer noch, auf meinem myAVR-Board eine Funktion auf
Tastendruck auszuführen.
Habe dazu mal ein einfaches Programm geschrieben in Bascom:

Config Portd.5 = Input
Do
If Pind.5 = 1 Then
Cls
Lcd "Eins"
Wait 1

Else

Cls
Lcd "Null"
Wait 1

Endif

Loop

End



So, habe jetzt mal mit einem Stück Draht den Pin D.5 an einen der
Taster gelegt, und erhalte folgende "Reaktion":
Nur der Draht im Pin, "in der Luft": Display wechselt zwischen
"Null" und "Eins"
Dann Draht in den Anschluss des Tasters: Display wechselt zwischen
"Null" und "Eins"

Betätigung des Tasters: Anzeige "Null"

Woran liegt das "toggeln" bei unbetätigtem Taster, bzw. auch wenn der
Anschluss "in der Luft" hängt?!?!?!

von Gross M. (grossmeisterb)


Lesenswert?

Habe mal folgendes probiert: Pin an den Ausgang (Mittelabgriff) eines
der Potis gehängt: Poti mit Anschlag an GND: Anzeige: "Null", Poti
mit Anschlag an +5V: Anzeige "Eins" => Funktioniert also...aber warum
mit dem Taster nicht? Muss da ein Vorwiderstand dran? War aber so auch
nicht beschrieben irgendwo...

von Läubi (Gast)


Lesenswert?

Du mußt einen Pulldownwiderstand einfügen, also

PORT-------[10k]-----VCC

Den Taster dann vor dem 10k Widerstand gegen GND schalten lassen!

von Gross M. (grossmeisterb)


Lesenswert?

OK, alles klar! Werde ich direkt mal ausprobieren...

von Gross M. (grossmeisterb)


Lesenswert?

Also, mit nem 8k2 (hatte nix anderes) scheint es zu funktionieren!

Danke für den "Tip"!!

von Gross M. (grossmeisterb)


Lesenswert?

Also, er macht es jetzt, das er umspringt,aber wenn ich den Schalter
betätige, dann zeigt das Display direkt "Null", wenn ich loslasse
dauert es aber etwas lange, bis das Display wieder "Eins"
anzeigt...habe mal von "Wait 1" auf "Waitms 100" das Programm
geändert...

von Hannes L. (hannes)


Lesenswert?

> Du mußt einen Pulldownwiderstand einfügen, also

> PORT-------[10k]-----VCC


Pulldown geht nach unten, also nach GND...

Was nach oben (+Vcc) geht, heißt Pullup

Man kann aber auch die internen Pullups aktivieren und die Taster gegen
GND schalten. Näher Informationen über den Aufbau der Ports und deren
Register gibt es im Datenblatt des AVRs.

...

von Jahn (Gast)


Lesenswert?

he ich denke mal der AVR hat einen internen PullUp... wie wäre es den zu
aktivieren (wie oben erwähnt)

also einfach nach config PortD.5=Input

noch ein:

PortD.5=1

und das wars SCHMUNZEL

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.