Hinter den PIC-Mikrocontrollern von Microchip gibt es inzwischen eine ganze Reihe unterschiedlicher Familien und Leistungsklassen. Bisher habe ich nur mit der PIC16-Familie gearbeitet und ich muss zugeben, ich bin kein sonderlich großer Fan dieser Controller.

Die Architektur der Chips ist schon etwas in die Jahre gekommen und nicht mehr zeitgemäß. Allerdings werden diese Bausteine immer noch weiterentwickelt bzw. weiter aufgebohrt. Für die PIC-Controller gibt es auch keinen freien C-Compiler, wobei die Architektur auch nicht gut für Hochsprachen geeignet ist. (Es gibt allerdings einen Compiler mit dem Namen CC5x, der für nicht kommerzielle Anwender kostenlos ist.)

Für die Assemblerprogrammierung gibt es eine kostenlose Entwicklungsumgebung direkt von Microchip mit dem Name "MPLab". Prinzipiell ist PIC Assembler recht einfach zu erlernen, weil der PIC nur relativ wenige Befehle kennt. Fehleranfällig bei der Programmierung ist allerdings, dass man sich bei der Entwicklung in Assembler selbst um das Umschalten der Speicherbänke kümmern muss.

Es gibt aber auch ein paar gute Seiten an den Chips: Sie sind recht robust, was die ESD-Empfindlichkeit und die externe Beschaltung angeht. Außerdem benötigen sie wenig Strom und lassen sich über einen weiten Spannungsbereich betreiben (<3V bis 5,5V). Für den Hobbybereich ist außerdem praktisch, dass viele Typen auch im DIL-Gehäuse lieferbar sind. Der Preis der Bausteine ist für den Hobbybereich auch okay.

Da ich mit den PICs privat nicht viel mache, habe ich hier auf der Seite nur einen einfachen RGB-Controller für 1W Luxeon LEDs als Applikationsbeispiel untergebracht. Ziel bei der Entwicklung war es mit möglichst einfachen Mitteln und Bauteilen (möglichst welche die noch im Schrank lagen...) eine Ansteuerung für drei 1W Luxeon LEDs zu bauen. Die Ansteuerung der LEDs sollte dabei so erfolgen, dass die einzelnen LEDs jeweils zeitversetzt gedimmt werden um so eine Farbmischung zu erzielen.

Das Ergebnis der Bastelei ist die folgende Platine:

Als Controllerkern wird ein PIC16F628 eingesetzt, der seinen Takt aus dem  internen Resonator erzeugt. Dieser PIC führt eine Pulsweitenmodulation mit 0 % bis 100% Dutycircle für alle drei LED-Farben zeitversetzt durch. Die Realisierung der PWM im Controller erfolgt per Software, weil der PIC keine 3 PWM-Einheiten besitzt. Die Software selbst ist in C geschrieben (CCS Compiler).

Die Ansteuerung der LEDs erfolgt über einen p-Kanal MOSFET vom Typ MTD2955E. Dieser MOSFET ist  ein bisschen überdimensioniert und wurde nur verwendet, weil er noch vorhanden war. Für die LED-Ansteuerung ist sonst jeder Logik-Level p-Kanal MOSFET geeignet, der mindestens 350mA Dauerstrom verträgt.

Die Strombegrenzung für jede LED erfolgt durch einen Widerstand im MOSFET-Zweig. Dieser Vorwiderstand ist jeweils so ausgelegt, dass bei einem Dutycircle von 100% ein Strom von 350mA durch die LED nicht überschritten wird.

Die Spannungsversorgung der Schaltung erfolgt direkt mit +5V, die stabilisiert sein müssen! Auf der Platine selbst ist auch noch einmal ein dicker Pufferelko untergebracht, der die Lastspitzen beim Durchschalten der MOSFETs abfängt.

Die Schalter auf der Platine haben im Augenblick keine Funktion. Ggf. können später darüber einmal unterschiedliche Farbprogramme gewählt werden.

Übrigens müssen die Luxeon-LEDs im Betrieb unbedingt auf ein Kühlblech oder etwas ähnliches montiert werden! Außerdem sollte man NICHT direkt in die LEDs gucken!

Schaltung mit LEDs in Betrieb

 

Weiterführende Literatur zum Thema PICs:

Das große PIC-Mikro-Handbuch
von Manfred & Anne König
ISBN: 3-7723-5995-7