Forum: Analoge Elektronik und Schaltungstechnik Bauteil Dimensionierung für PIC-Projekt


von Florian K. (kraemer90)


Angehängte Dateien:

Lesenswert?

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ß

von Florian K. (kraemer90)


Lesenswert?

Habe ich alles falsch gemacht, dass sich keiner meldet bei schon fast 30 
Downloads?

von Markus (Gast)


Lesenswert?

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 :-)

von Ro R. (rond_es)


Lesenswert?

Theoretisch könntest du doch auch nur jeweils einen Widerstand für die 4 
LEDs nehmen? Gegenargumente?

von Markus (Gast)


Lesenswert?

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.

von Florian K. (kraemer90)


Lesenswert?

Dann bin ich ja beruhigt und kann ans Programmieren gehen :)

von Tobias (Gast)


Lesenswert?

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.

von Florian K. (kraemer90)


Lesenswert?

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.

von Florian K. (kraemer90)


Lesenswert?

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?

von stephan_ (Gast)


Lesenswert?

Bau einen Pullup ein. Ich nehme immer 10k für meine PICs.

von stephan_ (Gast)


Lesenswert?

Nochwas: Warum nimmst Du einen PIC12C508? Der ist nur 1x programmierbar 
(OTP=one time programmable). Nimm lieber einen Flash-Typ, z.B. 12C629

von holger (Gast)


Lesenswert?

>Nimm lieber einen Flash-Typ, z.B. 12C629

Ähem, 12F629;)

von holger (Gast)


Lesenswert?

Und Nachtrag:

Als PIC verwende ich einen 12F508.

von Florian K. (kraemer90)


Lesenswert?

Ich nehme den 12F508, habe wohl den falschen im Eagle genommen. Müsste 
aber die gleiche Pin-Belegung haben.

von Florian K. (kraemer90)


Angehängte Dateien:

Lesenswert?

So habe mal den Pullup eingebaut, müsste so funktionieren oder?

Also der Reed-Kontakt liegt zwischen JP3 und JP2

von Manuel B. (j-manuel)


Lesenswert?

Hallo Florian

solltest du noch den Standby realisieren, dann vegiss nicht noch ein 
weiteren Transistor zur Unterbrechung der versorgungsspannung.

Gruss

von Florian K. (kraemer90)


Lesenswert?

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

von Heiko (Gast)


Lesenswert?

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

von Florian K. (kraemer90)


Lesenswert?

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

von stephan_ (Gast)


Lesenswert?

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).

von chris (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Florian K. (kraemer90)


Lesenswert?

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?

von stephan_ (Gast)


Lesenswert?

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.

von Florian K. (kraemer90)


Angehängte Dateien:

Lesenswert?

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.

von Florian K. (kraemer90)


Lesenswert?

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
Noch kein Account? Hier anmelden.