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 » Microkontroller

 

Besucht mich doch in der Welt der sozialen Medien!

facebook instagram pinterest X / Twitter

 

 

Zusammenfassung der Artikel zur Mikrocontrollersteuerung für Modellbahnbeleuchtung

Mikrocontroller Lichtsteuerung ModellbahnDa ich doch reichlich Anfragen zu der Lichtsteuerung für Modellbahnhäuser bekomme, fasse ich hier mal kurz die Links zu den einzelnen Artikeln zusammen. Auch wenn ich weitere Informationen zu dem Thema habe bzw. aktuelleres ergänze, kommt das mit auf diese Seite.

Die Links:

Beleuchtung bei Modellhäusern – Teil 1

Beleuchtung bei Modellhäusern – Teil 2

Beleuchtung bei Modellhäusern – Teil 3

Anfragen zur Lichtsteuerung

Ergänzendes:

Wer selber keine PICs brennen oder programmieren kann, einfach mal melden. Es lohnt ja nicht, für eine einzelne Steuerung ein Programmiergerät zu kaufen oder bauen. Ich will da keinen Gewinn mit machen, ginge alles zum Porto und Selbstkostenpreis. Auch wäre es (wie schon im Artikel erwähnt) möglich, Platinen herstellen zu lassen, die dann nur noch bestückt werden müssen. Einige hatten ja schon angefragt, das wäre machbar. Allerdings nur per Sammelbestellung und Vorkasse, ich kann und will keine Platinen machen lassen die dann hier herumliegen und mir ein Loch in die Geldbörse fressen. Nebenbei ist das auch Aufwand, den möchte ich nicht sinnlos betreiben. Und da sich 5 von 7 Anfragenden nicht wieder gemeldet haben sofern es um Kosten geht, bin ich da vorsichtig ;-)

Wie gesagt kann man die Platinen aufbauen wie man möchte, wichtig ist eben nur sich an die Schaltskizze zu halten.

Da einige Vorschläge zum Thema ‚gleiche Platine, andere Funktion‘ aufgeschlagen sind, werde ich zukünftig auch noch andere Software einsetzen, welche die gewünschten Straßenlaternen, Baustellenblitzer und auch eine andere Lichtfolge für die Hausbeleuchtung bedienen kann. Kommt alles, wenn die Zeit da ist ;-)

Hier noch ein paar Elektroniktipps bei Reichelt (Affiliate):

Entwicklungstool PICkit Serial Analyzer


PICkit 2 Starter Kit


PICkit 2 Debug Express


PIC 16F688-I/P PIC-Controller DIL-14


PIC 16F688-I/SL :: PIC-Controller SOIC-14


Lochrasterplatine, Hartpapier, 75x100mm


Silberdraht, Ø 0,6mm, Länge: 10M


Noch ein Video zum IrDiS Projekt

Habe in meinen Projektunterlagen (mittlerweile einige DVDs) noch zwei weitere Videos zu IrDiS gefunden. Sind auch eher noch aus der Anfangszeit, die Funktion ist aber schon recht zuverlässig. Laut Doku Beta 4.0, derzeit bin ich bei Beta 5.5. Die Version aus dem ersten Video habe ich seinerzeit leider nicht vermerkt, dürfte aber die 4.5 sein.

Im Clip dokumentiere ich eigentlich nur eine Sende-/Empfangsplatine. Diese sendet das Stoppsignal und empfängt gleichzeitig das Sendesignal des Fahrzeugs. Die leuchtende Diode ist der Sender, auf der gegenüberliegenden Seite sitzt der der Empfänger. Mitten auf der Platine befindet sich eine gelbe LED welche erlischt, wenn das vorbei fahrende Fahrzeug erkannt wurde und alle Daten korrekt angekommen sind. Ist leider nicht besonders lang zu sehen, die Videos sind, wie erwähnt, eigentlich so nur für meine eigene Projektdoku gedacht gewesen.

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube (öffnet in neuem Tab).

Das zweite Video erscheint auch noch in den nächsten Tagen, muss auch erst konvertiert werden. Leider kommt es, zumindest bei mir, in den Youtube Versionen immer wieder mal zu einem leichten ruckeln, welches im Original nicht vorhanden ist.