Reference   Language | Libraries | Comparison | Changes

Konstanten

Konstanten sind vordefinierte Variablen in der Arduino-Programmiersprach. Sie verbessern die Lesbarkeit von Programmen und sind in verschiedene Gruppen eingeteilt.

Definition der Logik-Pegeln, true und false (Boolsche Konstanten)

Es existieren zwei Konstanten, um die beiden Zustände richtig und falsch zu beschreiben. Diese sind in der Arduino-Programmiersprache true und false.

false

false ist einfach definiert als 0 (Null).

true

true wird oft als 1 definiert, was grundsätzlich korrekt ist. Allerdings geht die Definition noch weiter, so dass jeder Integer-Wert der nicht-null (non-zero) ist, im boolschen Sinne als true angesehen werden kann. So bedeuten -1, 2 und -200 ebenfalls true im boolschen Sinne.

Hinweis: Die true und false Konstanten sind immer kleingeschrieben, im Gegensatz zu den Konstanten HIGH, LOW, INPUT und OUTPUT.

Definition der Zustännde von Ausgängen, HIGH und LOW

Wenn ein Wert auf einen digitalen Ausgang geschriben wird, dann sind grundsätzlich nur zwei Zustände möglich, welche von einem Ausgang angenommen werden können: HIGH und LOW.

HIGH

Die Bedeutung des Ausdruckes HIGH im Zusammenhang mit einem Anschluss (Pin) kann unterschiedlich sein, je nachdem ob der Pin als INPUT oder als OUTPUT definiert wurde. Wenn ein Pin durch die Verwendung der Funktion pinMode als INPUT definiert wurde und mit digitalRead ausgelesen wird, dann erhält der Microcontroller den Zustant HIGH, wenn die angelegte Spannung 3 Volt oder mehr beträgt.

Ein Pin kann aber auch als INPUT definiert sein und dann durch die Verwendung der Funktion digitalWrite in den Zustand HIGH versetzt werden. In diesem Fall wird der interne 20K-Pullup-Widerstand gesetzt, welche den Pin in den dauerhaften Zustand HIGH versetzt. Dieser Zustand bleibt solange erhalten, bis der Pin durch eine externe Schaltung auf LOW gesetzt wird. Genau auf die gleiche Weise funktioniert die Funktion INPUT_PULLUP.

Wenn ein Pin durch die Verwendung der Funktion pinMode als OUTPUT definiert wurde und mit digitalWrite auf HIGH gesetzt wird, dann beträgt die Spannung an diesem Pin 5 Volt. In diesem Zustand kann der Pin eine Stromversorgung ermöglichen, beispielsweise für eine LED, welche mit einem Vorwiderstand mit Ground verbunden wurde. Er kann aber einfach auch auf LOW gesetzt werden.

LOW

Die Bedeutung des Ausdruckes LOW im Zusammenhang mit einem Anschluss (Pin) kann ebenfalls unterschiedlich sein, je nachdem ob der Pin als INPUT oder als OUTPUT definiert wurde. Wenn ein Pin durch die Verwendung der Funktion pinMode als INPUT definiert wurde und mit digitalRead ausgelesen wird, dann erhält der Microcontroller den Zustant LOW, wenn die angelegte Spannung 2 Volt oder weniger beträgt.

Wenn ein Pin durch die Verwendung der Funktion pinMode als OUTPUT definiert wurde und mit digitalWrite auf LOW gesetzt wird, dann beträgt die Spannung an diesem Pin 0 Volt. In diesem Zustand kann der Pin Strom aufnehmen, beispielsweise für eine LED, welche mit einem Vorwiderstand mit einer 5 Volt-Spannungsquelle verbunden wurde. Er kann aber einfach auch auf HIGH gesetzt werden.

Definition von digitalen Pins, INPUT, INPUT_PULLUP, und OUTPUT

Die Zustände von digitalen Pins können über die Befehle INPUT, INPUT_PULLUP, oder OUTPUT gesteuert werden. Wenn ein Pin durch Verwenden der Funktion pinMode() geändert wird, dann ändern sich auch seine elektrischen Eigenschaften.

Pins definiert als INPUT

Arduino (Atmega) Pins, welche durch die Funktion als INPUT definiert wurden, werden in einen Zustand von hoher Impedanz versetzt. Dadurch benötigen diese Pins extrem wenig Ressourcen aus der angeschlossenen Schaltung. Der Grund ist der interne 100 MOhm-Widerstand des Pins. Dadurch eignen sich die Pins hervorragend, um Sensoren auszulesen, aber nicht um beispielsweise eine LED mit Strom zu versorgen.

Wenn ein Pin als INPUT definiert wurde, dann benötigt dieser eine Referenz auf Ground. Dies erreicht man durch das Verwenden eines Pull-Down-Widerstands am Pin selber. Diese Methode ist hier? beschrieben.

Pins definiert als INPUT_PULLUP

Der Atmega-Chip auf dem Arduino-Board besitzt interne Pull-Up-Widerstände, welche gesteuert werden können. Wenn man diese anstelle von externen Widerstände verwenden will, dann können diese über das Argument INPUT_PULLUP in der Funktion pinMode() angesteuert werden. Das führt unter Umständen dazu, dass das Verhalten des Pins geändert wird, beispielsweise bedeutet dann HIGH dass der Sensor aus ist und LOW, dass der Sensor an ist. Siehe auch Input Pullup Serial? für ein praxisnahes Beispiel.

Pins definiert als OUTPUT

Arduino (Atmega) Pins, welche durch die Funktion als OUTPUT definiert wurden, werden in einen Zustand von niedriger Impedanz versetzt. Dadurch können diese Pins eine angeschlossenen Schaltung in bestimmen Massen mit Strom versorgen. Der angegebene Strom beträgt sowohl für die Aufnahme, als auch für die Abgabe jeweils 40mA. Dadurch eignen sich die Pins hervorragend, um beispielsweise eine LED mit Strom zu versorgen, aber nicht um einen Sensor auszulesen. Die Pins, welche als OUTPUT definiert sind, können auch beschädigt oder zerstört werden, wenn sie kurzgeschlossen oder mit starken (strommässig) 5 Volt Spannungsquellen verbunden werden. Ein Arduino-Pin liefert in der Regel auch nicht genügend Strom, um Relay oder Motoren anzusteuern. Dafür ist eine externe Schaltung nötig.

Siehe auch

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Share