Arduino Datentypen – String? Int? Byte? Wtf?

Arduino Datentypen

In diesem Beitrag werden die verschiedenen Arduino Datentypen (engl: Arduino Datatypes) aufgelistet und deren jeweiligen Eigenschaften ein wenig genauer geläutert. Je nach Art und Speichergröße des Arduino-Boards kann es notwendig sein etwas sorgsam mit dem verfügbaren Speicher umzugehen.

Natürlich treffen diese Informationen nicht nur auf Arduino-Boards zu, sondern auf alle, von der Arduino IDE unterstützten, Microcontroller, wie z.B. Wemos, Lilypad und ESP8266.

string

Ein String ist im Grunde genommen nur ein Array mit dem Datentyp char (siehe Unten), mit dem es möglich ist Textfolgen zu speichern. Für jeden Buchstabe wird ein Byte des Speichers genutzt.

String stringOne = "Hello String";                        // Ein konstanter String
String stringTwo =  String("This is a string");           // Konvertieren eines konstanten String in ein String-Objekt
String stringOne =  String(stringTwo + " with more");     // Zwei Strings konkatenieren

Ebenso ist es möglich Strings mit weiteren Daten zu erstellen:

String(val, base)
String stringOne =  String(45, HEX);              // Ein int mit einer Basis (Hexadezimal)

byte

Der Arduino Datentyp byte speichert einen numerischen und ganzzahligen Wert ohne Dezimalkomma. Dieser kann im Wertebereich von 0 bis 255 sein.

byte var = val

integer / int

Integer bzw Int ist ein ganzzahliger Datentyp ohne Dezimalkomma. Er hat einen 16Bit Wertebereich und kann somit Zahlen im Bereich von -32768 bis 32767 annehmen.

Wenn vorzeichenbehaftete Variablen ihre maximale oder minimale Kapazität überschreiten, kommt es zum sogenannten Overflow. Da das Ergebnis eines Überlaufs ist unvorhersehbar ist, sollte dies unbedingt vermieden werden. Ein typisches Symptom für einen Überlauf ist die Variable, die von ihrer maximalen Kapazität auf das Minimum „umgedreht“ wird (Beispiel: 32767 + 1 = -32768).

int var = val

long

Ähnlich wie bei Integer handelt es sich beim Datentyp long um einen ganzzahliger Datentyp ohne Dezimalkomma. Dieser besitzt jedoch einen 32Bit Wertebereich und kann somit Zahlen von -2147483648 bis 2147483647 (ausgeschrieben: 2,14 Milliarden) nutzen.

Info: Der Datentyp unsigned long besitzt einen Wertebereich von 0 bis 4294967295

long var = val
long speedOfLight = 186000L

float

Float ist ein Datentyp für Fließkommawerte bzw. Zahlen mit Nachkommastelle. Fließkommazahlen können bis zu 3.4028235E+38 und bis zu -3.4028235E+38 betragen. Sie werden als 32 Bit (4Byte) Informationen gespeichert.

float var=val
float Foo = 1.117

double

Double bezeichnet eine Fließkommazahl mit doppelter Genauigkeit. Auf dem Uno und anderen ATMEGA-basierten Boards belegt dies 32Bit (4Byte).

double var = val

char

Dieser Datentyp benötigt genau ein Byte zum Speichern eines Zeichens. Alle Symbole werden als ASCII-Code gespeichert. Das heißt pro Byte kann dieser Datentyp einen Wert von -127 bis 128 annehmen.

Für die Zuweisung einzelner Buchstaben werden einfache Anführungszeichen genutzt; für Buchstabenfolgen, d.h. Wörter, nutzt man doppelte Anführungszeichen.

char myChar = 'A';
char myChar = 65;    // Beide sind gleichwertig

bool / boolean

Der bool oder boolean Datentyp ist mit nur einem Byte Speichernutzung der kleinste Datentyp des Arduino. Er enthält einen von zwei Zuständen und kann lediglich zwischen 0 und 1 bzw. true und false unterscheiden.

Boolean ist ein nicht standardmäßiger Typalias für bool, welcher von Arduino definiert wurde. Es wird empfohlen, stattdessen den Standardtyp bool zu verwenden, welcher identisch ist.

bool var = val

array

Ein Array ist kein direkter Datentyp, sondern mehr eine Sammlung von Werten, auf die mittels einen Namens und einer Indexnummer zugegriffen wird. Jeder Wert in dem Array kann, unabhängig von der Reihenfolge, zu jeder Zeit aufgerufen werden, indem man den Namen des Arrays und die Indexnummer des Wertes abfragt.

Die Indexnummer eines Arrays beginnt immer bei null (0).

int myInts[6];
int myPins[] = {2, 4, 8, 3, 6};
char message[6] = "hello";

Mehr zum Thema Arduino Datentypen

Arduino Kompendium Buch

Möchtest du mehr interessante Arduino Projekte kennen lernen und weiter in die Welt der Mikrocontroller einsteigen? Dann empfehle ich das Buch Arduino Kompendium: Elektronik, Programmierung und Projekte  – damit ist es möglich auch ohne umfassende Elektronik- und Programmiervorkenntnisse eigene intelligente Arduino-Projekte umzusetzen.

3 Kommentare

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert