Eine besonders wichtige Sache beim Programmieren sind Variablen. Du kennst sie bestimmt schon aus dem Matheunterricht. Wenn man da sagt x=10, dann bedeutet das, dass überall, wo x steht, eigentlich 10 steht.
Variablen können wir uns als kleine Boxen oder Container vorstellen, in denen wir Informationen speichern können.
Variablennamen kann man sich selbst aussuchen. Eine Variable könnte also Tim, Lisa oder DFB heißen. Es macht aber Sinn, einen Namen zu wählen, der uns verrät, was wir mit der Variable eigentlich vorhaben.
Lass uns noch mal das Programm aus dem letzten Beispiel ansehen:
void setup(){ pinMode(9, OUTPUT); } void loop(){ digitalWrite(9, HIGH); delay(200); digitalWrite(9, LOW); delay(200); }
Hier hatten wir die LED am Pin 9 angeschlossen. Deshalb steht hier in jedem Befehl eine 9. Was passiert, wenn wir die LED jetzt aber am Pin 8 anschließen?
Wir müssten den Pin jetzt in jedem Befehl ändern, oder?
void setup(){ pinMode(8, OUTPUT); } void loop(){ digitalWrite(8, HIGH); delay(200); digitalWrite(8, LOW); delay(200); }
Bei so einem einfachen Programm ist das noch kein Problem, aber wenn das Programm länger wird, könnte es ja schon sein, dass wir da eine Veränderung übersehen. Deshalb ist es besser, hier eine Variable zu benutzen.
Wir wollen mit dieser Variable den Pin der LED festlegen, also lass uns die Variable einfach ledPin nennen. Variablen schreibt man immer klein und wenn sie aus mehreren Worten bestehen, schreibt man die Worte in der Mitte immer groß. Das macht das Lesen einfacher, denn Variablennamen dürfen keine Leerzeichen enthalten.
So legt man eine Variable an:
int ledPin = 8;
Das Wort int ist die Kurzform von Integer. Das kommt aus dem Englischen und bedeutet Ganzzahl. Ganzzahlen sind zum Beispiel 1, 2, 3, 4, … Na und acht ist natürlich auch eine ganze Zahl. Wenn wir eine Variable anlegen, müssen wir Arduino sagen, von welchem Typ unsere Variable ist. Unsere Variable ledPin ist jetzt vom Typ int. Durch das Gleichheitszeichen weisen wir auch gleich einen Wert zu, nämlich 8.
Jetzt haben wir also eine ganzzahlige Variable, die ledPin heißt und gleich acht ist. Überall, wo wir die Variable jetzt einsetzen, steht da eigentlich acht.
int ledPin = 8; void setup(){ pinMode(ledPin, OUTPUT); } void loop(){ digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); delay(200); }
Und jetzt stecken wir das Kabel wieder zurück in den Pin 9.
Wie muss sich das Programm jetzt ändern? Die Lösung findest du wieder hier unten, aber versuche es erstmal allein.
int ledPin = 9; void setup(){ pinMode(ledPin, OUTPUT); } void loop(){ digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); delay(200); }
Pingback: Tic-Tac-Toe mit dem Arduino selber bauen - reichelt Magazin
Pingback: Tic-Tac-Toe mit dem Arduino – reichelt Magazin
Hi Andreas,
tolles Tutorial! Ich bin auch Anfänger und versuche einen bestehenden Code zu verstehen, wobei dein Tutorial sehr hilfreich ist. Trotzdem eine Frage: Würde sich an dieser Stelle statt „int“ nicht „#define“ besser anbieten, oder ist mir da ein Fehler unterlaufen??
Hi Patrick, gute Frage. Also #define kann man auch nehmen, am besten wäre allerdings const int . Ich hab in meinen Beispielen der Einfachheit halber aber normalerweise int . Liebe Grüße Stefan
Hallo, weshalb steht „int ledPin = 8;“ nicht im void setup, sondern davor ?
FG
Andreas
Hallo Andreas,
sehr gute Frage. In vielen Programmiersprachen – so auch in C – haben Variablen Geltungsbereiche. Würde man eine Variable innerhalb von void setup() anlegen, könnte man sie nur in dieser Methode verwenden. Sie »gilt« dann also nur im Setup. Im Loop könnte man also nicht darauf zugreifen. Deshalb deklariert man sie außerhalb dieser Methoden als so genannte globale Variable. Ich hoffe, das hilft dir erstmal.
Liebe Grüße
Stefan
Juhu, habs kapiert….
es war die pinbelegung hab falsch gezählt beim anschliessen….
Ja, das kann schnell passieren. Aber cool, dass Du den Fehler gefunden hast. Liebe Grüße :-)
Ich bin wirklich Anfänger (65 Jahre, Lehrer, mäßige Kenntnisse in Elektronik) im Mikrokontrollerprogrammieren, habe diese Lernseite durch surfen entdeckt und möchte eine Anerkennung festhalten. Ein anderer höchst bekannter Verlag legt zu einem Starterkitt ein Handbuch (vielleicht im hoch Sommer geschrieben) bei, das nicht im geringsten dieser Anleitung hier an Präzision und pädagogischem Sachverstand nahe kommt. Die Kleinheiten, Kürze, Genauigkeit und Übersichtlichkeit sind es, die hier zur Anwendung kommen. Zusätzlich kostet das Starterkitt hier nur die Hälfte. Habe ich leider alles erst später bemerkt. Wahrscheinlich weil Franz der häufigste Vorname in Österreich ist.
FG an Alle
Hallo Alois,
vielen Dank für dieses nette Feedback. Es freut mich wirklich sehr, dass Dir die Seite gefällt.
Liebe Grüße nach Österreich,
Stefan