Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03589.jsonl.gz/761

Datentypen für die Arduino Programmierung
Wir haben bereits zwei Datentypen, long und bool, ohne viel Erklärung kennengelernt. Da wir für die nächste Ausbaustufe noch weitere Datentypen brauchen werden, werde ich hier ein paar Ergänzungen anbringen.
Um ganze Zahlen (0, 3, 17, 127, etc.) speichern zu können, verwendet man die Datentypen byte, int, long, unsigned int und unsigned long. Diese Liste ist nicht ganz vollständig (mit Absicht um es übersichtlich zu halten).
byte für ganze Zahlen im Bereich 0 bis 255. byte belegt (wie es der Name schon sagt) 1 Byte im Speicher.
int für ganze Zahlen im Bereich -32'768 bis 32'767. int belegt 2 Bytes im Speicher.
unsigned int für ganze Zahlen im Bereich 0 bis 65'535. unsigned int belegt 2 Bytes im Speicher.
long für ganze Zahlen im Bereich -2'147'483'648 bis 2'147'483'647. long belegt 4 Bytes im Speicher.
unsigned long für ganze Zahlen im Bereich 0 bis 4'294'967'295. unsigned long belegt 4 Bytes im Speicher.
Das Vorwort unsigned heisst "ohne Vorzeichen", also nur positive Zahlen. byte ist implizit unsigned.
Wenn man einen Datentyp braucht, um ganze Zahlen zu speichern, muss man sich bei deren Deklaration überlegen, welcher Zahlenbereich vorkommen kann. Im Zweifelsfall nimmt man besser den nächst mächtigeren und nimmt dabei in Kauf, dass der etwas mehr Speicher braucht.
Nebst den Datentypen für ganze Zahlen gibt es noch den Datentyp bool. In der Arduino-Umgebung trifft man auch boolean an. boolean ist ein Alias von bool (ist also das Gleiche). bool kann nur zwei Werte annehmen (true und false), also wahr und falsch. In der Arduino-Umgebung trifft man of HIGH und LOW an, die an Stelle von true oder false verwendet werden. Das geht, weil die Arduino-Umgebung HIGH zu einem Alis von true und LOW zu einem Alias von false gemacht hat.
Die Liste von Datentypen ist damit noch nicht vollständig. Es gibt vor Allem auch Datentypen für Bruchzahlen (0.002, 1.82, 3.1416, etc.). Diese benötigen wir in diesem Projekt voraussichtlich nicht. Wir werden sie aber im Projekt #2 (Geschwindigkeits-Messer) sicher kennenlernen.
Ich will hier noch auf die offizielle Dokumentation von Arduino verweisen. Dort ist alles über die Arduino-Umgebung (recht gut) beschrieben.