Freitag, 16. August 2013

Datentypen

Auf eine Anfrage eines Nutzers möchte ich mich dem Thema Datentypen zuwenden. Es gibt verschiedene Datentypen für Zeichen oder Zahlen aber auch für TRUE oder FALSE (richtig oder falsch) abfragen.

Boolean

Der kleinste Datentyp bei Arduino ist der Type boolean dieser kann nur zwischen 1 und 0 unterscheiden also TRUE oder FALSE. Dieser Datentype benutzt nur 1 Bit des Speichers.

Byte

Byte speichert einen 8-Bit numerischen, ganzzahligen Wert ohne Dezimalkomma. Der Wert kann zwischen 0 und 255 liegen. Ein Byte entspricht 8 Bit auf dem Speicher.

Integer

Ein Integer oder auch INT genannt ist die am meisten benutzte Variante um Ganzzahlen ohne Dezimalkomma zu Speichern. Der Wertebereich liegt von -32.767 bis 32.768. Diese werden in einem Wort gespeichert, ein Wort entspricht 2 Byts. Also nimmt eine INT variable 16 Bits des Speichers in Anspruch.

Long

Ist wie ein Integer nur das er für einen Zahlenbereich von -2,147,483,648 bis 2,147,483,647 gedacht ist. Diesen erreicht er durch seine doppelte Größe 2 Wort, also 32 Bits auf dem Speicher.

Float

Float wird benutzt wenn die Werte eine höhere Auflösung besitzen sollen. Dies wird durch eine Fließkommazahl erreicht. Der Zahlenbereich geht von -3.4028235E+38 bis 3.4028235E+38. Der Speicher wird hier ebenfalls mit 2 Wort belastet also 32 Bits. Die Berechnung in diesem Datentyp hat das Problem das es deutlich langsamer ist als der Integer

Char

Der char Datentyp wird benutzt um einzelne ASCII Zeichen zu Speichern. Ein Char ist ein Byte groß also 8 Bits. Dies geschieht in dem man einer bestimmten Zahl einen Buchstaben zugeordnet hat, z.B. für das 'A' die Zahl 65. eine genau Liste gibt es Hier. diese Zahlenwerte gehen von -128 bis 128. Ein Char ist immer nur ein Buchstabe. Mann erkennt einen Char daran der er in einfache Anführungsstriche gesetzt wird, z.B. 'A'.

Array

Ein Array ist kein direkter Datentype man kann ihn dazubenutzen unter einem Variablen Namen mehrere z.B. INT Werte abzulegen. Wie das geht zeige ich am besten an Hand eines Beispiels:

int myArray[] = {wert0, wert1, wert2...};

Hier sieht man nun wie ein Array deklariert wird. Wie bei einer Normalen Variabele kommt zu erst der Datentyp int danach der Name myArray. Jetzt kommt die Eckige klammer in die wird reingeschrieben wie viele Werte benötigt werden + 1 Wert dieser steht für die Null. In dem Unteren Beispiel habe ich die Zahl 2 benutzt und also gebe ich drei Werte an Wert 0 = 5, Wert 1 = 8 und Wert 3 = 6.

int myArray[2] = { 5, 8, 6 };
x = myArray[1];

Mit dem Befehl  myArray[1] kann man nun auch einen Wert auslesen hier den Wert 1 dieser beträgt 8. Das heißt in dem oben gezeigten Beispiel wird der Wert 8 der Variable x zugewiesen.

String

Ein String ist wenn man es genau sieht nichts anderes als ein Array. Ein String ist ein Array mit dem Datentyp char. Das heißt für jeden Buchstaben wird ein Byte genutzt. Ein String wird in der Arduino IDE immer mit doppelte Anführungszeichen benutzt z.B. "ABC" für dieses ABC würde der Code wie folgt lauten:

char String[2] = {'A', 'B', 'C'};

Oder man benutzt die leichter Variante:

char String[2] = "ABC";

Das war es auch schon zu dem Thema Datentypen falls Ihr weitere Fragen habt oder ich einen Datentyp vergessen habe schreibt mich einfach an pilot.arduino@gmail.com 

Und noch ein nützlicher Link, dort gibt es zu vielen Themen eine genaue Beschreibung. Die Seiten sind zum größtenteil noch auf Englisch aber werden fortlaufend ins Deutsche übersetzt.


Es wird noch etwas dauern bis der Umbau von meinem Projekt fertig ist... Es fehlen noch einige Teile.