Marco Di Feo – Blog Development, Hobby, Everything

21Feb/131

Drive Max7219/Max7221 with common anode displays

As you maybe already know, the max7219 and max7221 chips are serially interfaced (SPI) 8-bit LED drivers. These chips work perfect on 7 segment displays if they have common cathode pins, because they are designed for those display. If you have common cathode 7 segment display you get in touch with the benefit of these led drivers, because they handle the multiplexing in an easy way. They have built-in bcd decoder for easily displaying information and if you don't want to use the decoder you can byte-wise set every digit of your display. For example, if you want to display the number "0" without bcd decoding, you create the bit mask as follows:

7bit-segment

7bit-segment

The bit mask for number "0" is: 0x0111111
To display this number you have to address (e.g.) digit1 and send your "number byte" afterwards. That works perfectly.

28Mrz/1236

IRDioder – Ikea Dioder Hack mit Atmel und Infrarotempfaenger

Ikea Dioder Hack with IR

Ich bin letztens über eine nette Seite gestolpert (www.ikeahackers.net) auf der Leute ihre Ikea Hacks präsentieren und habe dort durch Zufall auch den Ikea Dioder entdeckt.
Der Ikea Dioder ist, wie der Name schon sagt ein LED Bauteil, das gerne als Raumbeleuchtung, bzw. Hintergrundbeleuchtung verwendet wird. Hierfür sind 4 LED Streifen im Paket enthalten die per Kabel an einen Verteiler angeschlossen werden. Dieser ist für den Strom zuständig. An diesen Verteiler ist auch die Steuereinheit zum bedienen angeschlossen.
Ich habe den Dioder selbst schon einige male bei Ikea gesehen, konnte mich aber nie durchringen einen zu kaufen. Der Stückpreis von 30€ ist auf Grund der Bauteile sicher durchaus berechtigt aber mich störte die Art, wie man den Dioder bedient. Jedes mal, wenn man die Farbe wechseln will muss man aufstehen und die Farbe von Hand einstellen und kann es sich danach wieder bequem machen. Das stört mich doch ziemlich. Es gibt aber auch durchaus Module die eine kleine Fernbedienung mit sich bringen, aber auch hier muss ich sagen, dass ich keine Lust darauf habe 5 Fernbedienungen auf dem Tisch liegen zu haben mit denen man seinen heimischen Elektrozoo fernsteuert. Darum habe ich mir schon vor Jahren eine Universalfernbedienung gekauft und alle Endgeräte auf eine Fernbedienung reduziert. Noch dazu kommt, dass man den Dioder nicht dimmen kann, was leider ein weiterer Minus Punkt ist.

Nach dem ich aber die eingangs erwähnte Seite besucht hatte und gesehen habe wie der Dioder intern aufgebaut ist kam mir die Idee einfach einen eigenen Microcontroller auf die Platine zu löten und ein zusätzliches Modul zu bauen, das es mir ermöglicht Signale von meiner Universalfernbedienung zu lesen und diese in entsprechende Signale umzuwandeln. Damit kann man die LED Leisten einfach und praktisch vom Sofa aus steuern. Da ich in der Vergangenheit schon Erfahrung mit RGB LEDs gesammelt hatte (siehe: Prolight RGB Led 3 Watt – Software PWM ) konnte ich den Code relativ simpel adaptieren und zusätzlich noch den Code für den IR Empfänger hinzufügen.

Folgende Dinge sind notwendig um den Umbau zu bewerkstelligen
- IKEA Dioder
- Lötkolben mit sehr dünner spitze
- Microcontroller von Atmel (Attiny44, da dieser von den Anschlusspins auch gut passt)
- Atmel Flasher (zum Flashen des Programms auf den Controller)
- Eine Ruhige Hand zum löten
- Seitenschneider (klein und spitz, z.B. von Knipex)
- Infrarot Modul

Hier ist ein Bild wie die Platine nach dem auseinander bauen der Steuereinheit aussieht.

Ikea Dioder Hardware with PIC Controller

Ikea Dioder Hardware with PIC Controller

Hier ging es nun darum den vorhandenen Microcontroller zu ersetzen. Da ich keinen Programmer für den bereits vorhandenen PIC Controller besitze musste dieser also weichen. Das entfernen ging relativ einfach, in dem ich die Beine des Microcontrollers oben am schwarzen Gehäuse ab geknipst habe (ein Bein nach dem anderen). Dann konnte man das, was vom Microcontroller übrig geblieben ist relativ einfach mit einer Pinzette entfernen. Im nächsten Schritt habe ich dann die Reste der übrig gebliebenen Beinchen einfach mit dem Lötkolben entfernt. Dann sah das ganze so aus und war bereit einen neuen Microcontroller zu bekommen.

 

Ikea Dioder Hardware without PIC Controller

Ikea Dioder Hardware without PIC Controller

Wie gesagt, der Attiny24/44/84 ist Pin kompatibel zum Pic und passt genau auf die freien Lötstellen. Somit spart man sich eine extra Platine und noch mehr Geraffel wie z.B. ein neues Gehäuse usw... Ich habe mich für den Atmel44 entschieden. Er hat 2 Timer mit PWM, läuft auf 8Mhz mit dem internen Taktgeber und hat 4kb Speicher. 4kb ist nicht die Welt, da aber mein fertig kompiliertes hex um die 3,5kb hat war das ausreichend. Im gleichen Zug habe ich noch diverse Bauteile entfernt, die ich nicht mehr benötige, wie z.B. den kleinen Poti, der vorher für die Farbänderung zuständig war, in dem er die Spannung an einem Anschlusspin des Pic Microcontrollers verändert hat. Mit aufgelötetem Attiny44 sieht das ganze dann so aus:

Ikea Dioder Board wired to my flasher

Ikea Dioder Board wired to my flasher

Ikea Dioder Board with Attiny45 - zoom

Ikea Dioder Board with Attiny45 - zoom

Hier noch der Infrarot Sensor, den ich mit einer handelsüblichen IR Diode (TSOP1736) gebaut habe

IRDA for Ikea Dioder

IRDA for Ikea Dioder

Nach dem alle Bauteile verdrahtet waren konnte ich mich an das Programm machen. Hierfür habe ich im Vorfeld das Ikea Dioder Board mit einem Atmega8 verbunden, weil der Mega8 glücklicherweise über UART verfügt. Somit konnte ich auslesen ob die Elektronik funktioniert. Als UART lief habe ich die IRMP Bibliothek von Mikrokontroller.net heruntergeladen, die auch in der neusten Version mit dem Attiny84 (und somit auch Attiny44) funktioniert. Infrarot war dank der hervorragenden Bibliothek kein Problem und das bereits erwähnte PWM für die RGB Steuerung anzuflanschen ebenfalls nicht. Lediglich beim portieren vom Atmega8 auf den kleinen Attiny44 gab es etwas Probleme, da sich z.B. die Anzahl der Timer unterscheidet.

Wie erwähnt habe ich einen der Taster entfernt. Dort wird der IR Sensor angeschlossen (Bild 3, links oben). Dieser Anschluss führt zum PinB1 auf dem Attiny. Die restlichen Portpins liegen relativ günstig, so dass z.B. die RGB Ansteuerung auf die Pins PinA0, PinA1 und PinA2 gelegt sind. Den restlichen Pins benötige ich derzeit nicht, somit konnte ich auch (Bild 4) die Widerstände R1-R4 komplett entfernen. Nach dem alles getestet wurde kann alles wieder in das alte Gehäuse gebaut werden, das nun zwar ohne Funktion ist, aber seinen Zweck super erfüllt.

Ikea Dioder with wired IRDA

Ikea Dioder with wired IRDA

Nun muss die Infrarot Empfänger Platine nur noch etwas abgeschirmt werden und dann ist es bereit verbaut zu werden.

Die restlichen Bilder gibt es in der Galerie:

 

 

20Dez/100

Prolight RGB Led 3 Watt – Software PWM

Es war mal wieder an der Zeit etwas neues zu basteln. Leider ist die Küchenbeleuchtung immer noch nicht fertig, was lediglich daran scheitert, dass alles noch zusammen gesteckt werden muss und ich noch ein paar kleine Softwarebugs habe :) .

Egal, trotzdem muss was neues her.

12Apr/100

Küchenbeleuchtung Teil 8 – Die Platine Ätzen

So, damit das Projekt, dass sich nun schon über Monate zieht langsam zu einem sauberen Ende kommt habe ich eine Platine gelayoutet und geätzt.  Gelayoutet wurde alles mit der Freewareversion von Eagle, die es zum Download mit ein paar Einschränkungen auf der Herstellerseite gibt. Geätzt wurde es mit der Tonertransfermethode. Ich will hier nich allzusehr darauf eingehen, außer dass es mit die einfachste und kostengünstigste Methode für den kleinen Hobbyätzer ist. Natriumpersulfat kann man auch frei im Handel erwerben und bietet deshalb eine sehr gute Alternative zu anderen Ätzverfahren (Belichtung, etc...). Das ganze kann man dann in einem Wasserbad auf 40 °C vor sich hin ätzen lassen und hat nach ca. 30 Minuten eine fertige Platine. Wer es etwas komfortabler haben will kann dafür natürlich eine teure Ätzanlage (~120€) kaufen und es damit erledigen, aber da ich sowieso nur alle 3-4 Monate ätze kam das für mich nicht in Frage.

Hier nun ein paar Bilder von der Platine und ihrem Werdegang

Hier die Kupferplatine, wie man sie im Laden kaufen kann
Kupferplatine mit aufgebügeltem Tonerabdruck. Hier muss man nach dem Aufbügeln sehr vorsichtig sein, damit alle Leitungen erhalten bleiben. Legt man die Platine ins Ätzbad, dann wird nur das freie Kupfer und nicht der Toner weggeätzt.

Hier die Platine, frisch aus dem Ätzbad. Man sieht dass das Kupfer dem Epoxyd gewichen ist und alles eigentlich ganz gut aussieht ;)

Hier die gereinigte Platine, nachdem ich den Toner mit Nagellackentferner entfernt habe. Der Nagellackentfernen tut seinen Dienst am Besten, zumimndest besser als der Spiritus, den ich zum reinigen der Platine vor dem Aufbügeln nehme.

Hier die fertrige Platine. Geschnitten, bestückt und fertig gelötet.

Dann kann es langsam losgehen mit zusammenbauen, darüber aber mehr im nächsten und hoffentlich letzten Teil

2Nov/090

Küchenbeleuchtung Teil 6 – Die zweite Acrylplatte

Es ist schon wieder ein paar Tage her, seit dem ich geschrieben habe, aber mittlerweile habe ich die Acrylplatte Nr. 2 gekauft. 120x30x0,6 cm für knappe 28€. Somit habe ich alles komplett. Das bohren der ingesamt 48 Löcher, sowie das einsetzen der LEDs und die Verdrahtung haben gut 2 Stunden gedauert. Danach saß aber alles. Dabei habe ich festgestellt, dass der örtliche Elektrohandel in dem ich meine Elektrosachen kaufe schweine Teuer ist. Ich brauchte nämlich für die Verkabelung starren Draht, der mich im Baumarkt weniger als die Hälfte gekostet hat. Also, falls jemand mal auf die Idee kommen sollte Draht oder sowas zu kaufen sollte sich mal im Baumarkt umsehen. Aber ich bin ja nicht hier um Rezensionen auszustellen, sondern um den Fortschritt meines Projekts zu dokumentieren. Wie gesagt, alles gebohrt, verbaut, alles paletti. Mittlerweile habe ich die lange Acrylplatte auch schon an die eine Schrankwand geschraubt und sie mal leuchten lassen. Doof nur, dass auf der Oberseite dicke Fingerpatscher sind, aber die werde ich zum Schluss noch beseitigen, wenn alles fertig ist. :)
Hier mal ein paar Bilder, wie das ganze im Moment aussieht

IMG_1649-w600-h600

IMG_1646-w600-h600

IMG_1645-w600-h600

Das Coole ist, dass die Beleuchtung fast komplett unter dem Schrank verschwindet und man sie nicht sieht, wenn man vor der Küche steht. Die LEDs könnten noch einen Tick heller leuchten, aber ich muss mal sehen, wie sich das darstellt, wenn der Controller angeschlossen ist und die Modulation fertig ist. Evtl. werde ich einen kleinere Widerstand nehmen, damit die LEDs heller leuchten. Trotz allem bin ich mit dem Ergebnis sehr zufrieden. Wenn die Deckenstrahler eingebaut sind, dann wird das sicher auch noch ein kleines Highlight sein :D .

23Okt/090

Küchenbeleuchtung Teil 4 – 3mm LEDs Einbau

Sooo, was lange währt wird endlich gut. Meine LEDs kamen endlich. Leider habe ich bei der E-Bay Auktion übersehen, dass die nicht aus Deutschland kommen, sondern aus Thailand. D.h. warten bis der Arzt, bzw. der Briefträger kommt. Aber nun sind sie endlich alle da, sogar mit Widerständen für 12V. Bestellt habe ich 100 Stück für knappe 13€. D.h. 13 Cent Pro LED+12V Vorwiderstand, das ist noch relativ erträglich.

LEDs

Da die Acryl Scheibe ja schon gebohrt war habe ich mich gleich dran gemacht die LEDs einzusetzen und zu verkabeln. Wie man ganz gut sieht habe ich ein 4x4 Gitter gebaut. D.h. alle Kathoden und alle Anoden einer LED Reihe habe ich im 90° Winkel zueinander verbunden, also 4 horizontal und 4 vertikale Verbindungen. Auf dem Bild sieht man noch die Demoverkabelung.LEDs verbaut im Gitterverbund ;)

Die Verkabelung ist nun so, dass wenn z.B. Strom am Schwarzen Kabel ganz links und am Grünen Kabel rechts angelegt wird (also natürlich einmal Masse und einmal V+), dass die zweite LED von links unten leuchten wird. Somit besteht ganz einfach die Möglichkeit jede LED einzeln anzusteuern. Da kommt mein MAX7219 ins Spiel, den ich schon in einem anderen Eintrag erwähnt habe. Dieser kümmert sich um die Ansteuerung der richtigen Leitungen, damit die gewünschte LED leuchtet.

Ich habe natürlich mal testweise Strom angehängt um zu zeigen, wie es aussehen wird, wenn es fertig ist.

LED Platte

IMG_1630-w600-h600