Hallo zusammen, ich will ein kleines PIC-Projekt beginnen. Es soll folgende Funktionen haben: Wenn ein Schalter geschlossen wird, soll für 2min 4 rote LEDs leuchten. Nach 2 min sollen 4 grüne LEDs leuchten, bis der Schalter wieder geöffnet wird. Soweit hört sich es einfach an, doch ich habe jetzt so meine Schwierigkeiten schon bei der Hardware, sprich Schaltungsaufbau und Bauteildimensionierung. Als PIC verwende ich einen 12F508. Tut aber vorerst nichts zur Sache. Betriebsspannung ist eine Knopfzelle mit 3V. Transistor habe ich einen BC847A (Stromverstärkung 220) und LEDs brauchen 2V und 20mA. Die Ausgänge des PICs sollen auf einen Transistor geführt werden, der als Schalter funktionieren soll. Er soll dann die 4 LEDs schalten. Hier gibt es aber schon das erste Problem. Wie ordne ich die LEDs an, bzw. ihr Vorwiderstand. Habe jetzt mal meine Variante mit EAGLE gezeichnet und die Dimensionierung gemacht. Kann dass so hinhauen oder habe ich irgendwas falsch verstanden/dimensioniert/angeordnet? Dimensionierung: RLED= UB-UCEsat-ULED/ILED= (3V-0,1V-2V)/20mA = 45 Ohm IC= 4*20mA =80mA IB= IC/Verstärkung = 80mA/220=363µA Uout= VDD-0,7V=3V-0,7V=2,3V RV= Uout-UBE/IB*5(damit er auch sicher schaltet)=(2,3V-0,7V)/363µA*5=881 Ohm Danke und Gruß
Habe ich alles falsch gemacht, dass sich keiner meldet bei schon fast 30 Downloads?
Hi, nein ich kann dich beruhigen: Solange der PIC bei dieser niedrigen Versorgungsspannung funktioniert (hab gerade kein Datenblatt zur Hand), sollte diese Schaltung doch funktionieren :-)
Theoretisch könntest du doch auch nur jeweils einen Widerstand für die 4 LEDs nehmen? Gegenargumente?
Naja LED's sind nun mal Dioden. Heißt auf gut Deutsch: kleine Änderung der Spannung ergibt eine große Änderung im Strom. Durch Fertigungstoleranzen haben LED's geringfügig unterschiedliche Vorwärtsspannungen. D.h. eine LED beginngt zuerst zu leiten. Diese erwärmt sich, und ihre Vorwärtsspannung sinkt. Dadurch fließt noch mehr Strom durch diese... Das Ende vom Lied: im schlechtesten Fall fließt der gesamte Strom durch nur eine LED und zerstört diese evtl.
Dann bin ich ja beruhigt und kann ans Programmieren gehen :)
Wieviel Kapazität hat denn deine Knopfzelle und bis zu welcher minimalen Spannung arbeitet der PIC noch? Unter Umständen kann es sein das deine Batterie relativ schnell leer ist bei einem Stromverbrauch von knapp 100mA wenn die LEDs leuchten.
Der PIC braucht minimal 2,5V. Kapazität habe ich 500mAh Habe vor, dass der PIC nach einer gewissen Zeit in Standby-Modus geht. Außerdem will ich die LEDs takten (50Hz) und nicht dauerhaft an schalten (denke es spart auch was ein) Fals nötig gehe ich halt auf LC-LEDs, will es aber erstmal mit normalen probieren.
Mir ist noch etwas eingefallen, wegem der Schaltung. Der Schalter wird durch einen Reed-Kontakt realisiert. Erkennt nun der PIC den Unterschied ob der Schalter offen oder geschlossen ist( also low oder high), oder sollte ich einen Pullup-Widerstand einplanen?
Nochwas: Warum nimmst Du einen PIC12C508? Der ist nur 1x programmierbar (OTP=one time programmable). Nimm lieber einen Flash-Typ, z.B. 12C629
>Nimm lieber einen Flash-Typ, z.B. 12C629
Ähem, 12F629;)
Ich nehme den 12F508, habe wohl den falschen im Eagle genommen. Müsste aber die gleiche Pin-Belegung haben.
So habe mal den Pullup eingebaut, müsste so funktionieren oder? Also der Reed-Kontakt liegt zwischen JP3 und JP2
Hallo Florian solltest du noch den Standby realisieren, dann vegiss nicht noch ein weiteren Transistor zur Unterbrechung der versorgungsspannung. Gruss
Geht dass nicht über den PIC? habe jetzt mal im Datenblatt gelesen. Man muss anscheinend 12Bits in das SLEEP Register schreiben SLEEP/Go into Standby mode/ 0000 0000 0011 jetzt ist nur die Frage, wie ich in dan wieder raushole aus dem Standbye
Reed-Kontakt samt Pullup müsste so funktionieren. Zwei Anmerkungen: 1) Du rechnest oben 45Ohm für die LED-Vorwiderstände aus, hast im Schaltplan aber 15Ohm stehen (45Ohm ist richtig) 2) LEDs - auch ganz normale - leuchten auch bei deutlich niedrigeren Strömen als 20mA. Du kannst also auch z.B. auf 10mA berechnen und den Stromverbrauch mal eben halbieren. Andererseits, wenn du sie sowieso taktest, ist das auch egal, dann kannst du den gleichen Effekt auch per Software erzielen. MfG, Heiko
Ok, bei den LEDs bin ich mir auch noch nicht sicher, ob nicht LowCurrent reichen, habe deswegen jetzt erstmal ein Paar verschiedene Test-Platinen mit LEDs geätzt um die Ausleuchtung im Kunstoffrohr zu testen. Bei den Batterien gab es auch noch eine Änderung. Ich nehme jetzt 3 in Reihe geschaltete Hörgeräte-Batterien. Da hat eine 1,4V und 650mAh
Du kannst den 12F508 über den GP0 aus dem SLEEP-Befehl aufwachen lassen, wenn das Bit _GPWU im OPTION Register gelöscht ist (Datenblatt S.24+55f., Note beachten!) mit dem Bit _GPPU im OPTION Register kannst Du sogar einen internen Pullup freischalten, sodass Du den externen gar nicht brauchst. Bei den meisten PICs macht das Programm nach dem SLEEP weiter, hier scheint es aber so zu sein, dass ein RESET erfolgt und Du beim Programmstart abfragen musst, wie das GPWU-Bit im STATUS-Register aussieht (S.22+54).
Wenn multiplexing, dann könntest du es auch so machen, http://www.jimfranklin.info/microchipdatasheets/00234a.pdf Wegen pull-up, der Pic hat interne pull-ups, die > 100K sind, also strohmsparender als externe pull-ups und weniger Bauteile. Weiters, der WDT kann als Multiplexer Takt dienen und den Baustein aus dem Sleep herausholen, mit minimalsten Strohmverbrauch, alle 9ms bzw alle 2.3 Sekunden, wenn ausgeschalten.
Soll ich dann den "Wake UP" vom Reed-Kontakt auf einen noch freien Port legen (GP3) oder auf GP0 lassen und im Programm configurieren. gibts da ne Standardlösung, oder macht das jeder wie er will?
Lass den REED-Kontakt am GP0, das ist ok. Den Watchdog-Timer sollte man als Anfänger erst mal links liegen lassen, ist nicht ganz einfach. Nimm doch als LEDs superhelle, die Du mit 1-2mA ansteuerst, sind dann so hell wie nomale LEDs. Low-Current-LEDs nehme ich gar nicht mehr, die funzeln ja nur.
so, habe nun mal ein PAP gemacht, könnte so hinhauen oder? > Wenn ein Schalter geschlossen wird (Reed-Kontakt), soll für 2,5min 4 rote > LEDs leuchten. > Nach 2,5 min sollen 4 grüne LEDs leuchten, bis der Schalter wieder > geöffnet wird. Ansonsten soll der PIC in Standby-Betrieb sein. denke, dass ich erstmal die LEDs dauernd anlasse und das Programm dann umschreibe (die LEDs also takte), wenn der Rest funktioniert.
denke, dass ich jetzt besser einen Thread im µC-Forum aufmache oder? Die Hardware steht ja jetzt soweit.
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.