mikrocontroller.net

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


Autor: Gross Meisterb (grossmeisterb)
Datum:

Bewertung
0 lesenswert
nicht 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?!?!?!

Autor: Gross Meisterb (grossmeisterb)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt einen Pulldownwiderstand einfügen, also

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

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

Autor: Gross Meisterb (grossmeisterb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, alles klar! Werde ich direkt mal ausprobieren...

Autor: Gross Meisterb (grossmeisterb)
Datum:

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

Danke für den "Tip"!!

Autor: Gross Meisterb (grossmeisterb)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Jahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.