Variablen

Was war das noch?

Variablen! – Du kennst und liebst sie aus dem Matheunterricht. Und eine ähnliche Bedeutung wie dort haben sie auch in der Programmierung. Eine Variable in der Informatik ist wie eine Schachtel, in der man Daten wie Text, Zahlen oder sogar Bilder aufbewahren kann.

Sie hat einen Typ, der die Art des Inhalts bestimmt, einen Namen, den du selbst wählst, und einen Wert, den du der Variable zuweist. Der Name sollte so gewählt werden, dass er den Inhalt der Variablen beschreibt, da du ihn später brauchst, um auf sie zuzugreifen.

Variablen sind sehr nützlich, weil sie es dir ermöglichen, Daten zu speichern und später im Programm wieder zu benutzen.

Bevor sie jedoch verwendet werden können, müssen sie deklariert werden. Hierzu werden Datentyp und Name nacheinander angegeben. Zusätzlich kann die neue Variable direkt mit einem Anfangswert initialisiert werden. Dabei musst du diesem Muster folgen:

Datentyp Variablenname;

bzw.

Datentyp Variablenname = Initialwert;

Datentypen

Einige wichtige Datentypen sind in der Tabelle zusammengefasst. Es gibt jedoch noch weitere, über die du sicherlich noch stolpern wirst.

DatentypInhaltBeispiel
intganze Zahlen42
doubleKommazahlen3.1415
booleanWahrheitswertetrue

Einige Beispiele zur Deklaration und Initialisierung von Variablen:

int meinAlter = 41;
int meinAlterInFuenfJahren = meinAlter + 5;
double meinGewichtInKg = 83.1415;
boolean sportlich = false;

Beispiel: „int“  und „double“

#include <U8g2lib.h>
#include <SPI.h>

U8G2_SH1106_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0, 10, 8, 9);

void setup(void) {
  u8g2.begin();  

  double radius = 5;                        //Deklaration einer Variablen radius und Initialisierung mit dem Wert 5
  int xPos = 10;                            //Deklaration einer Variablen xPos und Initialisierung mit dem Wert 10
  
  u8g2.drawCircle(xPos, 32, radius);        // Zeichnet einen leeren Kreis mit Radius radius um (xPos,32)
  radius = radius * 1.2;                    // Weist der Variablen radius den alten Wert von radius * 1.2 zu 
  xPos = xPos + 10;                         // Erhöht den Wert von xPos um 10
  u8g2.drawCircle(xPos, 32, radius);        // Zeichnet einen leeren Kreis mit Radius radius um (xPos,32)
  radius = radius * 1.2;                    // Weist der Variablen radius den alten Wert von radius * 1.2 zu
  xPos = xPos + 10;                         // Erhöht den Wert von xPos um 10
  u8g2.drawCircle(xPos, 32, radius);        // Zeichnet einen leeren Kreis mit Radius radius um (xPos,32)
  radius = radius * 1.2;                    // ...
  xPos = xPos + 10;                         // ...
  u8g2.drawCircle(xPos, 32, radius);        // ...
  radius = radius * 1.2;                    // ...
  xPos = xPos + 10;                         // ..
  u8g2.drawCircle(xPos, 32, radius);        // .
  radius = radius * 1.2;
  xPos = xPos + 10;
  u8g2.drawCircle(xPos, 32, radius);
  radius = radius * 1.2;
  xPos = xPos + 10;
  u8g2.drawCircle(xPos, 32, radius);
  radius = radius * 1.2;
  xPos = xPos + 10;
  u8g2.drawCircle(xPos, 32, radius);
  radius = radius * 1.2;
  xPos = xPos + 10;
  u8g2.drawCircle(xPos, 32, radius);
  radius = radius * 1.2;
  xPos = xPos + 10;
  u8g2.drawCircle(xPos, 32, radius);
  radius = radius * 1.2;
  xPos = xPos + 10;
  u8g2.drawCircle(xPos, 32, radius);

  u8g2.sendBuffer();                        // Displayspeicher auf das Display übertragen und anzeigen
} 

void loop() {}

Anmerkungen

  • Wird eine Variable innerhalb einer Funktion z.B. setup() deklariert, so ist sie innerhalb dieser Funktion im ab dieser Zeile nutzbar.
  • Wird eine Variable vor den und außerhalb der Funktionen deklariert, so ist sie von allen Funktionen nutzbar.

Ausgabe von Variablen

Oft ist es nützlich den Inhalt von Variablen an den PC zu senden, sei es zur Fehlersuche oder, um Messwerte des integrierten Beschleunigungssensors am PC weiterzuverarbeiten.

void setup(void) {
  Serial.begin(9600);
}

void loop() {
  int zufall = random (1,100);
  Serial.print("Aktuelle Zufallszahl: ");
  Serial.println(zufall);
}

Nach dem Hochladen des Programms auf den Picoboy ist erstmal nichts zu sehen, weder erscheint etwa auf dem Display, noch blinken die LEDs, denn der PicoBoy sendet seine Ausgabe über USB an deinen PC! Führe die folgenden Schritte aus, um sie zu sehen.

  1. Wähle den (virtuellen) seriellen Port aus, über den der PicoBoy an den PC angeschlossen ist. Er gibt sich hier als Raspberry Pi Pico aus.
  2. Öffne den seriellen Monitor
  3.  Stelle die serielle Schnittstelle auf die richtige Geschwindigkeit ein.
  4. Die generierten (und in der Variablen abgespeicherten) Zufallszahlen sollten nun zu sehen sein!

Hier geht es weiter.