In diesem Kapitel lernen Sie anhand eines Beispiels mit dem Arduino Uno, wie durch Ansprechen der Register des Mikrocontrollers die Konfiguration der Pins, das Ansprechen von Ausgabepins und das Auslesen des aktuellen Zustandes von Eingagspins vorgenommen wird.

Das folgende Bild zeigt die Pinbelegung des Arduino Uno mit den dazugehörigen Pinbezeichnungen des auf dem Arduino befindlichen Mikrocontrollers.



Abb.: Pin Map des Controllers; Quelle: BBS2 Wolfsburg


Pin-Konfiguration (Festlegung der Datenrichtung):

Um einen Ausgang oder Eingang steuern bzw. auslesen zu können, ist es notwendig, diesen zunächst zu als Ausgang bzw. Eingang zu konfigurieren. Wie dies mit einem Register geschieht, wird anhand eines Beispiels erklärt.

Beispiel: Am Arduino Uno wird ein Taster an Digital Pin 2 ( = Pin D2 des Controllers) und eine LED  mit entsprechendem Vorwiderstand an Digital Pin 13 ( = Pin B5 des Controllers) angeschlossen. Ist der Taster gedrückt, soll die LED leuchten.

Das Festlegen der Pins als Aus-/Eingang geschieht folgendermaßen:

DDRB |= 1 << 5;                // Das Datenrichtungsregister für den PortB Pin 5 (Pin B5) wird auf 1 gesetzt und so der Pin als Ausgabe-Pin konfiguriert.

DDRD &= ~(1<<2);            // Das Datenrichtungsregister für den PortD Pin 2 (Pin D2) wird auf 0 gesetzt und so der Pin als Eingabe-Pin konfiguriert.

Ansprechen eines Pins:

Da nun der digitale Pin B5 als Ausgang konfiguriert ist, kann man diesen über das PORTB-Register ansprechen:

PORTB |= 1<< 5;              // Setzt den Ausgangspin B5 auf 1, d.h. die LED leuchtet.

PORTB &= ~(1<< 5);        // Setzt den Ausgangspin B5 auf 0, d.h. die LED erlischt.

Auslesen eines Pins:

if (PIND &  (1<<PORTD2)) <Anweisung>;   // Abfragen ob an Pin 2 eine 1 (Taster betätigt) anliegt.

                                              Wenn er betätigt ist, liefert der Klammerausdruck "true", ansonsten "false".



Zuletzt geändert: Montag, 28. Februar 2022, 16:37