In diesem Projekt wird ein Weihnachtsstern als Aufsteckplatine (Shield) bestehend aus 20 LEDs für den Arduino realisiert. Es können beliebige Leuchtmuster komfortabel mit einem PC-Tool generiert und in die Arduino-Firmware integriert werden. Der Hardwareaufbau erfolgt auf einer Standard-Lochrasterplatine, sodass keine Platine geätzt werden muss.
20 LEDs, 20 Widerstände mit je 1,5 kOhm, Stiftleisten RM 2,54mm (2x 8-polig und 2x 6-polig), Lochrasterplatine mit Lötpunkten.
Eine Aufbauskizze ist hier zu sehen.
Die Vorwiderstände für jede LED werden auf der Platinenrückseite montiert, sodass auf der Platinenoberseite nur die 20 LEDs zu sehen sind. Zur Montage der Stiftleisten sollte am besten folgendermaßen vorgegangen werden:
- Zuerst die Stiftleisten in die Buchsen auf der Arduino-Platine einstecken.
- Die Lochrasterplatine auf die Stiftleisten mit etwas Abstand aufsetzen, sodass diese später noch auf der Platinenunterseite verlötet werden können. Hierbei müssen manche Stiftleisten leicht schräg aufgedrückt werden, da der Abstand der Buchsenleisten auf der Arduino-Platine leider nicht dem Standard von 2,54 mm entspricht.
- Wenn nun die Arduino-Platine auf die Seite gedreht wird, können Sie Stiftleisten mit den Lötpunkten auf der Lochrasterplatine verlötet werden.
Auf den Fotos kann die aufgebaute Platine von oben, unten sowie seitlich angesehen werden.



Für die Herstellung des abgebildeten kleinen Projekts mit blinkenden Leuchtdioden in Glückssymbolen benötigt man für die Vorderseite etwas farbiges Papier aus dem Schreibwarenladen oder Bastlergeschäft.
Mit einem Schreibprogramm erfolgt die Beschriftung, passend zu einer 160x100 mm großen Platine mit Lötpunkten.
2. Programmierung der Arduino Platine
In der Entwicklungsumgebung Arduino wird der Sketch star.pde geladen, kompiliert und per Upload-Button auf den Arduino übertragen.
Hier sind bereits einige Sequenzen mit Leuchtmustern enthalten. Diese können nach Belieben geändert werden, z.B. mit dem beiliegenden PC-Tool.
3. PC-Tool zur Generierung von Leuchtmusterabläufen
Um komfortabel Leuchtmuster generieren zu können, wurde ein PC-Tool mit Visual C++ 2005 entworfen. Das Tool inkl. komplettem Quellcode ist in der Downloaddatei "pc_tool.zip" enthalten.
Eine ausführbare EXE-Datei ist im Unterverzeichnis release zu finden. Die beiden Dateien on.gif und off.gif werden zur Darstellung der LEDs benötigt. Wenn eine Änderung des Quellcodes gewünscht ist, kann die Projektdatei xmasstar.vcproj im Unterverzeichnis xmasstar geöffnet werden. Die Bedienung des Tools ist weitgehend selbsterklärend.
Im oberen LED-Stern "Eingabe" kann ein gewünschtes Leuchtmuster durch Klick auf die LEDs zusammengestellt werden sowie die gewünschte Anzeigedauer im gleichnamigen Feld in Millisekunden angegeben werden. Durch Klick auf den Button "Muster am Ende anhängen" wird das erstellte Muster an die Sequenz rechts in der Listbox hinten angehängt.
Mit den anderen Buttons kann das Muster entsprechend an anderer Stelle eingefügt werden oder auch gelöscht werden. Das Muster in der selektierten Zeile der Listbox wird im unteren LED-Stern "Ausgabe" dargestellt.
Durch Klick auf den Button "Simulation" kann hier die erstellte Sequenz komplett abgespielt werden.
Mit den Buttons "Speichern" sowie "Laden" können die Sequenzen in Textdateien gesichert bzw. geladen werden.
Das Datenformat sieht folgendermaßen aus:
Hexwert für die LEDs 1-6 (z.B. 0x3F), Hexwert für die LEDs 7-14 (z.B. 0xFF), Hexwert für die LEDs 15-20 (z.B. 0x3F), Dezimalwert für die Anzeigedauer in Millisekunden (z.B. 250), am Ende ein Zeilenumbruch.
Um die Leuchtmustersequenz in das Arduino-Programm einbinden zu können, muss es mit dem Button "Speichern" zuerst als Textdatei gespeichert werden. Die Textdatei kann dann mit einem Texteditor (z.B. Notepad) geöffnet werden und der Inhalt über die Zwischenablage in das Array im Arduino-Programm eingefügt werden. Als Beispiel ist im Arduino-Programm das Array patternDemo zu finden, zwischen den Kommentarzeilen "Start" und "Ende" muss die Leuchtmustersequenz eingefügt werden.
4. Arduino Quellcode und Funktionsprinzip
Der Code für den ATmega168 auf der Arduino Platine wurde mit der Version arduino-0021 erstellt. Das komplette Projekt ist in der Downloaddatei "star" enthalten (Name der Sketchdatei ist star.pde).
In der Funktion setup werden die Portpins für die LEDs als Ausgang konfiguriert und alle LEDs ausgeschaltet.
In der Hauptschleife loop kann durch Aufruf der Funktion displayPatternWithDuration eine in einem Array vorhandene Leuchtmustersequenz abgearbeitet werden. Als Beispiel soll ein Array namens patternDemo eingebunden werden, dies sieht folgendermaßen aus:
struct STR_PATTERN patternDemo[] PROGMEM =
{
// Start: ab der nächsten Zeile beginnt die Leuchtmustersequenz, die mit dem PC-Tool erstellt und aus der Textdatei kopiert wurde
0x01,0x00,0x00,100,
0x03,0x00,0x00,100,
// Ende: hier endet die Leuchtmustersequenz, die mit dem PC-Tool erstellt wurde
// die nächste Zeile wird als Endekennung des Arrays benötigt und darf nicht gelöscht werden
0xFF,0xFF,0xFF,0 // end marker, do not remove
};
Der Aufruf in der Hauptschleife loop sieht dann wie folgt aus:
displayPatternWithDuration(patternDemo);
Das Schlüsselwort PROGMEM bewirkt, dass das Array im Programm-Flashspeicher des ATmega168 abgelegt wird. Somit können auch mehrere große Arrays angelegt werden, ohne dass es Speicherplatz-Problemen mit dem wesentlich kleineren SRAM kommt.
Um manuell ein Leuchtmuster für die 20 LEDs auszugeben, kann die Funktion ledPattern verwendet, diese erwartet als Parameter die 3 Hexwerte für die LED-Gruppen.
5. Quellen/Links
Downloads:
patterns
pc_tool
star
schaltplan
Video
Die passende Ergänzung zu diesem Artikel:
| |  | Lernpaket Arduino Lieferumfang: Platine, Steckboard, ATmega168-Mikrocontroller, 20 Bauteile, CD-ROM, 200-seitiges Handbuch ISBN 978-3-645-65007-6 Versandkostenfrei* direkt beim Verlag bestellen!
79,95 € 
|