www.mikrocontroller.net

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


Autor: Florian K. (kraemer90)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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ß

Autor: Florian K. (kraemer90)
Datum:

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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Ro R. (rond_es)
Datum:

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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Florian K. (kraemer90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann bin ich ja beruhigt und kann ans Programmieren gehen :)

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Florian K. (kraemer90)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Florian K. (kraemer90)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: stephan_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bau einen Pullup ein. Ich nehme immer 10k für meine PICs.

Autor: stephan_ (Gast)
Datum:

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Nimm lieber einen Flash-Typ, z.B. 12C629

Ähem, 12F629;)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und Nachtrag:

Als PIC verwende ich einen 12F508.

Autor: Florian K. (kraemer90)
Datum:

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

Autor: Florian K. (kraemer90)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So habe mal den Pullup eingebaut, müsste so funktionieren oder?

Also der Reed-Kontakt liegt zwischen JP3 und JP2

Autor: Manuel B. (j-manuel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Florian

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

Gruss

Autor: Florian K. (kraemer90)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Heiko (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Florian K. (kraemer90)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: stephan_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: chris (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Florian K. (kraemer90)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: stephan_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Florian K. (kraemer90)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Florian K. (kraemer90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
denke, dass ich jetzt besser einen Thread im µC-Forum aufmache oder?

Die Hardware steht ja jetzt soweit.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.