LED Hintergrundbeleuchtung beim Fernseher nachrüsten

Für die perfekte Heimkino-Stimmung muss es nicht immer das teure, neueste Modell sein, das mit einer ganzen Menge Optik punktet. Denn auch schon etwas ältere Modelle können mit ein wenig handwerklichem Geschick ziemlich leicht in ganz neuem Licht erstrahlen. Und das wortwörtlich, denn heute möchte ich meinen bisher doch eher schlichten Fernseher mit den passenden LEDs ein wenig aufhübschen, um so ein stimmiges Hintergrundlicht zu zaubern.

Folgendes Equipment wird dafür benötigt:

  • LED-Lichtleiste oder -streifen mit Fernbedienung

  • Gegebenenfalls etwas Tesafilm oder Klebestreifen

  • Schere

  • und natürlich ein Fernseher ;-)

Die Anbringung selbst ist ziemlich simpel und kann mit etwas Geschick kaum schiefgehen. Bevor der LED-Streifen angebracht wird, habe ich ihn zunächst einmal probehalber um den Fernseher gelegt, denn schließlich muss hier auch die Länge stimmen, ansonsten entstehen unschöne Löcher in der Beleuchtung. Mindestens 3 Meter Länge halte ich hier für absolut angebracht, wer auf Nummer sicher gehen will, greift aber lieber zu 5 Metern. Falls dann noch Reste übrig bleiben, ist das auch nicht weiter schlimm, denn das LED-Band lässt sich ganz unproblematisch ganz nach Bedarf durchschneiden.

Die einzelnen Arbeitsschritte

  1. Fernseher ausmessen und eine passende LED-Lichtleiste mit genügend Spielraum kaufen (bekommt man beispielsweise preiswert bei PUR LED, im Baumarkt sind die Leisten meist deutlich teurer)

  2. Das LED-Band einmal versuchsweise um den Fernseher legen und in etwa abschätzen, ob das Band reicht.

  3. Nun wird das Band angebracht: viele Leisten verfügen bereits über ein doppelseitiges Klebeband auf der Rückseite, das nun einfach hinten am Fernseher aufgedrückt wird. Wichtig ist dabei, dass der Abstand zum Rand des Fernsehers überall annähernd gleich sein sollte, ansonsten verteilt sich das Licht eventuell unregelmäßig. Außerdem sollte die Leiste auch nicht zu weit innen oder außen liegen. Insbesondere bei Fernsehermodellen, die zum Rand hin aus durchsichtigem Glas bestehen, scheint sonst nicht nur das passive Hintergrundlicht hindurch, sondern auch die LEDs selbst sind direkt sichtbar.

  4. Wer sich hier einmal verklebt, kann die Leiste meist aber noch problemlos abziehen und erneut anbringen. Ist sie erst korrekt angebracht, so steht meist noch ein überschüssiger Teil der Leiste ab und muss erst entfernt werden. Wichtig ist dabei aber, dass wirklich nur dort geschnitten wird, wo der Hersteller eine entsprechende Kennzeichnung gemacht hat („hier schneiden“ oder ähnliches). Wird das Band an einer anderen Stelle durchtrennt, fallen die LED Chips bis zum nächsten Segment aus.

  5. Nun wird das LED-Band noch mittels beiliegendem Stecker an den Stromkreis angeschlossen und der Empfänger (auch beiliegend) gut sichtbar bzw. für Signale empfänglich platziert.

  6. Damit ist die Anbringung im Prinzip schon abgeschlossen und sollte im Regelfall nicht mehr als 10 Minuten in Anspruch nehmen. Mit der entsprechenden Fernbedienung kann die LED-Leiste nun über den Empfänger eingeschaltet werden. Je nachdem, was für ein Modell genutzt wird, lassen sich nun individuelle Farbverläufe erstellen, Voreinstellungen nutzen oder viele einzelne Farben anwählen.

Bei Youtube findet sich auch ein Video, welches den Vorgang recht gut beschreibt.

Wichtig: LCD-Fernseher, Receiver oder Soundsystem liegen nicht selten auf derselben Frequenz der Lichtleiste, sodass ein Umschalten am Receiver beispielsweise auch dazu führen kann, dass automatisch die Farbe der Beleuchtung gewechselt wird. Das ist zwar ein wenig schade, das Produkt an sich erfüllt seinen Zweck ansonsten aber allemal!

Bestellung…

Bestellung Reichelt...Kennt Ihr das?

Mal eben beim Elektronikdealer ein paar Teile bestellen. Hauptsächlich Basic’s wie FET’s, Widerstände usw. Na gut, auch noch ein paar Stecker vielleicht… Und da fehlt auch noch Schrumpfschlauch, Dioden sind auch nicht mehr sooo viele da, glaube ich. Ach ja, 3mm LEDs und Trimmer… lieber mal ein paar mitbestellen…

Wie Frauen beim Schuhe kaufen, echt :mrgreen:

Als ich das Foto gemacht habe, war sogar schon einiges weggeräumt. Aber so hab ich jetzt wenigstens wieder eine längere Zeit Ruhe und alles da, was ich brauche! Hoffe ich… Wer’s glaubt… ;-) Am nervigsten finde ich ohnehin immer das wegsortieren, gerade bei den SMD Bauteilen.

SMD 2 THT Spider :-)

SMD2THT_SpiderSo manches mal wäre es gut, wenn moderne Elektronik etwas größer wäre. Im aktuellen Fall möchte ich gerne eine Versuchsplatine auf Lochraster aufbauen. Das passende IC steht mir aber nur als SMD-Version zur Verfügung, also dann wieder ein wenig frickeln, SMD goes THT eben :-)

Am Rande erwähnt: Ich habe es nicht so mit den Spinnentieren…! Den biologischen, lebenden, krabbelnden… Ihr könnt Euch vielleicht vorstellen, dass man durchaus mal zusammenzucken kann, wenn das abgebildete Teil im (noch dunklen) Keller auf dem Arbeitstisch liegt :mrgreen:

Im ersten Anlauf wollte ich zunächst eine Adapterlösung mit Sockel bauen, für die aktuelle Anwendung ist das aber unnötig bzw. vielleicht sogar von Nachteil.

SMD2THT_HeaderAlso IC einspannen und verzinnen…

 

 

SMD2THT_Holder… mit Kupferlackdraht etwas anschlussfreundlicher gestalten…

 

 

 

 

 

SMD2THT_Spider… ekeliges Aussehen erzeugen…

 

 

 

 

 

 

SMD2THT_Top

 

und montieren!

 

 

 

 

 

 

 

SMD2THT_Bottom

 

 

 

 

 

 

 

 

 

 

 

Aufbauen will ich übrigens mal wieder einen Spannungswandler von 1,2V auf mindestens 3V, wahrscheinlich deutlich höher.

Diesmal mit dem PR4404 statt dem PR4402, dieser kann rund 300mA liefern, also deutlich mehr als der 4402. Neben dem Vorteil wenige externe Bauteile zu benötigen, reizt mich einfach die Tatsache, dass die Bauteile eigentlich als LED-Treiber gedacht sind ;-)

Der PIC 12F675 Teil 6 – PIR1 Register

PIC © 12F675 Das nächste Register: PIR1, liegt in Bank 0.

Noch einmal der Hinweis darauf, dass einige der Bits in etlichen Registern eher lesend ausgewertet werden müssen. Also z. B. 1 = ist was passiert, 0 = nichts ist passiert. Auf Nummer sicher gehend, würde ich die entsprechenden Bits VOR ausführen der entsprechenden Funktionen manuell zurücksetzen, wird an den meisten Stellen ohnehin notwendig sein.

 

BIT 7:

1 = EEPROM schreiben fertig, Bit muss manuell gelöscht werden

0 = EEPROM schreiben nicht beendet.

BIT 6:

1 = A/D Wandler fertig, manuell löschen.

0 = A/D Wandler nicht fertig

BIT 5:

Nicht belegt, zu betrachten als ‚0‘

BIT 4:

Nicht belegt, zu betrachten als ‚0‘

BIT 3:

1 = Änderung am Comparator Eingang, manuell zu löschen

0 = Keine Änderung am Comparator

BIT 2:

Nicht belegt, zu betrachten als ‚0‘

BIT 1:

Nicht belegt, zu betrachten als ‚0‘

BIT 0:

1 = Timer 1 (TMR1) Überlauf, manuell löschen

0 = TMR1 kein Überlauf

 

 

 

Der PIC 12F675 Teil 5 – PIE1 Register

PIC © 12F675 Mit den Einstellungen vom ‚PIE1‘-Register werden weitere Funktionen (bzw. Unterfunktionen) der Interruptmöglichkeiten des Controllers eingestellt.

Man muss beachten, dass die generelle Funktion der Interrupts in ‚INTCON‚ eingeschaltet werden muss, sonst geht nix :-) Also dort Bit 7 und ggf. Bit 6 auf „1“ setzen.

 

 

Bit 7:

1 = Interrupt bei Ende eines EEPROM-Schreibvorganges aktiv.

0 = Interrupt bei Ende EEPROM schreiben inaktiv.

Bit 6:

1 = Interrupt bei Ende eines A/D-Wandler Vorganges

0 = Kein Interrupt nach A/D Wandlung.

Bit 5:

Nicht genutzt, zu lesen als „0“

Bit 4:

Nicht genutzt, zu lesen als „0“.

Bit 3:

1 = Interrupt durch Comparator ein.

0 = Interrupt durch Comparator aus.

Bit 2:

Nicht genutzt, zu lesen als „0“.

Bit 1:

Nicht genutzt, zu lesen als „0“.

Bit 0:

1 = Interrupt durch Timer 1 möglich.

0 = Interrupt durch Timer 1 inaktiv.

 
 

Der PIC 12F675 Teil 4 – INTCON Register

PIC © 12F675 Das INTCON Register beinhaltet die Settings zu den Interruptfunktionen des 12F675.

Herstellerseitig wird empfohlen, die betreffenden Bits vor der Benutzung über die Software zurückzusetzen, um eine sichere Funktionen zu gewähren.

INTCON liegt in Bank0.

 

 

Bit 7:

0 = Alle Interrupts deaktiviert.

1 = Alle aktiviert.

Es ist zu beachten, dass die Interrupts auch ggf. noch in den betreffenden/weiteren Registern aktiviert werden müssen.

Bit 6:

0 = Alle Interrupts deaktiviert, die intern vom PIC ausgelöst werden können.

1 = Alle Interrupts aktiviert, die intern vom PIC ausgelöst werden können.

Es ist zu beachten, dass auch die Interrupts auch ggf. noch in den betreffenden/weiteren Registern aktiviert werden müssen. Insbsondere Register PIE1 spielt hier eine große Rolle!

Bit 5:

0 = Timer0 Interrupt abgeschaltet

1 = Timer0 Interrupt aktiv

Bit 4:

0 = GP2 Interrupt abgeschaltet

1 = GP2 Interrupt aktiv

Bit 3:

0 = GPIO Interrupt abgeschaltet

1 = GPIO Interrupt aktiv

Dies bezieht sich nicht nur auf einen einzelnen Pin wie bei Bit 4, ein Pegelwechsel an einem Pin des gesamten GPIO-Ports kann einen Interrupt auslösen. Beim 12F675 kann dies jeder Pin des Ports sein.

Bit 2:

1 = Timer0 hat in Register TMR0 einen Überlauf ausgelöst

0 = Timer0 hat keinen Überlauf ausgelöst.

Man kann also auslesen, ob der Timer durchgezählt hat. Wichtig: Das Bit wird NICHT vom Controller zurückgesetzt, das muss im Programm geschehen (bcf INTCON,2).

Bit 1:

1 = Interrupt an GP2 wurde ausgelöst

0 = Kein Interrupt an GP2 ausgelöst.

Auch hier muss das Bit manuell zurück gesetzt werden, z. B. mit „bcf INTOCON,1“.

Bit 0:

0 = Kein Pegelwechsel an GPIO

1 = Pegelwechsel hat an einem Pin von GPIO stattgefunden.

Auch hier muss das Bit im Programm gelöscht werden.

 

 

Der PIC 12F675 Teil 3 – OPTION Register

PIC © 12F675 Weiter geht es mit der Beschreibung der PIC12F675. Ich kann übrigens nicht versprechen, dass die Blogbeiträge alle zeitnah und direkt nacheinander erscheinen, also nutze ich mal aus, dass heute gerade Zeit übrig ist :-)
 

 

OK, das nächste Register:

OPTION_REG:

In diesem Register werden Einstellungen zum Timer, dem Watchdog und auch möglichen Pull-Up Funktionen festgesetzt. OPTION liegt in Bank 1!

Bit 7:

0 = Pull Up’s aktiv

1 = Pull Up’s deaktiviert.

Pull-Up Widerstände dienen dazu, einen definierten Pegel an einen Port-Pin zu legen. Ist ein Pin beispielsweise als digitaler Eingang definiert, muss er einen festen Pegel aufweisen, ‚L‘ oder ‚H‘. Der Pull-Up Widerstand ist so in der Lage, einen festen ‚High‘-Pegel zu erzeugen, bis aus der Schaltung eine Änderung eintritt, welche einen sicheren ‚Low‘-Pegel liefert. So ist sichergestellt, dass kein undefinierter Zustand eintreten kann. Ich persönlich realisiere aber solche Lösungen immer mit externen Widerständen, so kann ich den Widerstandswert selber bestimmen.

Bit 6:

1 = Interrupt bei steigender Flanke an Pin GP2

0 = Interrupt bei fallender Flanke an Pin GP2

Interrupts dienen dazu, das laufende Programm bei auftreten einer bestimmten Situation zu unterbrechen und eine Aktion auszuführen. Der PIC hat mehrer Möglichkeiten dies zu vollziehen, in diesem Fall durch eine Pegeländerung an Pin GP2

Bit 5:

Hier wird festgelegt, aus welcher Quelle der Timer0 seinen Takt bezieht. Dies kann entweder durch ein externes Signal an GP2 geschehen oder durch einen internen Taktgeber. Auf die Timer komme ich auch noch gesondert zu sprechen.

1 = Takt an GP2

0 = Interner Takt

Bit 4:

Auslösen des nächsten Timerschrittes, wenn Takt an GP2 anliegend.

1 = Pegelwechsel von ‚H‘ nach ‚L‘

0 = Pegelwechsel von ‚L‘ nach ‚H‘

Bit 3:

Festlegen, ob der Vorteiler dem Timer0 oder dem Watchdog zugeordnet ist, siehe auch Beschreibung Bit 0-2

Bit 0,1,2:

Der PIC arbeitet mit einem Arbeitstakt von einigen Hz bis zu etlichen Mhz. Der Vorteiler kann eingesetzt werden, um die Zählgeschwindigkeit zu reduzieren. Je nach Einsatz, kann der Muttertakt bis zum Verhältnis 1:256 (1:128 beim Watchdog) geteilt werden. Hier muss wieder mal das Datenblatt her, wenn man die Funktionen detailliert betrachten möchte. Setzt man die Bits 0,1,2 auf 111, arbeitet in diesem Falle der Timer0 mit einem Teilungsverhältnis von 1:256, bei 000 auf 1:2.

Der PIC 12F675 Teil 2 – STATUS Register

PIC © 12F675 Eines der größten Probleme beim Programmieren von PIC’s ist der Umstand, dass man die Funktionen des Innenlebens zumindest grob kennen muss. Immer öfter bekomme ich Anfragen zu Problemen, die ursächlich nicht aus dem eigentlichen Programm, sondern der Einstellung des Controllers an sich kommen. Bei genauerer Überlegung logisch, wie soll z. B. der A/D Wandler arbeiten, wenn er gar nicht aktiviert wurde? Ich versuche in diesem (und dem ersten Teil und vielleicht folgenden) Beitrag mal, das Ganze anhand des 12F675 ein wenig zu entwirren. Vorweg sei gesagt, dass man um das Datenblatt trotzdem nicht herumkommt, zu vieles ist sehr tief verschachtelt oder setzt weitere Kenntnisse voraus, die ich in einem Beitrag hier einfach nicht komplett erfassen kann. Oftmals muss man aber so tief gar nicht graben, vielleicht fehlte beim letzten Versuchsaufbau ja nur ein einziges Bit, damit das Programm läuft oder eben der PIC einfach macht, was er soll.

Ich nehme als Beispiel den 12F675, er ist günstig und für die allermeisten Kleinprojekte ausreichend. Darüber hinaus, kann man die Kenntnisse auf sehr viele weitere Controller anwenden, Unterschiede liegen hier eher in den Details -> Datenblatt! ;-) Ich werde in diesem Teil die wichtigsten Register ein wenig beschreiben, mal sehen, wie umfangreich dieser und die wahrscheinlich folgenden Beiträge werden. Bestimmte Parameter kann man nicht wirklich gut erklären, wenn der Leser die elektronischen Funktionen nicht kennt, welche dahinter stehen. Oft hilft einfach experimentieren Glücklicherweise sind diese Möglichkeiten des Mikrocontrollers für die meisten Funktionen nicht unbedingt notwendig, in Standardschaltungen jedenfalls. Auf solch spezielle Funktionen werde ich also nur eingehen, wenn es unumgänglich ist. Will sagen: wenn jemand diese Funktionen benötigt, dann weiß er mesit auch, um was es geht :mrgreen: Nebenbei wird es sicher wieder Mails geben, in denen typische Dinge wie ‚Es geht aber auch anders…‘ und ‚… ganz korrekt wäre aber…‘ stehen, das ist sicher alles richtig, kenne ich aber so nicht, habe ich noch nicht getestet oder erscheint mir aus irgendeinem Grund für den Artikel unpassend, akzeptiert das bitte. Meine Beiträge sind keine Doktorarbeiten, sie sollen dem Interessierten bei einem kleinen Schritt auf einem langen Weg einfach etwas helfen, schreib ich andauernd, ist mir klar ;-)

Link: -> 12F675 Teil 1

Ich starte in den nächsten Beiträgen mit den Registern in der Reihenfolge, in der sie auch im Datenblatt aufgeführt sind.

Sei noch darauf hingewiesen, dass es i. d. R. 8 Bit pro Register gibt, welche von RECHTS NACH LINKS beginnend mit ‚0‘ bezeichnet sind! 

Geschrieben sieht dies also so aus:

Bit 7 – Bit 6 – Bit 5 – Bit 4 – Bit 3 – Bit 2 – Bit 0

Möchte man z. B. das erste Bit in einem Register bearbeiten, dann ist dies im Assembler Bit ‚0‘. Mit

bsf ADCON,0

würde zum Beispiel das 1. Bit im Register ADCON auf ‚1‘ oder ‚HIGH‘ setzen,

00000001

wäre also der Inhalt, wenn alle anderen Bits vorher auf ‚0‘ standen.


 

STATUS 

Im STATUS Register des Controllers kann man hauptsächlich feststellen, was der PIC gerade erledigt hat bzw. welches Ereignis gerade eingetreten ist. STATUS befindet sich in Bank 0 und Bank 1!

 Bit 7

In diesem PIC nicht relevant

Bit 6

In diesem PIC nicht relevant

Bit 5

Bankauswahl, dazu kommt noch ein eigener Artikel. Dient dazu, Register in Bank 0 oder Bank 1 auszuwählen. In welcher Bank welches Register zu finden ist, steht im Datenblatt. Beim 12F675 gibt es Bank 0 und 1, in anderen PIC’s noch weitere. Setzen von Bit 5 (bsf STATUS,5) schaltet in Bank 1. Befindet man sich im Programm in der falschen Bank, kann man auf Register die eben in der anderen liegen nicht zugreifen.

Bit 4

Feststellen oder beeinflussen des SLEEP Modus bzw. des Watchdog, muss ich auch in einem eigenen Beitrag bearbeiten.

Bit 3

Siehe Bit 4 :-)

Bit 2

Zeigt an, ob das Ergebnis der letzten Operation ‚0‘ war. Hat der Controller also z. B. 10 – 10 = 0 gerechnet, wird dieses Bit  auf ‚1‘ gesetzt.

Bit 1

Wird ‚1‘, wenn ein Überlauf der unteren 4 Bit der letzten Operation stattgefunden hat. Ich weiß, das klingt jetzt völlig Ballaballa, ich drösel’s später noch auf ;-)

Bit 0

Wird ebenfalls ‚1‘, wenn ein Überlauf stattgefunden hat, hier aber auf die kompletten 8 Bit bezogen. Durch seine 8 Bit, kann der 12F675 von 0-255 zählen. Addiert man nun zu 255 +1, ergibt das nicht 256, der Zähler „springt um“, er steht auf ‚0‘, mehr als 255 gehen eben nicht. Um festzustellen, ob dies geschehen ist, kann man STATUS,0 abfragen. Das gleiche gilt für oben genanntes Bit 1, nur eben auf die unteren 4 Bit bezogen. In der Praxis kann man beispielsweise ein Register immer um +1 erhöhen, wenn eine Ereignis eingetreten ist und abfragen, ob es einen Überlauf gab. Dieser Überlauf könnte dann eine Signal-LED einschalten oder einen anderen Programmteil starten. Lädt man dieses Register schon vorher mit einem bestimmten Wert, können auch weniger als 255 Schritte gewählt werden, der Überlauf erfolgt dann eben eher. Alternativ oder ergänzend rechnet man nicht +1 sondern +2 oder +11 oder was auch immer, die Möglichkeiten sind zahlreich.

Etwas unübersichtlicher wird es bei Subtraktionen, da verläuft das Spiel umgekehrt. Wird also beim Minusrechnen die 0 unterschritten (Beispiel:1-2 dann = 255), ist das Bit NICHT gesetzt, in allen anderen Fällen ja.

Vereinfacht betrachtet ist dies der Sinn bzw. die Aufgabe des STATUS-Registers mit den Funktionen, die für einfachere Anwendungen benötigt werden.

Tipp zu ersten Programmierübungen:

4 LEDs an GP 0 – 3 des PIC anschließen und die unteren 4 Bit des STATUS-Registers nach Operationen in GPIO kopieren und (mit Pause) anzeigen lassen. So kann man gut prüfen, was wirklich im Register erschienen ist. Für reine „Trockenübungen“ eignet sich hier auch der MPLAB eigene Simulator gut.

 
 

Der PIC 12F675 Teil 1 – Grundsätzliches

Informationen zum Microchip PIC 12F675 

PIC © 12F675

Wie schon erwähnt, arbeite ich sehr gerne mit den ‚kleinen‘ PIC’s, vorzugsweise dem 12F675.

Es gibt sehr viele Fälle, in denen mehr Ports und Rechenleistung einfach nicht benötigt werden.

Die Blogeinträge zu diesen Themen sind noch nicht lange online, trotzdem kamen schon ein paar Fragen zu Chip & Co, ich werde also mal versuchen, ein paar Erläuterungen zum µController zu geben.

 

Vorweg:

Ich habe kein deutsches Datenblatt zur Hand und habe auch kein richtiges über Tante Google finden können, man kommt also nicht drumherum, sich das englische anzusehen. Größtenteils ist das aber nicht sehr schlimm, es geht in der Hauptsache darum, die Register zu kennen und die möglichen/notwendigen Einstellungen vornehmen zu können. Diese sind ohnehin teilweise so kryptisch bezeichnet, das Sprachkenntnisse an der Stelle wenig bringen :-D

Was braucht man, um den PIC zu verstehen? Hier zwei Links, die vielleicht helfen:

Was man im Hinterkopf haben sollte:

  • Direkt nach dem Einschalten sind alle Ports Eingänge, soweit möglich analog
  • Es ist nicht unbedingt ein externer Oszillator nötig
  • Einige Register MÜSSEN eingestellt werden, sonst geht i.d.R. nichts
  • Die Config Bits MÜSSEN gesetzt werden, per Programm oder Brennsoftware
  • Pin 4 (Reset) muss über einen Widerstand an +UB (5-20k)
  • Wenn mehr als ein paar mA benötigt werden, extern beschalten
  • Betriebsspannung (ca.) 2,0 – 5,5V
Mir ist klar, das es auch hier wieder Ausnahmen gibt. Wer so fortgeschritten ist, wird sich meine Starthilfen aber wahrscheinlich nicht mehr antun :-) und kennt die weiteren Möglichkeiten.

Was kann/hat der 12F675?

  • 8 Bit
  • max. 20MHz (4 MHz bei internem Oszillator +/- 1%)
  • A/D Wandler 10 Bit
  • 6 I/O Ports (5 bei normaler Resetfunktion)
  • Analogkomparator
  • 2 Timer (8- und 16 Bit)
  • 1k Programmspeicher, 64 byte SRAM, 128 byte EEPROM
  • max. 25mA pro I/O Pin aber NICHT mehr als 125 mA gesamter Port!

Hinweis für alle, die schon mit anderen PIC’s gearbeitet haben oder ein anderes Programm portieren wollen:

Es gibt im 12F675 keinen PORTA, PORTB etc., hier wird das I/O Register mit GPIO angesprochen, also z.B. mit ‚bsf     GPIO,5‘ um GP5 auf ‚H‘ zu schalten!
Bei meinem ersten Kontakt mit dem Chip habe ich mich da etwas schwer getan weil ich das schlicht übersehen hatte ;-)
Für alles weitere lohnt natürlich wieder der Blick in das Datenblatt.
Wenn man in seinem Projekt ohne A/D Wandler auskommt, kann man übrigens auch den PIC 12F629 benutzen. Er ist fast identisch zu programmieren, man muss sich nur um die unterschiedlichen Register rund um den A/D Wandler kümmern.
Anmerkung zum Artikel:

Wenn die ganzen Einträge rund um MPLAB, den 12F675 und die Programmierung noch umfangreicher werden, kommen alle Links zu den Beiträgen nochmal auf eine eigene Unterseite um alles besser wiederfinden zu können. Es kann auch sein, das ich bestehende Artikel erweitere, also auch gelegentlich in die älteren Beiträge schauen. 

 

Elektronische Lasten am Mikrocontroller / Offener Kollektor / Transistor als Schalter

Foto-AmpelImmer wenn ich einen Beitrag zum Mikrocontroller schreibe, in dem dieser eine größere Last schalten muss, kommen Anfragen zum „Womit und wie?“. Im Prinzip bediene ich mich dabei immer der gleichen Schaltung, nur mit angepassten Bauteilen.

 

Die meisten Controller arbeiten irgendwo zwischen 2,5 und 5 V. Pro Pin sind oft weniger als 20 mA Ausgangsstrom möglich, induktive Lasten sind auch so eine Sache. Wird ein ganzer Port benutzt, kann es noch enger werden. Je nach Controller stehen beispielsweise für einen Port mit acht Ausgängen insgesamt nur 40 mA zur Verfügung, die sich auf die einzelnen Pins verteilen müssen. Einige LEDs kann man so vielleicht noch direkt über einen Vorwiderstand ansteuern, spätestens bei Motoren oder zahlreicheren Leuchtdioden ist aber Schluss.

Hilft also alles nichts, es muss eine Treiberstufe eingesetzt werden, im einfachsten Fall ein Transistor. Um es nicht unnötig kompliziert zu gestalten, halte ich mich in diesem Beitrag an die einfachsten Formen. Sicherlich sind noch etliche Verfeinerungen möglich.

Hier und hier habe ich ja schon ein paar Worte zum Transistor auf das virtuelle Papier gebracht. Die dort beschriebenen Vorgänge sind Grundvoraussetzung zum Verständnis der folgenden Schaltungsform.

 

Ich nehme mal Folgendes als gegeben an:

  • Betriebsspannung: 12 V DC.
  • Ein zu versorgender Motor mit 12 V / 0,5 A, der nur in eine Richtung läuft.
  • Ein beliebiger Mikrocontroller, der mit 5 V versorgt wird. Diese Versorgung wird als bereits vorhanden angenommen.
  • Maximaler Ausgangsstrom des Controllers: 20 mA.
  • Ein NPN-Transistor mit angenommenem Verstärkungsfaktor B = 100 und maximal 1,5 A Belastbarkeit (BD139 o. Ä.).

Realisiert werden soll eine Schaltung, die bei einem H-Pegel am Controllerausgang den Motor startet. Bei L soll er einfach wieder stehen bleiben.

Prinzipschaltung: Mikrocontroller schaltet Motor über NPN-TransistorIm Bild die Prinzipschaltung.

Die +12 V liegen am Motor an. Bei H am Controllerausgang wird der Transistor über seine Basis angesteuert, sodass der Strom durch den Motor nach GND fließen kann. Der Motor dreht sich. Die Freilaufdiode (rot) dient dazu, Spannungsspitzen beim Abschalten des Motors abzufangen. Bei nicht-induktiven Lasten wie LEDs braucht man sie nicht. Für den hier beschriebenen Motor genügt bei einfachen Schaltvorgängen oft eine Standarddiode der Reihe 1N400X oder etwas Ähnliches. Bei höheren Strömen, Spannungen oder Schaltfrequenzen kann etwas Spezielleres erforderlich werden.

Besonderes Augenmerk liegt auf R1 und R2.

R1

Ich habe die Erfahrung gemacht, dass es Umstände gibt, unter denen es besser ist, die Basis eines Transistors sicher auf Masse bzw. GND zu legen. Der Wert ist nicht kritisch, es soll ja auch nicht unnötig viel Strom vom Controller geliefert werden müssen. Es geht darum, dass die Basis auf GND liegt und der Transistor nicht unbeabsichtigt durchschaltet, etwa wenn der Controllerausgang hochohmig ist. Im Alltagsgebrauch bin ich mit 10 bis 100 kΩ gut ausgekommen.

R2

Sein Wert ist abhängig vom B (Verstärkungsfaktor) des Transistors. Ist „B“ im Datenblatt nicht zu finden, auch mal nach „hFE“ sehen. Sinnvollerweise sollte der Transistor so weit wie möglich durchgesteuert werden. Man möchte ja die Energie möglichst im Motor umsetzen und nicht in der Schaltung.

Ausgehend von +5 V am Controllerausgang bei H und einer angenommenen Basis-Emitter-Spannung UBE von 0,7 V stehen am Basisvorwiderstand 4,3 V zur Verfügung. Der Motor benötigt 500 mA Strom. Mit dem angenommenen Verstärkungsfaktor B = 100 ergibt sich als rechnerischer Ausgangspunkt ein Basisstrom von 5 mA.

Soll also heißen:

Ich will mindestens 500 mA für den Motor, möglichst ohne unnötige Begrenzung durch den Transistor.

Der angenommene Verstärkungsfaktor beträgt 100, also komme ich rechnerisch auf 500 mA / 100 = 5 mA Basisstrom.

R = U / I = 4,3 V / 5 mA = 860 Ω.

Das ist der rechnerische Wert für R2 bei dieser Annahme. Damit der Transistor als Schalter möglichst weit durchsteuert, muss der Basisstrom in der Praxis höher angesetzt werden. Man spricht hier vom Übersteuern, es wird also mehr Basisstrom zugeführt, als die einfache Rechnung zunächst ergibt, beispielsweise das Doppelte. Hier ist ein Blick ins Datenblatt des Transistors unerlässlich! Einmal für den Verstärkungsfaktor und zum anderen für die zulässigen Ströme. Ruinieren will man das Bauteil ja auch nicht.

In der Praxis habe ich oft einen Wert zwischen 220 und 470 Ω genommen, das hat bisher funktioniert. Allerdings muss der Controller den dafür benötigten Strom auch liefern können. Gerade 220 Ω liegen bei 5 V bereits sehr nah an den hier angenommenen 20 mA pro Ausgang. Wichtig ist außerdem, dass der Transistor bei starker Übersteuerung langsamer abschalten kann. Bei einfachen Ein-/Aus-Schaltungen fällt das meist nicht ins Gewicht.

Ist bei kleineren Strömen der Transistor ausreichend durchgesteuert, kann es sogar möglich sein, ihn ohne zusätzliche Kühlung zu betreiben. Nehmen wir für die Kollektor-Emitter-Sättigungsspannung UCE beispielsweise 300 mV an. Fließen nun wirklich nur 500 mA Motorstrom, sind das nach P = U × I genau 500 mA × 300 mV = 150 mW Verlustleistung. Ob dieser Wert im konkreten Aufbau erreicht wird, hängt natürlich von der tatsächlichen Ansteuerung ab.

Dieser Schaltungstyp (Open Collector) eignet sich für viele Anwendungen, in denen mit einem kleinen Steuersignal eine größere Last geschaltet werden soll. Man kann das Ganze noch verbessern, indem statt des Transistors ein FET eingesetzt wird, mit einer Brückenschaltung auch eine Umpolung ermöglicht wird oder ein spezielles IC zum Einsatz kommt. Oder, oder, oder … Die Frage ist einfach, wie viel Aufwand man für ein bestimmtes Ziel treiben möchte.

Um ein paar LEDs blinken zu lassen, würde ich so simpel wie möglich planen. Wenn Geschwindigkeit oder Präzision gefragt ist, entsprechend aufwändiger.

Fazit

So ganz einfach kann ich das alles auch nicht beschreiben. Aber wenn man sich in den üblichen Hobbyanwendungen bewegt, sind ein BD139 oder BC548 (bei kleinen Strömen), R1 = 10 kΩ, ein passend bemessener R2 und bei Motoren eine 1N4007 als Freilaufdiode ein möglicher Ausgangspunkt. Bei meinen einfachen Aufbauten habe ich für R2 häufig 220 Ω verwendet. Bezogen ist das auf 5 V am Controller und 12 V Versorgungsspannung für die Last. Eventuell möchte ein Motor auch noch einen Kondensator an seinen Anschlüssen sehen.

Zu beachten ist außerdem, dass ein Motor beim Anlaufen oder Blockieren deutlich mehr Strom aufnehmen kann als im normalen Betrieb. Sollen LEDs angesteuert werden, die entsprechenden Vorwiderstände nicht vergessen. Wie überhaupt natürlich darauf achten, dass die Bauteile innerhalb ihrer Spezifikationen eingesetzt werden. Und wie immer VORSICHT bei elektrischen Basteleien bzw. wenn man experimentiert! ;.-)

 


Finde Dich zurecht, Du bist in dieser Kategorie:
Home » Elektronik » Seite 10

 

Besucht mich doch in der Welt der sozialen Medien!

facebook instagram pinterest X / Twitter