Hi, wenn ich mir das AVR-Tutorial so anschaue und auch den Artikel zu Entprellung fällt mir auf, dass dort der logische Pegel "Taster nicht gedrückt" eines Eingangs immer "high" ist. Wenn man den Taster drückt wird dieser Eingang dann auf "low" gezogen. Was ja von der Logik her verdrehte Pegel bedeutet. Taster gedrückt = 0 Taster nicht gedrückt = 1 Warum wird das so gemacht? Stellt sich natürlich direkt die Frage, ob man das auch anders machen kann? Also Taster gedrückt = 1 Taster nicht gedrückt = 0 Wenn ich das richtig sehe, hätte die zweite Methode doch den Vorteil, dass kein Strom fliesen würde, solange kein Taster gedrückt ist. Wie verhält es sich da mit den internen Pull-Up-Widerständen? Die Schaltung würde dann in etwa so aussehen: o +5V | R | _ | | +---o o----o (INPUT des µC) Zum Entprellen würde ich dann dem Taster einen Tiefpass nachschalten. Also in etwa so o +5V | _ | | +---o o--R--+---o (INPUT µC) | = | --- Den internen PULL-UP-Widerstand würde ich abschalten. Liegt damit dann der Input-Pin auf GND (Kondensator mal als leer angenommen)? Entsprechend dem Artikel Entprellung müsste der Tiefpass dann so ausgelegt werden, dass er Frequenzen < 50Hz durchlässt. Gruß Benny
Wenn ich das richtig in Erinnerung habe, liegt es daran, daß eine Spannung unter etwa 1Volt als logische 0 erkannt wird, wenn man von der klassischen TTL Technik ausgeht, fließt da der Emitterstrom des Eingangstransistors aus dem Eingang heraus (-> Ersatzschaltibild einer TTL Eingangsstufe). Dieser ist recht hoch. Daher müßte der Wiederstand, der den Eingang nach Masse zieht, sehr niederohmig sein. So etwas ist immer ungut. Umgekehrt diesen Eingang nach 5V ziehen ist um einiges niederohmiger. Konkrete Werte kann ich dir nicht sagen, müßte man in den Daten eines "Standard-TTL-Gatters" nachsehen. Relevant ist der Strom der bei LOW aus dem Eingang nach Masse fließt und der Strom, der bei einem HIGH ins Gatter rein fließt, dann U=R*I anwenden und rechnen.
Umgekehrt diesen Eingang nach 5V ziehen ist um einiges niederohmiger. muß natürlich richtig Umgekehrt diesen Eingang nach 5V ziehen ist um einiges hochohmiger heißen.
Benjamin K. wrote: > Warum wird das so gemacht? Weil man dann den internen Pull-Up Widerstands des Ports benutzen kann. > Stellt sich natürlich direkt die Frage, ob man das auch anders machen > kann? Also > > Taster gedrückt = 1 > Taster nicht gedrückt = 0 Sicher kann man. > Wenn ich das richtig sehe, hätte die zweite Methode doch den Vorteil, > dass kein Strom fliesen würde, solange kein Taster gedrückt ist. Wie > verhält es sich da mit den internen Pull-Up-Widerständen? Dann brauchst du einen externen Pull-Down Widerstand, der dir den Pin bei nicht gedrücktem Taster definiert auf Low zieht. > Die Schaltung würde dann in etwa so aussehen: > > o +5V > | > R > | _ > | | > +---o o----o (INPUT des µC) > Nö. Sieh dir den Eingang an. Wenn der Taster nicht gedrückt ist, auf welchem Pegel liegt er? Da er weder mit + noch mit GND verbunden ist, hängt er in der Luft, hat also keinen definierten Pegel Egal wie du es drehst oder wendest. Damit der Pin nicht in der Luft hängt, brauchst du immer einen PullUp oder PullDown, der einen definierten Pegel am Pin herstellt, wenn der Taster nicht geschlossen ist. Da du den aber sowieso brauchst, ist es einfacher den internen her zu nehmen und damit die Logik umzudrehen. Das ist ja auch kein Problem, denn programmtechnisch ist es ein Klacks das wieder umzudrehen. Negativlogik hat auch noch andere Vorteile. Gehn wir mal von Tastern weg und sagen wir da kommt eine Leitung aus der Ferne. Wenn Ruhepegel gleich 0 ist, kannst du über den Zustand der Leitung wenig sagen. Wenn die Leitung über einen langen Zeitraum 0 ist, dann kannst du nicht unterscheiden ob der Sender einfach nur nichts sendet oder ob die Leitung unterbrochen ist. Ist der Ruhepegel aber 1 und sind Signale auf der Leitung kurze 0 Signale, dann bedeutet ein langer 0-Pegel, dass irgendwas nicht stimmt. Entweder ist der Sender ausgefallen oder das Kabel ist gerissen oder .... (Wenn man da drauf wert legt, muss der Pullup natürlich beim Sender sein. Der interne bringt dann nichts)
Invertiert denken zu koennen ist als Minimalanforderung zu betrachten...
Die Logikpegel der TTL betragen 0-0,8 V für low und 2,4-5 V für high. Leger gesagt ist es schwieriger den Pegel unterhalb der 0,8 V zu halten als irgendwo zwischen 2,4 und 5 Volt. Zum Anderen sind unbeschaltete TTL-Gatter hi. Das kann jeder mit einem 7400 ausprobieren. Die schaltung aus http://de.wikipedia.org/wiki/Diode-Transistor-Logik zeigt sinngemäß, das durch die Eingangsdioden nur etwas aus der Schaltung "heraus" fließen kann. TTL Ausgänge leisten mehr mit aktiv low, wie man ebenfalls an dieser Schaltung erkennt.
Du kannst ja in deine Schaltung "Öffner" einbauen. Da würde dann im nicht gedrückten Zustand eine 0 am Eingang liegen, und sobald man die Taste betätigt hat man die 1 am Eingang. Es fließt halt die ganze Zeit ein bischen Strom...
> Wenn ich das richtig sehe, hätte die zweite Methode doch den Vorteil, > dass kein Strom fliesen würde, solange kein Taster gedrückt ist. Wie > verhält es sich da mit den internen Pull-Up-Widerständen? Nein, auch bei invertierender Logik fliesst kein Strom, wenn der Taster nicht gedrückt ist. Gruß, Stefan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.