Der PIC 12F675 Teil 1 – Grundsätzliches

Informationen zum Microchip PIC 12F675 

Wie schon erwähnt, arbeite ich sehr gerne mit den ‚kleinen‘ PICs, 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 PICs 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 (wenn der eine größere Last schalten muss) schreibe, kommen Anfragen zum ‚womit und wie?‘. Im Prinzip bediene ich mich aber immer der gleichen Schaltung, nur mit angepassten Bauteilen.

 

Die meisten Controller arbeiten irgendwo zwischen 2,5 und 5V. Pro Pin sind meist weniger als 20mA maximaler Strom möglich, induktive Lasten sind auch so eine Sache. Wird ein ganzer Port benutzt, kann es noch enger sein. Meist kann dieser, i. d. R. 8 Ausgänge, nur mit max. 40mA belastet werden, diese müssen auf die einzelnen Pins verteilt werden. 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 ein Verstärker 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 Einsetzen der folgenden Schaltungsform.

 

Ich nehme mal folgendes als gegeben an:

  • Betriebsspannung 12V DC.
  • zu versorgender 12V / 0,5A Motor, nur in eine Richtung laufend.
  • Ein beliebiger Mikrocontroller, der mit 5V versorgt wird, welche angenommen bereits vorhanden sind.
  • Maximaler Ausgangsstrom des Controller 20mA.
  • Ein NPN-Transistor mit B=100 und max. 1,5A Belastbarkeit (BD139 o. ä.).

Realisiert werden soll eine Schaltung, die bei einem ‚H‘-Pegel am Kontrollerausgang den Motor startet, bei ‚L‘ soll er eben einfach wieder stehen bleiben.
µC-Treiber--Im Bild die Prinzipschaltung.

+12V zum Motor, diese werden bei ‚H‘ am Controllerausgang (und somit der Basis des Tranistors) über den Motor nach GND durchgeschaltet – der Motor dreht sich. Die Freilaufdiode (rot) dient dazu, induzierte Spannungen vom Motor kurzzuschließen. Bei rein ohmschen Lasten wie LEDs oder ähnlichem braucht man sie nicht. Es genügt in diesem Falle übrigens eine Standard 1N400X oder ähnliches, bei höheren Strömen/Spannungen/Frequenzen kann etwas spezielleres erforderlich werden.

Besonderes Augenmerk liegt auf R1 bzw. 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 eben darum, das im ‚L‘-Zustand des Controllerausganges die Basis vom Transistor auf GND liegt damit er nicht durchschalten kann. Im Alltagsgebrauch bin ich mit 10-100k 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 aufgesteuert werden wie möglich. Man möchte ja die Energie optimal im Motor umsetzen, nicht in der Schaltung. Ausgehend von +5V am Controllerausgang bei „H“ und einer UBE von 0,7V stehen 4,3V an der Basis des Transitors zur Verfügung. Der Motor will 500mA an Strom, dies ist also das Minimum, was fließen soll. Es wäre allerdings Unsinn, jetzt den Stromfluss auf den Motorstrom zu begrenzen, die Spannung UCE würde ja auch wieder unnötig ansteigen und der Motor als Verbraucher bestimmt in diesem Fall sowieso den maximalen Strom. Um nun den minimalen Basisstrom zu errechnen, muss der Strom den der Controller liefern soll mit dem Verstärkungsfaktor multipliziert werden.

Soll also heißen:

Ich will min. 500mA für den Motor, besser ohne Begrenzung.

Der Transistor verstärkt x100, also müssen min. 5mA vom Controller kommen.

U=R*I -> die oben errechneten 4,3V / 5mA = 860 Ohm

Die ist also der maximale Wert, den der Widerstand R1 haben darf. Da aber der Transistor voll offen sein soll, muss der Basistrom noch höher sein. In diesem Falle spricht man im Allgemeinen vom Übersteuern, es wird mehr Basisstrom zugeführt, als für ein komplettes öffnen nötig wäre, z. B. +200%, also das Doppelte. Hier ist ein Blick ins Datenblatt des Transistors unerlässlich! Einmal für den Verstärkungsfaktor, zum anderen für den maximal zulässigen Basisstrom, ruinieren will man das Bauteil ja auch nicht. In der Praxis nehme ich immer einen Wert zwischen 220 und 470 Ohm, hat bisher funktioniert. Wichtig ist auch, dass der Transistor bei Übersteuerung langsamer wird. Das kann man aber getrost vernachlässigen, wenn man sich nicht im MHz Bereich bewegt. Bei allem, was das Auge erfassen kann allemal.

Ist (bei kleineren Strömen) der maximale Stromfluss erreicht, kann es sogar möglich sein, den Transistor ohne zusätzliche Kühlung zu betreiben. Bei den Universaltypen liegt die UCE übersteuert so um die 300mV. Fließen nun wirklich nur 500mA Motorstrom, sind das nach P=U*I 500mA*300mV= 150mW.

Dieser Schaltungstyp (Open Collector) eignet sich für sehr viele Anwendungen, in denen mit kleinem Steuersignal eine größere Last geschaltet werden soll. Man kann das ganze noch verbessern, indem statt des Transistors ein FET eingesetzt wird oder mit einer Brückenschaltung auch eine Umpolung ermöglicht oder ein Special-IC einsetzt 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, führen ein BD139 oder BC548 (bei kleinen Strömen), R1=10k, R2=220 Ohm und bei Motoren eine 1N4007 als Freilaufdiode eigentlich immer zum Ziel. Bezogen auf 5V am Controller und 12V Versorgungsspannung für die Last. Evtl. möchte ein Motor auch noch einen Kondensator an seinen Anschlüssen sehen. Sollen LEDs angesteuert werden, die entsprechenden Vorwiderstände nicht vergessen, wie überhaupt natürlich darauf achten, dass Bauteile immer innerhalb ihrer Spezifikationen eingesetzt werden. Und wie immer VORSICHT bei elektrischen Basteleien bzw. wenn man experimentiert! ;.-)

 

 

LEDBlinker Benachrichtigungen | Androidmag.de

Will man über das, was sich auf seinem Mobilgerät tut auch informiert sein, wenn man das Tablet oder Smartphone nicht aktiv in der Hand hat, kann die Status-LED hilfreich sein:

LEDBlinker Benachrichtigungen | Androidmag.de.

Die App ist zwar keine kostenlose Variante, mit 1,69€ ist der Preis aber auch nicht sooo hoch. Wer sich dafür interessiert, sollte den Artikel einmal lesen, ich finde die App schon recht nützlich. Zusätzlich gibt’s noch Möglichkeiten, auch Geräte ohne LED ihren Status mitteilen zu lassen.

 




Schnäppchen bei reichelt elektronik!

Stark reduzierte Restbestände bei Neuware



 

@Job: Stahlwerk im Dunkeln

Logo Modellbahnwelt Odenwald

MWO-Stahlhuetten-Impressionen_-_001 MWO-Stahlhuetten-Impressionen_-_002 MWO-Stahlhuetten-Impressionen_-_003 MWO-Stahlhuetten-Impressionen_-_004 MWO-Stahlhuetten-Impressionen_-_005
 

 

 

Da ich im Augenblick immer wieder von Fotos in der Dunkelheit der Halle fasziniert bin, muss ich diese natürlich hier festhalten :-) Dieses mal einfach ein paar Impressionen aus der HOAG, dem Stahlwerk auf der Oberhausener Anlage. Einfach so, wie sie mir in’s Auge gefallen sind. Leider nur mit der Handykamera, hab meist nichts anderes dabei, bin ja zum Arbeiten da, nicht zum Knippsen :mrgreen:


Erster Test der MWO Kulissen mit LED-Beleuchtung

kulissentest-mwoHeute haben wir einen ersten Test mit einer neuen LED-Kulissenbeleuchtung für die Oberhausener Anlage gestartet. Das Ergebnis ist durchaus positiv, wir haben wohl unsere Lichtquelle gefunden :-) Natürlich steckt noch einiges an Arbeit und Anpassung drin, das Ergebnis wird den Aufwand aber lohnen. Da kommen wieder einige hundert Meter Strippe auf uns zu, aber das sind wir ja gewohnt :mrgreen: Das Foto gibt die Lichtverhältnisse leider nur unzureichend wieder, hab‘ ich nur schnell während der Anschließerei geschossen.

 

 

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


LEDs dimmen – welche Techniken gibt es? – Elektronik Praxis

ledhellstromvergleich008LEDs sind aus dem heutigen Alltag nicht mehr wegzudenken. Egal ob zur Beleuchtung oder als Signalleuchte – überall sind sie zu finden.

Manchmal ist es aber notwendig, die Helligkeit an die Anforderungen anzupassen. Hier gibt es verschiedene Möglichkeiten, die bei ‚Elektronik Praxis‘ mal näher betrachtet werden:

LEDs dimmen – welche Techniken gibt es?.

Die Anpassung über den Strom halte ich für problematischer, eben weil eine kleine Änderung des Stromes schon eine starke Wirkung haben kann. Kommen dann noch Exemplarstreuungen hinzu, kann es zu sichtbaren Unterschieden kommen. Dafür ist eine getaktete Lösung meist etwas aufwändiger bei der Umsetzung, allerdings dank Mikrocontrollern & Co auch flexibler in der Anwendung.


Westfalia.de

Die Kirmes in der Modellbahnwelt Odenwald

Logonutzung mit freundlicher Genehmigung der 'Modellbahnwelt-Odenwald'!OK, nachdem mich nun einige Leute die ich mehr oder weniger (oder gar nicht :-) ) kenne angemailt und angerufen haben, was das in der Modellbahnwelt Odenwald denn für eine Kirmes ist, habe ich einfach mal bei Youtube online gestellt, was ich an Videomaterial habe. Ist leider nur ein schneller Quickshot mit dem Smartphone, welcher eigentlich nicht für die Öffentlichkeit gedacht war. Qualität eher unterirdisch aber auch hier habe ich im Moment nix besseres. Beim nächsten mal nehme ich die richtige Kamera mit!

 

 

Kleine weiße SMD LED gesucht? SMD-Leuchtdiode, Bauform G0603, super-weiß bei Reichelt!


Oder in blau? SMD-Leuchtdiode, Bauform G0603, super-blau


Natürlich hat Reichelt auch alle anderen Farben ;-)