Diese sind nötig, um die Datengröße zu deklarieren.
Z.B.
byte Merker = 0;
In diesem Merker merke ich mir im Programm Zustände. Z.B. ein Umschalter mit Mittelstellung. Der kann Drei Zustände haben.
0 = Mittelstellung
1 = nach oben
2= nach unten
Nach Oben oder nach Unten, wird jeweils ein Pin angesprochen. In der Mittelstellung kein Pin.
Mit Byte kann ich bis zu 255 Zustände einmerken.
Natürlich kann man auch EINEN Analogen Pin verwenden und die Schalterstellug dann über verschiedenen Widerstände Auswerten. Aber hier geht es nur um die Göße der nötigen Daten - Deklarationen.
byte ( uint8_t )
Byte speichert einen 8-bit numerischen, ganzzahligen Wert ohne Dezimalkomma. Der Wert
kann zwischen 0 und 255 sein.
byte someVariable = 180; // deklariert 'someVariable' // als einen 'byte' Datentyp
int ( int16_t )
Integer ist der verbreitetste Datentyp für die Speicherung von ganzzahligen Werten ohne
Dezimalkomma. Sein Wert hat 16 Bit und reicht von -32.768 bis 32.767.
int someVariable = 1500; // deklariert 'someVariable' // als einen 'integer' Datentyp
Hinweis:
Integer Variablen werden bei Überschreiten der Limits 'überrollen'. Zum Beispiel
wenn x = 32767 und eine Anweisung addiert 1 zu x, x = x + 1 oder x++, wird 'x' dabei
'überrollen' und den Wert -32768 annehmen.
short
Ein short ist ein 16Bit Datentyp und reicht von -32767 bis 32767. Bei den ATMEGA und ARM-basierten ARDUINO’s ist ein short also mit dem int identisch. Es sollte besser ein int verwendet werden.
short someVariable = 1500; // deklariert 'someVariable' // als einen 'short' Datentyp
word ( uint16_t )
Ein word speichert eine vorzeichenlose 16-bit Zahl, von 0 bis 65535. Genauso wie eine
unsigned int.
word w = 60000; // Variable zu groß für int, aber word ist OK!
unsigned int ( uint16_t )
Vorzeichenlose Integer-Variable. Wert kann von 0 bis 65535 sein.
unsigned int variable = 40000;
long ( int32_t )
Datentyp für lange Integer mit erweiterter Größe, ohne Dezimalkomma, gespeichert in einem
32-bit Wert in einem Spektrum von -2.147.483.648 bis 2.147.483.647
long someVariable = 90000; // deklariert 'someVariable' // als einen 'long' Datentyp
unsigned long ( uint32_t )
Vorzeichenlose long-Variable. Wert 0 bis 4.294.967.295
unsigned long variable = 3000000;
float
Ein Datentyp für Fließkomma Werte oder Nummern mit Nachkommastelle. Fließkomma
Nummern haben eine bessere Auflösung als Integer und werden als 32-bit Wert mit einem
Spektrum von -3.4028235E+38 bis 3.4028235E+38 gespeichert.
float someVariable = 3.14; // deklariert 'someVariable' // als einen 'float' Datentyp
Hinweis:
Fließkommazahlen sind nicht präzise und führen möglicherweise zu merkwürdigen Resultaten, wenn sie verglichen werden. Außerdem sind Fließkomma
Berechnungen viel langsamer als mit Integer Datentypen. Berechnungen mit Fließkomma Werten sollten nach Möglichkeit vermieden werden. Siehe auch hier.
double
Eine Fliesskommazahl mit doppelter Auflösung als float. Allerdings ist bei den UNO’s, NANO’s und andere ATMEGA-basierten Boards die Auflösung genau identisch mit der von float. Man hat also keinen Gewinn an Genauigkeit.
Beim ARDUINO DUE ist double eine 8 Byte Zahl (64bit) und hat somit die doppelte Auflösung als float.
Hinweis
Wenn man sich Code aus anderen Projekten „borgt“ und in das eigene Projekt einfügt, oder ganze Sketche, sollte man vorher schauen, ob die höhere Präzision der double im eigenen Projekt gebraucht wird oder nicht. Ansonsten kann es zu ungenauen Ergebnissen führen. Da ist dann nur der Einsatz eines DUE möglich, oder aber anderes Coding.
boolean ( bool )
Der Datentyp boolean kann zwei Zustände haben: true oder false.
Die Datentypen kann man angelehnt an die digitale Elektronik sehen, in denen man auch von 0 und 1 redet (oder HIGH und LOW). Siehe auch hier in der Referenz.
boolean buzzerflag = false; // Flag zur Erkennung
bool buzzerflag = false; // das gleiche…
Ich benutze sehr gern sogenannte Flags, um im Programm zu markieren, ob ein gewisser Zustand gerade aktiv ist oder nicht. Dazu verwende ich den Datentyp boolean.
false: bedeutet immer 0 (Null)
true: bedeutet 1, ABER: auch jeder andere Wert außer Null ist true.
Datentypen angepasst, dass kein unnötiger Speicherplatz verbraucht wird.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste
