Dies ist eine alte Version des Dokuments!


← Kapitel 1: Programmieroberfläche | ↑ Übersicht | Typdefinitionen →

Kapitel 2: Ausgänge

Folgende Frage taucht sehr häufig auf: Kann man jeden einzelnen Pin als Ein- oder Ausgang definieren, genau so, wie man gerade möchte?

Und die Antwort ist sehr einfach: Ja, man kann. Naja, zumindest, so lange der Pin ein I/O-Pin ist. Man kann natürlich nicht zB den Versorgungsspannungspin als Eingang verwenden…

Betrachten wir dazu das Datenblatt des Atmega328P, in dem folgendes steht:

23 Programmable I/O Lines

Das bedeutet, dass wir bis zu 23 Pins zur Verfügung haben, die wir nach Belieben als Ein- oder Ausgänge definieren können. Bauteil- und routingbedingt stehen uns auf dem Gscheiduino allerdings nur 20 zur Verfügung (zwei Pins gehen etwa verloren, da dort ein Quarz angeschlossen ist).

Die Bezeichnung dieser Pins steht auf der Platine des Gscheiduino bzw kann hier nachgelesen werden.

Der Grundzustand jedes I/O-Pins beim Einschalten lautet „Eingang“, dies dient zur Sicherheit von eventuell angeschlossener Hardware, die durch einen aktiven Ausgang beschädigt werden könnte.

Damit wir einen Pin also als Ausgang verwenden können, müssen wir dem Controller mitteilen, dass wir das gerne tun würden. Dies geschieht sehr einfach durch folgenden Befehl:

pinMode(PIN, OUTPUT);

Was wir da jetzt wo hinschreiben müssen lernen wir mit diesem konkreten Beispiel:

LED

Wir stecken einen 120-R-Widerstand in die Kontakte D3 und G3. Eine rote LED stecken wir wie folgt auf das Breadboard: Plus auf I3, Minus auf I4.

Die Polarität der LED kann man hier nachlesen

Danach verbinden wir A3 mit Pin13 des Gscheiduino und F4 mit GND.