Arduino Variablen und Bedingungen

Arduino Variablen und Bedingungen Titelbild

Folgende Teile braucht ihr für die Anleitung

Arduino Mini Starterkit Produktbild

Arduino Mini Starterkit | 21.95€

Arduino Starterkit Produktbild

Arduino Starterkit | 49.95€

5.4 Variablen und Bedingungen

Variablen

Eine Variable kannst du dir wie eine Kiste vorstellen, in die du Sachen hinein packen kannst. Du kannst dir aussuchen, wie du diese Kiste nennen möchtest und du kannst dir auch aussuchen, was du in deine Kiste packen möchtest. So kannst du zum Beispiel den Spitznamen deines Mathelehrers in einer Variable speichern:

String nameLehrer = "Dr. Frankenzahl";

Oder die Anzahl der Wochen, die die Milchtüte in deinem Kühlschrank schon abgelaufen ist:

int milchAbgelaufen = 142;

Jetzt höre ich schon die Zwischenrufe: „Das ist ja wie Bruchrechnung! Das braucht man nie wieder im Leben“. Das stimmt aber nicht. Erstens: Wenn ihr 24 Personen seid, aber nur eine Pizza habt, dann könnt ihr nur mit Bruchrechnung herausfinden, dass jeder von euch 1/24 Pizza bekommt, oder eben 3/72, je nachdem wie viel Spaß ihr beim Kürzen und Erweitern habt. Und zweitens: Das Tolle ist, dass unsere Variable und ihr Inhalt jetzt gespeichert werden. Wir können also auch später im Programm darauf zugreifen. Wichtig ist, dass wir darauf achten, was wir in der Variablen speichern wollen, denn der Arduino muss genau wissen, ob es sich dabei um einen Text, auch String genannt, oder eine Zahl, auch Integer oder int genannt, handelt. Denn natürlich können mit einer Zahl ganz andere Sachen gemacht werden, als mit einem Wort oder einem Satz. Deswegen benutzen wir folgendes Schema: Type NameDerVariable = "Wert der Variable";. Hört sich komplizierter an, als es ist!





Öffne erneut ein leeres Programm und passe den Code wie folgt an:

String meinName = "JP-Krake";
void setup() {
  // Startet Serielle Komunikation
  Serial.begin(9600);
}
void loop() {  
  Serial.println("Hi " +meinName);
  delay(1000);
}

Du kannst die Variable meinName natürlich mit deinem eigenen Namen füllen. Wenn du dieses Programm wie gewohnt speicherst und ausführst, wird dir der Text: "Hallo JP-Krake" ausgegeben. In der ersten Zeile erstellst du die Variable und füllst sie mit Inhalt. In der neunten Zeile gibst du wie schon im ersten Programm einen Text aus: "Hallo" - und hinter einem Pluszeichen fügst du jetzt als Platzhalter die Variable ein, die dann am Ende das ausgeben wird, was du in ihr gespeichert hast. Das Pluszeichen verbindet die beiden Texte miteinander. Zum Ansehen der Ausgabe muss du natürlich erst den seriellen Monitor öffnen. Das geht am besten mit dem -Button.

Jetzt bist du dran! Kannst du ein Programm schreiben, das deinen Namen, dein tollstes Hobby und dein Lieblingsessen ausgeben kann? P.S.: Denk daran, dass es verschiedene Typen für Variablen gibt!

Funktionen

Das Auto, die Solarzelle, der Computer. Alles nützliche Erfindungen, die unser aller Alltag erleichtern. Wir können sie einfach benutzen und müssen uns wenig Gedanken über die Funktionsweise dieser Geräte machen. Ich meine, so einen Motor könnte ich euch noch erklären. Mit seinen Zylindern und den vier Takten und so. Aber bei einer Halbleiterplatte, auf die Photonen einer brennenden, gigantischen Gaskugel einbrettern und dadurch Strom erzeugen, hört auch mein Latein auf.

Ungefähr nach diesem Prinzip funktionieren auch Funktionen. Irgendeine Person in der Menschheitsgeschichte hatte mal ein Problem beim Programmieren. Dieses Problem löste dieser Mensch und stellte es der Allgemeinheit zur Verfügung.

Aber so, wie wir eine Solarzelle für unsere Stromproduktion nutzen können, ohne ihre Funktionsweise zu verstehen, können wir auch Funktionen für uns nutzen, ohne verstehen zu müssen, wie diese funktionieren. Eine Funktion besteht aus dem Namen der Funktion und aus sogenannten Parametern, die man der Funktion zum Arbeiten übergeben kann. Ein Beispiel für eine Funktion ist die Serial.println();-Funktion, die du ja nun auch schon öfter benutzt hast.

Serial.println("Hallo");

Serial.println(); ist also der Name der Funktion. Zwischen die Klammern () werden die sogenannten Parameter geschrieben. Die Parameter sind die Dinge, die eine Funktion zum Arbeiten benötigt. Mit der Serial.println();-Funktion wollen wir ja einen Text ausgeben. Logischerweise müssen wir der Funktion dazu einen Text als Parameter übergeben. Natürlich gibt es auch andere Funktionen, die dann andere Parameter benötigen, um ihre Aufgabe erfüllen zu können. Eine Funktion, die das Volumen eines Stückes Kuchen berechnen soll, könnte so aussehen:

kuchenVolumen();

Der Name ist kuchenVolumen und zwischen den Klammern () warten die Parameter nur so darauf, von dir eingegeben zu werden. Um das Volumen eines Stückes Schokoladenkuchen zu berechnen, benötigt man die Höhe, die Tiefe, und die Breite. Der Geschmack spielt hier keine Rolle. Also:

kuchenVolumen(5, 8, 4);

Sieht ja wie vorher aus, nur das zwischen den Klammern, jetzt durch Kommata getrennt, die Werte für Höhe, Tiefe und die Breite stehen. Die Funktion nimmt jetzt diese Werte, bearbeitet sie im Hintergrund und spuckt dann das richtige Ergebnis aus. Dabei kann es sich bei diesem Ergebnis auch um Texte oder Zahlen handeln. Mehr müssen wir nicht wissen, um sie anwenden zu können. Das macht unser Leben um einiges leichter, denn wir müssen nicht für jedes neue Problem, das uns beim Programmieren begegnet, eine eigene Lösung entwickeln. Wir können auf fertige Funktionen zurückgreifen.

Bedingungen / if-Anweisung

Jetzt hat das Programm einfach die LED zum Leuchten gebracht, einfach so und ohne dich nach deiner Meinung zu fragen! Sicher möchtest du nicht immer die LED einer Farbe zum Leuchten bringen. Ein bisschen Entscheidungsfreiraum zwischen zwei verschiedenen Farben ist schon angebracht. Damit das Programm uns auch mal nach unserer Meinung fragt, lernen wir jetzt unseren neuen Helden, die if-Anweisungen, kennen. Die if-Anweisung besitzt die unglaubliche Superkraft, Bedingungen auf ihre Wahrheit zu prüfen und dann darauf zu reagieren. Frei nach Google-Translate übersetzt bedeutet „if-Anweisung“ so viel wie „wenn-Anweisung“. Sie tut nichts anderes als eine gegebene Bedingung zu überprüfen. Und nur wenn diese geprüfte Bedingung wahr ist, wird ein bestimmtes Stück Programmcode unter der if-Anweisung ausgeführt. So können wir z.B. Variablen mit Zahlen oder Zeichenketten vergleichen. Schauen wir uns so eine if-Anweisung einmal genauer an.

String programmieren = "cool";
void setup(){
  Serial.begin(9600);
}
void loop(){
  if(programmieren == "cool"){
    Serial.println("Programmieren ist cool!");
    delay(1000);
  }
}

Wie dein geschultes Auge sicher schon erkannt hat, erstellen wir in der ersten Zeile eine Variable und weisen ihr eine Zeichenkette mit dem Inhalt cool zu.

Richtig spannend wird es dann in Zeile 8. Da nehmen wir nämlich die zuvor erstellte Variable und prüfen mit dem sogenannten Vergleichsoperator ihren Inhalt. Auf Deutsch übersetzt sagt Zeile 3 etwa das aus:

Wenn die Variable ** programmieren ** mit der Zeichenkette "cool" gefüllt ist, führe den Code aus, der zwischen den beiden geschweiften Klammern {} steht.

Du kannst diese mit Alt Gr + 7 oder 9 (auf einer deutschen Tastatur) erzeugen. Achte darauf, dass nur der Code zwischen den geschweiften Klammern ausgeführt wird.

Verstanden? Gehen wir mal ein paar Beispiele durch, um das Prinzip zu verdeutlichen. Werden die folgenden Anweisungen wohl ausgeführt oder nicht?

if(himmel == "blau"){
     print(“Auf zum Strand“);
}
if(wasser == "trocken"){
     print(“Ganz schön holprig“);
}
if(ball == "viereckig"){
     print(“Sollte der nicht rund sein?”);
}

Der Einfachheit halber haben wir die void setup() und void loop() weggenommen ;) Wir wissen, du hättest die Lösung gar nicht nötig, weil du sowieso alles richtig hast, aber wir müssen uns an das Protokoll halten: Nummer 1 ist wahr und wird ausgeführt. Nummer 2 ist dann aber falsch und wird deswegen nicht ausgeführt, wie sollte man dann auch die Hände waschen? Nummer 3 ist auch falsch und wird nicht ausgeführt, denn Bälle sind bekanntlich eher rund.

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!