Variablen,Konstanten, Typen

Wichtiger Bestandteil eines jeden Programms sind die Variablen. Das sind quasi die Plätze in einem Bücherregal. Jeder Platz kriegt einen Namen. (Wie ein Buch) Eine Variable hat einen Typ. Der Typ definiert, was die Variable an Daten aufnehmen kann.

Also sieht das so aus:

typ name;

Die wichtigsten Typen und deren Werte-Bereich:

boolean: kann nur 2 Werte anehmen, Wahr oder Falsch (true, false) oder auch 1 oder 0. (0=false, 1=true)
byte: kann ein Byte aufnehmen. Also Werte von 0..255.
char: kann ein Zeichen aufnehmen, also z.B. 'A' oder 'ß'.
int: kann Werte zwischen -32.768 bis 32.767 aufnehmen. (Braucht 2 Byte Platz)
unsigned int: kann Werte zwischen 0 und 65.535 aufnehmen.
word: ist das gleiche wie unsigned int.
long: kann Werte zwischen -2.147.483.648 to 2.147.483.647. (Braucht 4 Byte Platz)
unsigned long: kann Werte zwischen 0 to 4.294.967.295. (Braucht 4 Byte Platz)
float: sind Fließkommazahlen. Bereich von 3.4028235E+38 bis runter nach -3.4028235E+38, werden aber nur in 4 byte gespeichert. Deswegen ist die Genauigkeit recht klein. Manchmal ist dann 6,0 / 3,0 leider nicht 2,0…
String: Zeichenkette, also sowas wie „willie ist da!“ (Für die Spezies: Das ist gar kein Typ sondern ein Objekt…)

Und dann gibt's da noch die Felder. (Arrays) Die definiert man einfach so: Feld mit 4 Bytes. Gezählt wird dann immer von 0 an. Hier geht's also von 0..3.

byte feld[4];

Man kann Variablen einen beliebigen noch freien Namen geben. Es gibt aber bestimmte Wörter die sind tabu. (Nämlich alle definierten Schlüsselwörter, wie auch alle definierten Routinen).

Man kann Variablen und Feldern auch gleich Werte zuweisen. Das geht so:

String test = "Arduino";
int feld[] = {1,2,3,4};

Und es gibt auch Konstanten. Also Variablen, die sich während der Laufzeit des Programms nicht ändern sollen. Die werden so definiert:

const byte LED_PIN = 13;
const float MYPI = 3.1415;

Arduino definiert einige fertig eingebaute Konstanten:

  • HIGH, LOW
  • INPUT, OUTPUT, OUTPUT_PULLUP
  • LED_BUILTIN
  • true, false

Zahlenwerte können in verschiedenen Schreibweisen angegeben werden.

  • Dezimal: Im normalen 10 System braucht man nichts besonderes angeben. const byte TEST = 84;
  • Binär: Will man eine Zahl binär angeben, muss diese mit einem 'B' beginnen, also z.B. const byte TEST = B01010100;
  • Hexadezimal: Für's Hexadezimalsystem brauchst ein 0x vor der Zahl, also const byte TEST = 0x54;
  • Oktal: Für's wenig gebräuchliche Octalsystem muss nur eine 0 vor der Zahl stehen, also const byte TEST = 0124;

Könnte man dann nicht in unserem Beispiel… ja man könnte… Dann kann man oben was einstellen, ohne überall im Quelltext rum suchen zu müssen.

/*
Dieses Programm soll eine LED an dem Ausgang 13 zum Blinken bringen, Frequenz 1Hz.
*/

const byte LED_PIN = 13;
const word LED_DELAY = 500;

void setup() {
  pinMode(LED_PIN,OUTPUT);
}

void ledOn(boolean onoff, byte pin, int msec) {
  // LED einschalten, 
  digitalWrite(pin, onoff);
  // warten, 
  delay(msec);
}

void loop() {
  // LED ein
  ledOn(HIGH, LED_PIN, LED_DELAY);
  // LED aus
  ledOn(LOW, LED_PIN, LED_DELAY);
}

Sacken lassen, rauchen, trinken, oder schlafen…

arduino/tutorial/sprechen-sie-arduino/variablenkonstanten-typen.txt · Zuletzt geändert: 2018/11/04 10:51 von 127.0.0.1
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0