Forum: Mikrocontroller und Digitale Elektronik inputs am avr funktionieren nicht richtig!


von anfänger (Gast)


Lesenswert?

achtung!!! anfängerfragen!!!

ich habe seit kurzem mit mikrokontrollern angefangen. und habe nun seit
ein paar tagen das stk500. hab natürlich direkt mit rumprobiert. und
jetzt tun sich mir ein paar fragen auf. als erstes hab ich einfach mal
ein kleines prog geschrieben, das bei gedrücktem schalter eine led
aufleuchten lassen soll. der schalter ist an port a0 (at90s8515) und
mit internem pull-up. und wenn ich den schalter auf ground lege
leuchtet die led. hat also funktioniert. und jetzt wollte ich es auch
mal andersrum ausprobieren. hab also den internen pull-up weggelassen
und den schalter auf +5v gelegt. dabei tut sich aber nix. die led
leuchtet nicht. wenn ich aber den portpin nur mit dem finger berühre
geht die led sofort an (und bleibt danach auch manchmal noch kurz an).
wieso ist das so? und warum geht die led nicht an, wenn ich pina0 auf
+5v lege?

von thkais (Gast)


Lesenswert?

Du hast keinen definierten Pegel am Eingang. Wenn Du den Schalter gegen
+5V hast, mußt Du den Portpin mit einem Pull-down Widerstand (1..10kOhm
gegen Masse) beschalten.
Eingänge sind sehr hochohmig, d.h. sie brauchen nur sehr geringe
Stromstärken, um zu reagieren. Deshalb leuchtet die LED bei Berührung
mit dem Finger. Ich würde sogar wetten, daß sie mit 50Hz flackert
(sieht man nur mit einem Oszi), weil der menschl. Körper die 50Hz der
Netzspannung irgendwo auffängt.

von anfänger (Gast)


Angehängte Dateien:

Lesenswert?

ah. du hast recht. so funktionierts. im anhang hab ich das mal
aufgemalt. du hast das doch so gemeint, oder? auf jeden fall klappt es
so. vielen dank für deine hilfe!

kennst du ein gutes programm zum schaltplan zeichnen? mit paint ist das
ein wenig umständlich :-)

von Alex (Gast)


Lesenswert?

Eagle in der Light Version --> ist auch gratis
SPLAN 5.0

Oder schau doch einfach mal im Conrad-Katalog, dort sind auch noch
mehrere Programme mit diversen Fähigkeiten aufgelistet.

Alex

von anfänger (Gast)


Lesenswert?

danke! eagle ist wirklich nicht schlecht.

p.s.: hat das auf meiner zeichnung jetzt so gestimmt?

von thkais (Gast)


Lesenswert?

jep. Der Vollständigkeit halber könntest Du den Taster noch entprellen,
indem Du einen 100nF Kondensator zwischen avr-pin und masse anschließt.
Oder das entprellen in der Software erledigen.

von anfänger (Gast)


Angehängte Dateien:

Lesenswert?

ok, dann hab ich noch ne frage. und zwar wie man den eingang mit nem
transistor schaltet. ich hab nochmal aufgemalt, wie ich mir das
vorgestellt habe. is wahrscheinlich falsch. vielleicht kann mich da mal
jemand korrigieren. die obere zeichnung (interner pullup aktiviert) hab
ich schonmal ausprobiert und hat auch funktioniert. zu der unteren
(kein interner pullup) wollt ich erstmal eure meinung hören. is da denn
auch der pulldownwiderstand (wie beim schalter) notwendig. und wie
sieht es mit der notwendigkeit von R1 aus (für beide schaltungen)? ist
der wirklich nötig oder kann ich den getrost weglassen?

sorry für diese blöden fragen, aber ich fange grade erst mit dem thema
an :)

achja: was genau bedeutet entprellen?

von anfänger (Gast)


Lesenswert?

hallo?

von crazy horse (Gast)


Lesenswert?

das einfachste ist, mit dem internen pullup zu arbeiten. Dann brauchst
du nur noch extern einen npn-Transistor, Kollektor auf den Eingangspin,
Emitter an Masse, an die Basis kommt das Signal. Basiswiderstand nicht
vergessen. Und beachten: diese Anordnung invertiert das Signal, also
H-Pegel an der Basis -> L-Pegel am Portpin. Weitere Widerstände sind
nicht nötig. Sperrt der Transistor, erzeugt der pullup den H-Pegel.

von thkais (Gast)


Lesenswert?

Ein mechanischer Schaltkontakt prellt beim Einschalten, man kann sich
das wie ein federn vorstellen. Dadurch entsteht nicht nur ein, sondern
mehrere Schaltimpulse irgendwo im msec - Bereich. Der Controller ist
schnell genug, die zu zählen, das kann manchmal zu ungewollten Effekten
führen. Deswegen: Entprellen. Suche mal hier im Forum, da gibts
sicherlich noch einige Beiträge dazu, evtl. auch mal in der
Codesammlung reinschauen.

von anfänger (Gast)


Angehängte Dateien:

Lesenswert?

ok. ich habs nochmal aufgemalt. aber wie muss es denn sein, wenn ich den
internen pullup nicht aktiviert habe? gibts bestimmt situationen wo das
nicht geht, oder (interrupt, uart...)? wie muss ich den input dann
beschalten? meine zeichnung ist da sicherlich nicht ganz richtig, oder?

von anfänger (Gast)


Lesenswert?

sorry das ich euch hier so mit meinen blöden fragen nerve, aber wer
trotzdem nett, wenn mir das jetzt mal jemand erklären könnte :-)

jeder hat ja mal klein angefangen.

von anfänger (Gast)


Lesenswert?

och männo!

von Peter (Gast)


Lesenswert?

Dasselbe wie "ohne interne pullup" aber dazu ein 4K7 von Kollektor
nach +5V.

Gr.

von anfänger (Gast)


Lesenswert?

ich wollte aber wissen, wie es "ohne internen pullup" geht :)

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.