Wer mit Arduino programmiert, kommt an Variablen nicht vorbei. Sie sind das Herzstück jeder Logik: Sie speichern Werte, machen Programme flexibel und sorgen dafür, dass deine Sketche auf Eingaben und Sensoren reagieren können.
Ob Zahlen, Zeichen oder ganze Textketten – je nach Projekt musst du den passenden Variablen-Typ auswählen. Das spart Speicher und verhindert Fehler. In diesem Beitrag findest du eine kompakte Übersicht der wichtigsten Typen, Beispiele aus der Praxis und Tipps zur richtigen Anwendung.
Übersicht: Die wichtigsten Variablen-Typen in Arduino
| Typ | Speicher (Byte) | Wertebereich | Beispielwert(e) | Typische Anwendung |
|---|---|---|---|---|
boolean | 1 | true (1) oder false (0) | true | Schalter, Zustände |
byte | 1 | 0 bis 255 | 128 | LEDs, Ports |
char | 1 | -128 bis 127 / ASCII-Zeichen | 'A', 65 | Zeichen, Protokolle |
int | 2 (UNO) / 4 (ESP32) | -32.768 bis 32.767 (UNO) | -500, 2025 | Zähler, Sensorwerte |
unsigned int | 2 / 4 | 0 bis 65.535 (UNO) | 60000 | Zeit, Schleifen |
long | 4 | -2.147.483.648 bis 2.147.483.647 | millis() | Timer, große Zahlen |
unsigned long | 4 | 0 bis 4.294.967.295 | millis() | Zeitmessung |
float | 4 | ca. 6–7 Nachkommastellen | 3.14159 | Sensorwerte, Mathe |
double | 4 (UNO) / 8 (ESP32) | wie float (UNO) / präziser | 0.00012345 | Messungen mit hoher Genauigkeit |
String | dynamisch | Textketten | "Hallo Arduino" | Texte, Kommunikation |
Erklärung & Beispiele aus Projekten
boolean – zwei Zustände
Speichert nur true oder false – perfekt für Schalter, Flags oder Zustände.
boolean ledOn = true;
if (ledOn) {
digitalWrite(LED_BUILTIN, HIGH);
}
byte – kleine Zahlen
Ideal für Werte von 0–255, z. B. PWM-Helligkeiten oder Portwerte.
byte brightness = 128;
analogWrite(9, brightness);
char – Zeichen und ASCII
Einzelnes Zeichen oder Zahl im Bereich -128 bis 127. Praktisch bei serieller Kommunikation.
char letter = 'A';
Serial.println(letter); // Gibt A aus
int – Standard für Ganzzahlen
Der Klassiker. Aber Achtung: Auf dem Arduino UNO nur 16 Bit!
int counter = 1000;
counter++;
unsigned int – nur positive Zahlen
Gleicher Speicherbedarf wie int, aber ohne Minuswerte.
unsigned int loops = 60000;
long & unsigned long – für große Werte
Wichtig für Funktionen wie millis(), die sehr große Zahlen liefern.
unsigned long start = millis();
float & double – mit Nachkommastellen
Für Sensorwerte und mathematische Berechnungen.
Auf dem UNO gleich präzise, auf dem ESP32 ist double genauer.
float temp = 23.75;
Serial.println(temp);
String – Texte speichern
Gut für Textausgaben und Kommunikation – aber Vorsicht: verbraucht viel Speicher.
String message = "Hallo Arduino!";
Serial.println(message);
Fazit
Die Wahl des richtigen Variablen-Typs macht deinen Code effizienter, klarer und stabiler:
- Speicher sparen: z. B.
bytestattint, wenn’s reicht - Wertebereiche im Blick behalten: kein Überlauf bei
millis() - Lesbarkeit erhöhen: ein
booleanfür Status ist aussagekräftiger alsint
Gerade bei Boards mit wenig RAM wie dem Arduino UNO solltest du genau überlegen, welchen Typ du wählst. Auf moderneren Boards wie dem ESP32 hast du mehr Luft – aber gute Gewohnheiten zahlen sich immer aus. 🚀



