Moin, mal ne Frage an euch, hoffe zwar, dass ich da keinen Denkfehler drin hab, aber zu Sicherheit... ;) Will einen AVR-Port zu Testzwecken so beschalten, dass ich ihn sowohl als Ausgang als auch als Eingang nutzen kann ohne ihn kaputt machen zu können. Genauer gesagt, ich will ihn schalten können, aber ebenso auch die Möglichkeit haben eine LED daran anzusteuern. Ist folgende Konstruktion möglich?: / \ + 5V | | | R=4K7 | | | P >--+ _|_ \ / LED (2V, 20mA) | | | | | R=180 | | o \ \-| Schalter o o _|_ GND Meiner Berechnung zufolge sollte es klappen, aber die große Frag: Habe ich auch recht? ;) Danke schonmal Grüße EJoerns
Wenn du die LED gegen Vcc (5V) (die LED "rutscht hoch") schaltest, kannst du dir den Widerstand sparen. Du musst die Ausgangsfunktion des Ports dann mit dem DD-Register steuern und das Port-Register =0 setzen. Die LED leuchtet dann, wenn der Port als Ausgang geschaltet ist, und den Taster kannst du abfragen, wenn der Port als Eingang geschaltet ist. DAnn leuchtet die LED auch nicht...
Wieso kann ich mir da nen Widerstand sparen, und welchen? Über die sonstige Ansteuerung eines AVR-Ports bin ich im Bilde ;)
Dann muss ich aber aufpassen, dass ich den Schalter nicht ausversehen schließe.. ;)
Wieso? Der ist doch parallel zum AVR-Pin geschaltet. Wenn man den Schalter schliesst leuchtet die LED auf jeden Fall.
Und wenn ich den Port als Ausgang setze und high schalte...?
>Und wenn ich den Port als Ausgang setze und high schalte...?
Peng! Port futsch.
Kannst du. Wenn du dann aber den Schalter schliesst, qualmt's... Sollte man im Programm aber vermeiden können.
Wie soll ich nen Kurzchluss in der Software vermeiden??? Wie schon gesagt soll das Teil ja als Ausgang und Eingang genutzt werden können. Für ein Testboard halt...
Hallo Enrico, wenn Du schon eine LED an einen Port anschließt, solltest Du sie vielleicht so verdrahten, dass sie bei geeigneter Ansteuerung des Pins leuchtet. Das tut sie bei der oben gezeigten Schaltung nicht. Sie leuchtet, nur, wenn Du den Taster drückst. Dies ist eigentlich unnötig, denn Du weißt ja, ob Du gedrückt hast. Gruß bix
Wenn er gedrückt (bzw. im Realfall wohl er gejumpert) ist, hängt es doch noch davon ab wie ich die LED über den Port ansteuere!? Weil bei 4k7 Vorwiderstand dürfte die LED (nicht low-current) nicht allzu viel sagen.
Ah, ja. Da ob von Testzwecken die Rede war, hatte ich angenommen, der Schalter sollte zu Eingabe genutzt werden können. Das ist wohl nicht geplant - mein Irrtum. >als Eingang nutzen kann ohne ihn kaputt machen zu können. kaputt machen geht immer ;-) Du könntest den unnötigen Pullup (der AVR hat interne Pullups) gegen eine Diode ersetzen, die mit Kathode gegen Vcc geschaltet ist. Diese kann dann Induktionsspannungen ableiten, falls Du mal ein Relais an den Ausgang schaltest. Gruß bix
Doch, der Schalter soll zur Eingabe genutzt werden, aber halt nur wenn auf dem Controller gerade ne software ist wo dies von Nöten ist, ansonsten soll das ganze als Ausgang fungieren. Halt, dass ich verschiedene Sachen testen kann ohne ne feste Belegung der IOs zu haben.
>Doch, der Schalter soll zur Eingabe genutzt werden Dann könnte die Serienschaltung mit LED und Vorwiderstand problematisch sein, da beim Schließen des Schalters die 2V der LED und die Abfallspannung des Vorwiderstands am Pin anliegen. Die Eingangsspannung des Pins wird also möglicherweise nicht weit genug gegen Ground heruntergezogen, um eine einwandfreie Erkennung zu gewährleisten. Gruß bix
Ich würde es einfach über einen Jumper lösen, über den man entweder die Taste oder die LED an den Pin legt. Dazu genügt ein Drei-Pin-Jumper und das ist auch bequem zu handhaben. LED und Taste permanent gleichzeitig - nein danke. Ich glaube, irgendwie wird da immer nur was Halbherziges bei rauskommen.
@bix: mh.. die 2V Abfall sind natürlich schon iwie müll^^ damit sollten die 0,7V (!?) für low minimal überschritten sein^^ mh.. vllt. nochmal überlegen @Gast: jumper wollt ich vermeiden aus 2 gründen: 1. ich will den ganzen Port so bauen und Lochraster verwenden -> 3-Pin-Jumper = doof 2. damit kann ich mich immernoch verjumpern und dem AVR warme gefühle bescheren.. ;) @Peter: Du nutzt dann interne Pull-Up? Mh.. löst natürlich das 2V-Abfall-Problem :D Das funktioniert bei dir so wie in der schaltskizze?
Neuer Vorschlag: / \ + 5V | | | | R=4K7 |_| | P >--+----------. _|_ | \ / 2V | | R=270 | |_| | | | |_| R=180 o | \ | \-| | o o | | _|_ _|_ GND ? ;)
Wie wärs mit 3-Pin-Jumper und in den Tasterzweig nen R seriell zum Taster? Dann kann nichts passieren, auch wenn du dich verjumpert hast. Sebastian
Joa, wär evlt. nen kompromiss, aber dann müsste ich, trotz dass sie mir wie gesagt widerstreben, die 3-pin dinger nehmen.. ;) Und schalten müsst ich das ja praktisch fast wie in der letzten skizze, wenn ich will, dass die LED den Portzustand nicht invertiert!?
Muss euch nochmal mit einem meiner kognitiven Ergüsse belästigen ;) What about this one? / \ | | | | | 270 | o \ \--| o o | <>-----| | | | | | 1K | _|_ \_/ low current | _|_ Danke schonmal für die Bisherigen Ratschläge :)
Enrico J. schrieb: > What about this one? Was gefällt Dir denn an diesem Schaltplan nicht? Beitrag "Re: Taster + LED am selben Draht (4*)" Peter
Mir ist nicht ganz klar wie du das Teil gegen Masse kriegst mit nem 3,9k..?
Enrico J. schrieb: > Mir ist nicht ganz klar wie du das Teil gegen Masse kriegst mit nem > 3,9k..? Der 3,9k ist wichtig, damit die LED nicht ausgeht beim Drücken. Er muß nur den internen Pullup (~50k) runterziehen. Taste und LED sind völlig unabhängig. Du kannst also auch programmieren, daß S1 LED2 schaltet und S2 dann LED1. Peter
Mh.. war davon ausgegangen das der Pull-Up kleiner ist ;) Und jetzt noch mein E-Technik-Defizit: Welche Spannung liegt am Port, wenn ich den Schalter offen habe und den AVR als Eingang? Und was genau passiert, wenn ich nen Widerstand in Serie zu ner Diode schalte? Der 2V-Abfall müsste dann ja nicht mehr stimmen, richtig? Danke
---------------o----- | _|_ \ / ¯|¯ | [ ] 1k | | ---+ Jumper | | | 330 | +----[ ]----o | | | | ---+ | Taste | | | ---------------o----- Wie wärs damit? Vorteile: 1. Der Portpin ist durch den 330-Ohm-Widerstand auf jeden Fall geschützt. 2. Wenn der Pin als Input konfiguriert ist, wird er beim Druck auf die Taste sicher auf L gezogen, auch bei aktiviertem internen Pullup. 3. LED-Zweig kann durch Öffnen des Jumpers stillgelegt werden. 4. Nur Zwei-Pin-Jumper nötig. Nachteil: Bei gesetztem Jumper leuchtet die LED stets bei niedergedrückter Taste ("überstimmt" Portpegel).
@ Gast (Gast) >4. Nur Zwei-Pin-Jumper nötig. Unnötig. >Nachteil: Bei gesetztem Jumper leuchtet die LED stets bei >niedergedrückter Taste ("überstimmt" Portpegel). Den Nachteil hat die Lösung von Peter nicht. Ergo. Vergiss diesen Ansatz. MFG Falk
Enrico J. schrieb: > Welche Spannung liegt am Port, wenn ich den Schalter offen habe und den > AVR als Eingang? Die LED-Schwellspannung, also bei einer roten LED etwa 1,5V. Das sind 0,4V Störabstand bis zur 1,1V Triggerschwelle des Komparators. Peter
@Falk: Ich kenne Peters Lösung. Sie ist clever, funktioniert zweifellos bestens und hat allen Respekt verdient. Andererseits würde ich jedoch bei einem Experimentierboard nicht gezwungen sein wollen, für die Abfrage der Pinzustände den Komparator verwenden zu müssen. Da fände ich es eher sinnvoll, so nahe wie möglich an der "Standardschaltungsvariante" (heißt: Taster gegen GND; LED über R an VCC) zu bleiben, und dadurch die Pins auch über das PIN-Register einlesen zu können.
Gast schrieb: > Andererseits würde ich jedoch bei einem > Experimentierboard nicht gezwungen sein wollen, für die Abfrage der > Pinzustände den Komparator verwenden zu müssen. Warum nicht? Du kriegst von Atmel kein Geld zurück, wenn Du den Komparator nicht benutzt. > Da fände ich es eher > sinnvoll, so nahe wie möglich an der "Standardschaltungsvariante" > (heißt: Taster gegen GND; LED über R an VCC) zu bleiben, und dadurch die > Pins auch über das PIN-Register einlesen zu können. Standard erfüllt, aber Ziel nicht erfüllt, ist doch nicht sinnvoll. Der Sinn des ganzen soll ja sein, daß Taster und LED unabhängig sind, d.h. die LED-Helligkeit nicht durch die gedrückte Taste merkbar beeinflußt wird. Das wirst Du mit Deiner "Standardschaltung" nicht wuppen können. Peter
@Peter: Der OP schrieb... >"...soll das Teil ja als Ausgang und Eingang genutzt werden können. >Für ein Testboard halt...". ...und ich kann daraus nicht herauslesen, ob er einen Pin in einem Projekt (quasi-)gleichzeitig als A und E nutzen will, oder ob er wünscht, einen Pin in einem Projekt als A und in einem anderen Projekt als E konfigurieren zu können. Im ersten Fall wäre Deine Lösung die Methode der Wahl, im zweiten meine zumindest eine Alternative. >Der Sinn des ganzen soll ja sein, daß Taster und LED unabhängig sind, >d.h. die LED-Helligkeit nicht durch die gedrückte Taste merkbar >beeinflußt wird. Das ist mir schon klar. Nein, mit diesem Feature kann meine Variante nicht glänzen, aber im "zweiten Fall" (s. o.) wäre das irrelevant. Bei einem allgemeinen Experimentierboard würde ich Wert darauf legen, möglichst wenig eingeschränkt zu sein, und es würde mir sicher missfallen, meine Software auf die Hardware anpassen zu müssen. Es wäre z. B. der Fall denkbar, wo ich den Komparator in einem Projekt für etwas anderes benutzen möchte, ihn dann aber von der Portabfrage in Anspruch genommen fände --> wenig erfreulich. >Du kriegst von Atmel kein Geld zurück, wenn Du den Komparator nicht >benutzt. :-)
@ Gast (Gast) >Experimentierboard nicht gezwungen sein wollen, für die Abfrage der >Pinzustände den Komparator verwenden zu müssen. Musst du doch gar nicht! Das ist nur mal wieder einer von Peters Macharten. Den Pin kann man direkt aus dem PINx Register lesen. Der Trick besteht schlicht darin, eine LED zu nutzen, der Flußspannung über der AVR-Schaltschwelle von Vcc/2 liegt. Wenn das von vorn herein nciht gegeben ist, z.B. rote LEDs mit 1,8V bei 5V VCC nimmt man ein oder zwei 1N4148 dazu in Reihe, und schon ist das Problem gelöst. Ist doch ganz einfach. In einem Timer periodisch den Pin als Eingang mit Pull-Up aktivieren. Der Taster kann ausgelesen werden, man muss nur ein paar Dutzend us warten, um ggf. grössere Kabelkapazitäten umzuladen. Taster nicht gedrückt, Pull-Up zieht auf HIGH. Taster gedrück, wesentlich niderohmiger 3K9 zieht über Taster auf LOW. Danach den Pin wieder auf Ausgang schalten. Diese kurze Ausschalten der LED sieht keiner und macht sie nahezu unmessbar geringfügig dunkler. MFG Falk
Sodele, nu bin ich auch mal wieder hier ;) Also erstmal danke für die rege Diskussion die noch aufgekommen ist :). Um alle Klarheiten zu beseitigen möchte ich noch ein paar Details zu meinen Ansprüchen an die Schaltung hinterher schicken. 1. Möglichst wenig verbaute Komponenten 2. Pin soll in jedem zu testenden Projekt entweder NUR als Ausgang oder NUR als Eingang konfiguriert sein. Keine gleichzeitige Doppelverwendung! 2. Möglichst totale Unabhängigkeit von der Test-Software auf dem µC. -> eig. auch Pull-Up nicht voraussetzbar 3. LED soll Pegel anzeigen (HIGH=Licht) -> Schaltung von VCC gegen Pin suboptimal 4. Zustand der LED bei Input-Nutzung nicht soo wichtig ;) Daher ist das mit der Schaltung von Peter noch ein gaanz bisschen an meinen Träumen vorbei ;) Laut Spec. ist die normale V_IH auch leider erst ab 3.5V garantiert... Und weil es so schön ist hab ich auch noch einen weiteren Kandidaten (Anhang), allerdings auch mit dem Spannungsproblem... zur Not wohl doch Jumper.. :( ^^ @Note: RP, evlt. 330Ohm, RPA10 evlt. 47k. Im Zeifelsfall RP auch für Low-Current-LED, damit Port-Max-Strom bei 8-facher Fehlschaltung nicht überstrapaziert wird :D
holger schrieb: >>Und wenn ich den Port als Ausgang setze und high schalte...? > > Peng! Port futsch. Bin noch relativ neu in der Elektronik. Kann mir jemand erklären, warum?
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.