Das Arduino und die LED Das Arduino-Board ist eine Platine, auf welche ein Mikrocontroller, in diesem Fall ein ATmega328 (8-bit), aufgesteckt ist. Betreiben kann man es mit einem USB-Anschluss über den Computer oder einen Adapter für die Steckdose und einen Netzsteckeranschluss. Es verfügt außerdem über 14 digitale Pins, welche entweder als Eingänge oder als Ausgänge benutzt werden können. Damit können LED’s, Motoren oder andere elektronische Bauteile in den zwei Zuständen An (HIGH) und Aus (LOW) betrieben werden. Über 6 weitere Eingänge können analoge Signale vom Arduino verwendet werden. 3 Masseanschlüsse (GND), ein 5 Voltanschluss und 3,3 Volt-Pin vervollkommnen das Board. Die Abkürzung LED steht für das englische Wort ‚light-emitting diode‘, was so viel wie Leuchtdiode bedeutet. Sie besitzt alle elektrischen Eigenschaften einer Diode, weshalb es wichtig ist, sie immer mit einem Vorwiderstand zu betreiben und auf die richtige Polung zu achten. Wenn eine LED in Sperrrichtung betrieben wird, fließt kein elektrischer Strom und sie wirkt wie ein offener Schalter. Nur in Durchlassrichtung fließt ein elektrischer Strom, was man daran erkennt, dass die Leuchtdiode leuchtet. Bei allen werksneuen LED’s erkennt man den Minuspol (Kathode) daran, dass er kürzer ist. Außerdem ist das Gehäuse an der Kathodenseite abgeflacht. Wenn man in eine LED hinein schaut, so erkennt man den Reflektor auf dem sich der Kristall befindet sehr gut durch seine Größe. Er dient, neben dem Zweck als Reflektor, um das nach allen Seiten abgestrahlte Licht in die gewünschte Richtung zu lenken, auch als Kathode und zur Wärmeableitung, da nicht die vollständige elektrische Energie in Lichtenergie umgewandelt wird. Die Farbe der Leuchtdiode hängt von der Zusammensetzung des verbauten Leuchtkristalles ab. So gibt es beispielsweise Kristalle aus Aluminiumgalliumarsenid, welche ein rotes bis infrarotes Licht aussenden, oder Galliumphosphid, welche grünes Licht aussenden. Der Widerstand Widerstände besitzen ein breites Einsatzfeld in elektrischen Schaltungen. So werden sie unter anderem als Vorwiderstände für zum Beispiel LED’s verwendet, um den bestimmten elektrischen Strom, den eine Leuchtdiode benötigt, einzustellen und sie vor Überlastung und damit der Zerstörung zu bewahren. Auch kann man mit so genannten Pullup- oder PulldownWiderständen einen definierten Pegel für nicht beschaltete oder unverbundene Eingänge eines Mikrocontrollers erzeugen. Dass sich die elektrische Energie des elektrischen Stromes bei hohen Widerständen in Wärmeenergie umwandelt nutzt man zum Beispiel bei Heizwendeln oder Lötkolben. Einzelne Widerstände kann man nach ihrem Einsatzzweck, ihrer Genauigkeit (Toleranz) oder ihres Aufbaues einteilen. Die bekannteste Widerstandsart besteht aus einem zylindrischen Keramikträger, welcher mit Widerstandsmaterial beschichtet ist. Seine Anschlüsse befinden sich in Form von herausragenden Drähten an der Boden- und Deckelfläche und werden oft in mit Leiterbahnen beschichteten Platinen eingelötet. Die Größe des elektrischen Widerstandes bei Widerständen ist entweder als Dezimalzahl aufgedruckt oder ist anhand eines aufgedruckten Farbcodes erkennbar: Erklären! Grundlagen zur Programmierumgebung Anhand von diesem Fenster erkennt man die wichtigsten Grundlagen für den Programmierstart. Arduino benennt automatisch die einzelnen Sketches, so nennt man einzelne Programme, nach dem aktuellen Datum und einem fortlaufenden Buchstaben. Diesen Namen kann man beim speichern oder später ändern, wobei man darauf achten muss, dass der Ordner, in dem das Sketch gespeichert ist, den selben Namen besitzen muss, weil der Compiler das Programm sonst nicht erkennt. Unter dem Menüpunkt Datei sind verschieden Funktionen zum Verwalten, Bearbeiten und Hochladen der Sketches untergebracht. Die Befehle zum prüfen, uploaden, neu erstellen, öffnen und speichern eines Sketches findet man als Icons direkt Hauptfenster. Unter dem Menüpunkt Bearbeiten finden sich alle benötigten Funktionen zum Bearbeiten eines Sketch. So zum Beispiel Kopieren, Ausschneiden und Einfügen von Text oder dem Kommentiern des Programmiertextes. Unter Sketch sind Befehle zum Überprüfen der Programmiersemantik, dem Benutzen von Librarys und dem Kompilieren des Sketches aufgelistet. Bei Tools wählt man das verwendete Arduinoboard, den Port auf dem man das fertige Sketch lädt und den Serial Monitor aus, auf welchem man Werte vom laufenden Board anzeigen kann um zum Beispiel die Ausgänge überwachen zu können. Die Hilfe kann einem Hinweise zum Start, zur Fehlersuche oder zur Programmumgebung geben. Der Programmiertext wird in das weiße Feld im mittleren Teil des Fensters geschrieben. In der weißen Aussparung am oberen Rand des Schreibfeldes kann man den aktuellen Namen des Sketches lesen, wobei das Zeichen § symbolisiert, dass man eine nicht gespeicherte Veränderung im Programmtext vorgenommen hat. Beim Compilieren werden Syntaxfehler, die der Compiler erkennt mit Zeile und Fehlerart im schwarzen Feld am unteren Rand des Fensters angezeigt. Diese werden zusätzlich im fortlaufenden Programmtext farbig hervorgehoben. Pfeile mit Zahlen Grundaufbau eines Sketch Ein Sketch, so werden Programmtexte für Arduinos genannt, bestehen hauptsächlich aus drei Abschnitten. Dem Vereinbarungsteil für Variablen, dem Setupteil, welcher einmalig bei Programmstart ausgeführt wird, und dem Schleifenteil, welcher immer wieder ausgeführt wird. z.B: int green = 9; Im Variablenteil werden für das Programm nötige Variablen festgelegt. So wird im Beispiel dem Variablennamen green der Wert neun zugewiesen. Auch wird festgelegt, dass der Wert der Variable nur vom Zahlentyp Integer sein kann. Wenn man nun im Programmtext das Wort green verwendet, so setzt der Arduino, zum Beispiel bei Berechnungen, immer den Wert neun ein. void setup () { pinMode (green, OUTPUT); digitalWrite (green, LOW); } Mit diesem ersten Teil des Programmteiles werden Befehle festgelegt, die immer nur bei Programmstart ablaufen. Der Pin mit der Bezeichnung green wird als Output deklariert und ihm wird der Wert Low zugewiesen. Weil man immer einen festgelegten Wert für einen Pin benötigt, wird dieser als Aus (Low) festgelegt. Dies geschieht eigentlich automatisch, hilft dem Programmierer aber zur bessern Übersicht. void loop () { digitalWrite (green, HIGH); delay (500); digitalWrite (green, LOW); delay (500); } Im anschließenden Schleifenteil befinden sich die Befehle, welche immer wieder ausgeführt werden. So wird im Beispiel eine LED mit Hilfe des vorhin festgelegten Ausgangpins an- und ausgeschaltet. Der Befehl digitalWrite gibt bei einem digitalen Ausgang den Zustand an und bestimmt damit, ob dieser an- oder ausgeschalten ist. Durch HIGH wird der Ausgang auf An gesetzt, der Strom fließt und die LED leuchtet, bis sie eine halbe Sekunde später wieder ausgeschalten wird. Die sich dazwischen befindende Standartfunktion delay hält das Programm solange an, bis die Zeit in Klammern, welche in Millisekunden angeben wird, verstrichen ist. Erst danach können darauffolgende Befehle ausgeführt werden. Da es bei diesem Beispielsketch keine Abbruchbedingung gibt, wiederholt sich das Blinken der LED immer wieder.