Arduino Datentypen (1)

Veröffentlicht von

Inhalte

  • Datentypen in Arduino (Auswahl)
    • integer ( int)
    • floating point ( float)
    • boolean ( boolean)
    • character ( char), byte ( byte)
  • Das Schlüsselwort unsigned
  • Type Casts

Einführung

Die Arduino-Entwicklungsumgebung verwendet die Programmiersprache C um seinen Prozessor programmieren zu können. C ist eine sogenannte statisch typisierte Sprache, d.h. eine Variable bekommt bei seiner Initialisierung einen Typ, der nicht später mehr geändert werden kann.

Der Wertenbereich einer Variablen ist begrenzt, d.h. Variablen können nur Werte bis zu einer bestimmten Größe aufnehmen.

Die wichtigsten Datentypen für Variablen sowie deren Verwendung sind im Folgenden angeführt. Darüber hinaus existieren noch eine Reihe von weiteren Typen, die später in Arduino Datentypen 2 behandelt werden.

Integer ( int)

Eine Integervariable kann nur ganze Zahlen abspeichern. Der Wertebereich am Arduino UNO beträgt – 2^15 bis 2^15 – 1 , also -32 768 bis 32 767. (Dieser Wertebereich entspricht 16 Bit).

Integervariablen können keine Zahlen mit Nachkommastellen aufnehmen. Eine Berechnung wie folgende führt also zu einem falschen Ergebnis:

Die Division von 5 / 2 sollte eigentlich 2.5 ergeben. Die Integervariable nimmt aber nur ganze Zahlen auf, weshalb in der Variable (wahrscheinlich) 2 abgespeichert wird.

Arduino Referenz: https://www.arduino.cc/en/Reference/Int

Floating Point ( float)

Fließkommazahlen (engl. floating point) werden im Speicher anders abgelegt als Integer-Zahlen. Sie benötigen mehr Speicher und sind bei Berechnungen für den Prozessor aufwendiger zu behandeln (man sollte sie daher nur dann einsetzen, wenn es nicht anders möglich ist). Allerdings haben Sie einen wesentlich größeren Wertebereich und können Zahlen mit Nachkommastellen abspeichern.

Um ganze Zahlen als Fließkommazahlen zu behandeln, versieht man sie mit einem Komma-Punkt. Will man Integer-Variablen als Fließkommazahlen behandeln, benötigt man einen Typecast (siehe weiter unten), mit dem ein Variablentyp in einen anderen umgewandelt wird.

Arduino Referenz: https://www.arduino.cc/en/Reference/Float

Boolean ( boolean)

Boolsche Variablen können nur den Wert 0 oder 1 aufnehmen. Sie werden gerne verwendet um binäre Zustände wie true oder false, HIGH oder LOW o.ä. zu kennzeichen.

boolean booleanVariable = 0;

Arduino Referenz: https://www.arduino.cc/en/Reference/BooleanVariables

Character ( char)

Characters sind ganze Zahlen mit einem sehr kleinem Wertebereich von -128 bis 127. Sie belegen intern nicht viel Speicher (8 Bits), werden aber gerne verwendet um einzelne Buchstaben abzuspeichern. Dazu wird jeder Buchstabe einem Zahlenwert zugeordnet. Die ASCII-Tabelle enthält einen Überblick über diese Zuordnungen:

Der Buchstabe A hat also den Dezimalwert 65 zugeordnet.

Initialisiert kann ein Char daher auf mehrere Weisen:

Beide Zuweisungen sind gleichwertig. Bei der Initialisierung mit Buchstaben muss dieses in Anführungszeichen gestellt werden.

Arduino Referenz: https://www.arduino.cc/en/Reference/Char

Das Schlüsselwort unsigned

Ganzzahlige Variablentypen können auch in einer Variante ohne Vorzeichen verwendet werden. (Negative Zahlen können daher nicht in diesen Variablen abgelegt werden). Vorteil dieser Variablen ist aber, dass sie im positiven dann einen größeren Wertebereich abdecken können. Bei einer Integer verschiebt sich etwa der Wertebereich von -32 768 bis 32767 zu 0 bis 65535.

Das Schlüsselwort unsigned  dient dazu, eine Variable zu einer vorzeichenlosen Variablen zu machen.

Eine Ausnahme existiert für den Datentyp Character (siehe folgender Abschnitt).

Byte ( byte)

Der Datentyp Byte entspricht von der Größe her (8 Bit) dem Character. Er ist allerdings per Definition vorzeichenlos, sodass sein Wertebereich zwischen 0 und 255 liegt.

Type Casts

Manchmal ist es notwendig eine Variable von einem Typ in einen anderen umzuwandeln. Hierzu verwendet man einen Type Cast. Dieser wird durchgeführt, indem man vor den Variablennamen in runden Klammern den neuen Typ anführt

Achtung: Bei der Umwandlung von Werten, die nicht in einen anderen Wertetyp passen, kommt es möglicherweise zu einer Stutzung des Werts:

 

Aufgaben

[TBD]

Ein Kommentar

Kommentar hinterlassen

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