Hallo, ich möchte mit einem möglichst günstigen Microchip Controller eine Spannung messen und davon abhängig 3 LEDs ansteuern. Mehr Funktionen brauche ich nicht. Zuerst habe ich mir hierfür den PIC10F220 angesehen. Wenn ich es richtig sehe, wird dieser aber nicht passen. Der hat 6 Pins, wovon 2 natürlich für die Versorgung wegfallen. Bleiben 4 Pins - genau so viele brauch ich ja. Jedoch ist der MCLR-Pin nur als digitaler Eingang nutzbar und nicht als Ausgang oder analoger Eingang. Meine Frage ist jetzt nur, ob ich das Richtig sehe, oder es vielleicht irgendeinen Trick gibt, mit dem ich den Controller doch benutzen kann? Ansonsten würde ich wahrscheinlich auf einen PIC12F1571 gehen.
Wahrscheinlich soll ja immer nur eine LED leuchten. Spannung zu hoch, OK , Spannung zu klein. Da könnte man ja mit einer externen 2 zu 4 Dekodierschalung mit zwei Pins die 3 LEDs ansteuern. Einfacher wird aber wohl doch ein PIC mit ein paar Pins mehr sein
Mit 3 I/O Pins kannst du 6 Led's betreiben. http://ww1.microchip.com/downloads/en/appnotes/00234a.pdf Seite 2-3
Bernd schrieb: > Ansonsten würde ich wahrscheinlich auf einen PIC12F1571 gehen. Nimm einfach einen eine Numme grösser, oder wälze dich noch weiter zwei Wochen schlaflos nachts im Bett herum. Damit du 20 Cent gespart hast.
Peter Dannegger schrieb: > Der ATtiny10 im SOT-23 hat 4 IO-Pins. Microchip ist leider gesetzt... Teflonfräser schrieb: > oder wälze dich noch > weiter zwei Wochen schlaflos nachts im Bett herum. Damit > du 20 Cent gespart hast. Für 20 Cent würde ich mich sogar einen ganzen Monat herumwälzen. ;p Hier geht es zum Glück nur um 5 Cent. X4U schrieb: > Mit 3 I/O Pins kannst du 6 Led's betreiben. > > http://ww1.microchip.com/downloads/en/appnotes/00234a.pdf > > Seite 2-3 Danke! Die Lösung ist so einfach! :) Ein Pin ist ADC, ein Pin bekommt ganz herkömmlich eine LED und der dritte Pin bekommt 2 LEDs, wie auf Seite 2 abgebildet. Es müssen zwar auch mal alle LEDs leuchten, aber das lässt sich dann ja über Multiplexen leicht lösen.
Bernd schrieb: > aber das lässt sich dann ja über Multiplexen leicht lösen. Oder mittels PWM was den uC entlastet (hilfsweise ein Uart Ausgang und Dauersendung von Hex 55.)
Könnte man die LEDs nicht im MC auf Masse schalten(Low-active), dann könntest du den MCLR auch als Steuerungspin für eine LED benützen.
TM FW schrieb: > Könnte man die LEDs nicht im MC auf Masse schalten(Low-active), dann > könntest du den MCLR auch als Steuerungspin für eine LED benützen. Der MCLR hat keinen open drain Ausgang beim 10F220 Das einzige was am MCLR als Ausgang benutzbar ist ist der programmierbare Pull-up Widerstand. 50-400uA also ca 100K-12K. Das reicht ggf. um einen NPN (Darlington) Transistor durchzuschalten. Gruß Anja
Bernd schrieb: > Der hat 6 Pins, > wovon 2 natürlich für die Versorgung wegfallen. Man sollte da nicht so knapp ran gehen. Ein bisschen sollte man auch das Programmieren bzw Debuggen berücksichtigen. Wenn man in die Stückzahlen geht, kann man sie fertig programmiert kaufen, sonst sollte man einen Plan dafür haben. Und da sind 6 Pins ziemlich knapp. Der kleinste, den ich verwende, ist der 12F1840 (ich spare nicht am Speicher). Da bleiben 3 Pins zusätzlich zum ICD. Bernd schrieb: > eine > Spannung messen und davon abhängig 3 LEDs ansteuern. Mehr Funktionen > brauche ich nicht. Mein Plan wäre: an den drei freien Pins den analog-in und zwei LEDs realisieren, Code entwickeln und debuggen. Die dritte LED an einen der ICD-Pins (nicht MCLR#). Das wird man dann auch ohne Debugger hin kriegen. Bei der CPU ist man dann mit einem $ bzw € dabei (mit weniger Speicher vieleicht etwas billiger). My 2cent MfG Klaus
Klaus schrieb: > Man sollte da nicht so knapp ran gehen. Ein bisschen sollte man auch das > Programmieren bzw Debuggen berücksichtigen. Für die 6-Beiner gibt es sog. Header Pacs die einen speziellen Chip mit Debug Leitungen drauf haben. Klaus schrieb: > Bei der CPU ist man dann mit einem $ bzw € dabei Dafür bekommst du in Stückzahlen ab 100 bei Microchip direct 2 Stück.
Hallo zusammen, ich habe es inzwischen wie angekündigt aufgebaut: Zwei LEDs antiparallel auf einen Pin und dann einen Widerstand auf 5V und einen auf GND. Eine dritte LED auf einem zweiten I/O herkömmlich mit Vorwiderstand auf +5V. Nun gab es aber doch Probleme. Eigentlich wollte ich "Brilliant Green" LEDs verwenden. Diese haben aber immer ein U_f von > 3V. Die beschriebene Schaltung kann den LEDs bei Vdd = 5V aber prinzipbedingt nur < 2,5V liefern. Diese LEDs sind zwar äußerst effizient und leuchten trotzdem recht hell, aber mir ist eine gleichmäßige Helligkeit wichtig und diese ist nicht gewährleistet, da U_f recht hohe Toleranzen hat. Außerdem gibt es mit diesen LEDs ein weiteres Problem. Sie sind derart Effizient, dass einig µA bereits für ein deutliches Leuchten sorgen. Selbst wenn der µC-Pin als Eingang beschaltet ist, glimmt mindestens eine der LEDs. Schweren Herzens bin ich also auf grüne LEDs umsteigen, die etwas gelblicher leuchten. Die liegen bei U_f < 2,5V. Jetzt war nur noch die Helligkeit zu kompensieren. Eine der drei LEDs wird ja "normal" angesteuert und ist bei gleichem Vorwiderstand (Ich habe die Vorwiderstände als Array vorgesehen) deutlich heller. Das regle ich über PWM. Meine Sorge ist nun nur noch, dass in einer anderen Charge die Helligkeit plötzlich anders wirkt ...
X4U schrieb: > Klaus schrieb: >> Man sollte da nicht so knapp ran gehen. Ein bisschen sollte man auch das >> Programmieren bzw Debuggen berücksichtigen. > > Für die 6-Beiner gibt es sog. Header Pacs die einen speziellen Chip mit > Debug Leitungen drauf haben. kannst du sowas verlinken? würde mich interessieren.
X4U schrieb: > Mit 3 I/O Pins kannst du 6 Led's betreiben. http://ww1.microchip.com/downloads/en/appnotes/00234a.pdf > Seite 2-3 Für was ist denn da eine Brücke zwischen den Widerständen? Wenn man die weg lässt müsste es doch gehen...
Marc S. schrieb: > kannst du sowas verlinken? würde mich interessieren. http://ww1.microchip.com/downloads/en/DeviceDoc/51292R.pdf
Frank schrieb: > Für was ist denn da eine Brücke zwischen den Widerständen? Wenn man die > weg lässt müsste es doch gehen... Die Brücke ist nötig, damit man die LEDs auch schalten kann. Wenn die nicht da ist, leuchten beide dauerhaft.
Bernd schrieb: > Nun gab es aber doch Probleme. Eigentlich wollte ich "Brilliant Green" > LEDs verwenden. Diese haben aber immer ein U_f von > 3V. Die > beschriebene Schaltung kann den LEDs bei Vdd = 5V aber prinzipbedingt > nur < 2,5V liefern. Hast Du mal versucht, die Verbindung zwischen R1 und R2 wegzulassen? Falls die LEDs dann schon im Ruhezustand leuchten, könntest Du jeder noch eine normale Diode in Reihe schalten.
nicht"Gast" schrieb: > Die Brücke ist nötig, damit man die LEDs auch schalten kann. Wenn die > nicht da ist, leuchten beide dauerhaft. Nicht, wenn die Summe ihrer Vorwärtsspannungen (ggf. durch Seriendioden künstlich vergrößert) hinreichend weit über der Versorgungsspannung liegt. Wobei, wenn die LEDs so empfindlich sind, daß der Strom eines Eingangspins schon ausreicht, um sie zum glimmen zu bringen, funktioniert das vielleicht auch nicht, es kommt aber auf einen Versuch an. @Bernd: Hattest Du an dem Eingangspin vielleicht versehentlich einen internen Pullup oder Pulldown aktiviert?
:
Bearbeitet durch User
nicht"Gast" schrieb: > Frank schrieb: >> Für was ist denn da eine Brücke zwischen den Widerständen? Wenn man die >> weg lässt müsste es doch gehen... > > Die Brücke ist nötig, damit man die LEDs auch schalten kann. Wenn die > nicht da ist, leuchten beide dauerhaft. Ist doch Quatsch. R. Max schrieb: > Nicht, wenn die Summe ihrer Vorwärtsspannungen (ggf. durch Seriendioden > künstlich vergrößert) hinreichend weit über der Versorgungsspannung > liegt. Genau. R. Max schrieb: > um sie zum glimmen zu bringen, > funktioniert das vielleicht auch nicht, es kommt aber auf einen Versuch > an. Genau, sehe ich auch so. Anbei mal noch ein Beispiel wie es in zig tausenden Discovery Boards von ST drin ist...da funktioniert das wunderbar mit allen drei Zuständen. LED_STLINK = 0 --> Green on, Red off LED_STLINK = 1 --> Green off, Red on LED_STLINK = Z --> Green off, Red off
Frank schrieb: > R. Max schrieb: >> Nicht, wenn die Summe ihrer Vorwärtsspannungen (ggf. durch Seriendioden >> künstlich vergrößert) hinreichend weit über der Versorgungsspannung >> liegt. > > Genau. Bzw. bei U_f > 3V und Vcc = 5V braucht man da ja garkeine zusätzlichen Dioden...
R. Max schrieb: > Hast Du mal versucht, die Verbindung zwischen R1 und R2 wegzulassen? > Falls die LEDs dann schon im Ruhezustand leuchten Habe ich schon probiert. Mindestens eine leuchtet dann immer. R. Max schrieb: > Wobei, wenn die LEDs so empfindlich sind, daß der Strom eines > Eingangspins schon ausreicht, um sie zum glimmen zu bringen, > funktioniert das vielleicht auch nicht, es kommt aber auf einen Versuch > an. Mit Dioden habe ich jetzt auch noch probiert. Das Glimmen ist noch da, jedoch so gering dass ich darüber nachdenke es zu vernachlässigen. So richtig zufrieden bin ich aber auch nicht mit der Lösung wegen der zusätzlichen zwei Bauteile. Da könnte ich dann auch schon fast den größeren Controller nehmen. R. Max schrieb: > @Bernd: Hattest Du an dem Eingangspin vielleicht versehentlich einen > internen Pullup oder Pulldown aktiviert? Der Controller hat Pull Ups, die ich aber sowohl im Config Word, als auch im Option Register explizit deaktiviert habe. Frank schrieb: > Bzw. bei U_f > 3V und Vcc = 5V braucht man da ja garkeine zusätzlichen > Dioden... Soweit die Theorie. Praktisch leuchtet eine 3,3V LED aber auch schon bei 2,3V...
Bernd schrieb: > R. Max schrieb: >> Hast Du mal versucht, die Verbindung zwischen R1 und R2 wegzulassen? >> Falls die LEDs dann schon im Ruhezustand leuchten > Habe ich schon probiert. Mindestens eine leuchtet dann immer. Auch bei High Z?
Bernd schrieb: > Praktisch leuchtet eine 3,3V LED aber auch schon bei > 2,3V... Wenn Du je eine 1N4148 mit der LED in Reihe schaltest, sollte es klappen. (2,3V + 0,7V) * 2 = 6V
Frank schrieb: > Auch bei High Z? Selbst wenn der Controller gar nicht verbunden ist. Peter Dannegger schrieb: > Wenn Du je eine 1N4148 mit der LED in Reihe schaltest, sollte es > klappen. > (2,3V + 0,7V) * 2 = 6V Tatsächlich passiert leider das: (2,25V + 0,25V) * 2 = 5V => LEDs glimmen Übrigens verwende ich momentan 1k Vorwiderstände. Für die verwendeten LEDs sind die fast noch zu klein.
Earl Sinclair schrieb: > das könntest du mal versuchen Gerade Versucht und es funktioniert perfekt! Vielen Dank, ich denke so werde ich es machen! Zwar brauche ich auch 2 Dioden extra, und der eingesparte Widerstand war ja eh in einem Array, aber die Lösung funktioniert zumindest sauber. :)
Bernd schrieb: >> so müsste es auch mit einer Diode gehen > > Noch besser :D Jetzt leuchtet die Rechts immer, wenn die Links leuchtet und die in der Mitte aus ist. Mit den zwei Dioden kannst du alle drei separat schalten.
TM FW schrieb: > Jetzt leuchtet die Rechts immer, wenn die Links leuchtet und die in der > Mitte aus ist. die rechte leuchtet nur, wenn beide Ausgänge auf 0 sind. Dann leuchten die beiden anderen nicht.
Peter Dannegger schrieb: > Wenn Du je eine 1N4148 mit der LED in Reihe schaltest, sollte es > klappen. Nein. Eine 1N4148 "hat" keine 0,7V. Auch die Schwellenspannung ist stromabhängig. BTDT.
Ein 12F675 hätte 5 IOs (+ 1I) gehabt und wäre wahrscheinlich auch billiger als der 10F200 gewesen. Und jede LED hätte ihren individuell gebürsteten Vorwiderstand bekommen können...
... schrieb: > Und jede LED hätte ihren individuell gebürsteten Vorwiderstand > bekommen können... Aber dann hätte dieser Thread nicht die Chance, in die 100-plus-Postings-Klasse aufzusteigen. Georg
Bernd schrieb: > Meine Sorge ist nun nur noch, dass in einer anderen Charge die > Helligkeit plötzlich anders wirkt ... a) Dann musst Du gebinnte Ware einsetzten b) Auch im Bin kann die Helligkeit im Verhältnins 1:4 (mnachmal nur 1:2) schwanken. 1:2 wird normalerweise nicht auffallen. rgds
6a66 schrieb: > 1:2 wird normalerweise nicht auffallen. Schau Dir mal die Datenblätter von 7-Segmentanzeigen an, selbst da ist oft ein Unterschied von 1:2 zwischen einzelnen Segmenten erlaubt.
Wieso nimmst du nicht einfach n 8pinner? Ist u.U. teurer, dafür brauchst du nicht diese Diode(n), verbrauchst weniger Platz auf der Platine und hättest dir die Mühe und vorallem Zeit(=Geld) bis jetzt aufgrund dieses Threafs sparen können. Die 8pinner gibts auch im TDFN Package. Die sind winzig. Also bleibt der eigentliche Faktor Kosten übrig. Du kannst auch ne Soft I2C Schnitstelle machen und da nen IO Expander und ADC dranhängen ;)
Michael Skropski schrieb: > Wieso nimmst du nicht einfach n 8pinner? Die optimale Schaltung braucht doch nur eine Diode und 2 Widerstände. Beitrag "Re: Zu wenige Pins" Mit 3 Drähten bräuchte man 3 Widerstände bei paralleler Ansteuerung, spart also nichts, außer etwas Software zum Multiplexen.
Earl Sinclair schrieb: > die rechte leuchtet nur, wenn beide Ausgänge auf 0 sind. Dann leuchten > die beiden anderen nicht. Wenn der untere Ausgang im Bild auf low-ist, leuchtet die rechte LED über die Speisung zum low-Ausgang. Wenn jetzt der obere Ausgang auf high ist, leuchten demzufolge beide. Oder sehe ich hier etwas falsch?
Peter Dannegger schrieb: > Die optimale Schaltung braucht doch nur eine Diode und 2 Widerstände. > Beitrag "Re: Zu wenige Pins" > > Mit 3 Drähten bräuchte man 3 Widerstände bei paralleler Ansteuerung, > spart also nichts, außer etwas Software zum Multiplexen. Ok. Zugegeben. Man könnte aber auch bei 3 Ausgängen multiplexen und nur ein R für 3 (gleiche) LEDs nehmen. Wären also 4 Bauteile gegen 6. Mir gings darum, dass er in der Zeit, wo er selber am grübeln war, wie das machbar ist, schon Schaltplan und Layout fertig hätte. In der Zeit, die hier ins Land gegangen ist, wäre die Software fertig. Und das alles, weil ein Pin bzw ein Output fehlt.. Nicht falsch verstehen. Ich bin sonst auch der Meinung, nicht immer gleich das nächst Größere oder Leistungsfähigere nehmen zu müssen. Aber wegen einem Input... Ich weiß nicht. Man braucht so jetzt mehr Zeit, mehr Platz und man spart an Geld nur die Differenz des PICs (62.5ct [PIC12F1571] - 53ct [PIC10F220]) = 9.5ct abzüglich der zusätzlichen Diode (3.2ct [1N4148]) und eines zusätzlichen Rs (ca 1ct). Bleibt also eine Ersparnis von satten 5.3ct (abzüglich des ggf mehrbedarf auf der Platine). Da muss schon viel gebaut werden, dass der Preisunterschied die Zeitkosten wett machen. Wenn die Kosten keine Rolle spielen, würde ich ggf den 12F1822 oder 1840 nehmen, dann hat man deutlich mehr Flash und Ram.
TM FW schrieb: > Oder sehe ich hier etwas falsch? Ja. Denk mal darüber nach, was die Diode macht, wenn oben Plus anliegt und unten Minus.
Konrad S. schrieb: > Ja. > Denk mal darüber nach, was die Diode macht, wenn oben Plus anliegt und > unten Minus. So gesehen leuchtet die LED links ja gar nie, wenn du eine normale Diode parallel zur LED hast.
TM FW schrieb: > So gesehen leuchtet die LED links ja gar nie, wenn du eine normale Diode > parallel zur LED hast. Überleg mal für diese Kombinationen den Stromfluss: oben | unten | ------+-------+----- plus | minus | minus | plus | minus | minus | plus | plus |
Jetzt ist der Knüppel raus. Habe nicht daran gedacht, dass wenn oben + dann an der rechten Diode nur 0,7V sind :)
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.