Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

Digital Input/Output

Digital Input/Output

Zusammenfassung

Ein Digitaler Input/Output (auch Digital I/O) kennt genau zwei Zustände: AN und AUS (auch WAHR oder FALSCH). Fliesst Strom an einem Digitalen I/O so ist ein AN, fliesst kein STROM ist er AUS. Alleine mit diesen zwei Zuständen lassen sich eine Menge von unterschiedlichen Eingaben und Ausgaben realisieren. Fragen zu einem Digitalen I/O könnten sein: Ist der Betrachter im Raum oder nicht? Berührt Jemand das Display oder nicht? Lassen sich solche Fragen mit JA oder NEIN beantworten, so kann man einen Digitalen I/O nutzen um diese Zustände elektronisch zu erfassen. Diese Zustände entsprechen in den meisten digitalen Schaltungen 0V (AUS/NEIN/FALSCH) und +5V (AN/JA/WAHR). Zeichnet man einen Wechsel von AN zu AUS auf einer Zeitleiste, so ergibt sich folgender Graph: Dieses Muster/Folge von EIN und AUS könnte z.B. entstehen, wenn ein Nutzer in regelmässigen Abständen eine Taste drückt. Das elektrische Signal würde in gleichbleibenden Abständen von 0V nach +5V springen und von +5V zurück nach 0V. Dieses Muster könnte allerdings auch dazu genutzt werden, eine Serie von Pulsen z.B. über eine LED auszugeben. Bei 5V würde die LED leuchten und bei 0V nicht. So ergäbe sich ein Blinkmuster. Das bedeutet, dass wir ein digitales Signal dazu verwenden können entweder Eingaben (Input) zu erfassen oder Ausgaben (Output) zu steuern.

Digitaler Input (DIN)

Um eine Eingabe an einem Digitalen I/O zu erfassen, müssen wir diesen entweder mit 0V oder mit +5V versorgen, damit dieser ein EIN bzw. AUS Signal generiert.

Pulldown Widerstand

Der entsprechende Schaltplan um z.B. einen Taster an einem Digital I/O einzulesen sieht wie folgt aus. Ein Druck auf den Taster lässt das Signal am Digital I/O von 0V auf +5V springen. Der angezeigte Widerstand (Wert: 10kOhm) wird eingesetzt um die Spannung zu limitieren, welche im AUS Zustand von 0V zum Digitalen I/O fliesst. Diese Art von Widerstand nennt man Pulldown-Widerstand, weil er den Digitalen I/O auf 0V zieht.

Pullup Widerstand

Dreht man die Reihenfolge von Taster und Widerstand um, so erhält man eine Schaltung, welche genau umgekehrt zur vorherigen funktioniert. Drückt man den Taster sinkt das Signal am Digital I/O von +5V aus 0V. Wird ein Widerstand in dieser Weise eingesetzt, so nennt man ihn Pullup-Widerstand – er zieht den Strom am Digital I/O nach Oben.

Arduino digitalRead()

Um mit dem Arduino eine digitale Eingabe zu erfassen, deklariert man zunächst den jeweiligen Pin im setup() mit pinMode() als Eingang:
pinMode(EINGANG, INPUT); // Declare an Input
Das Arduino hat sogar schon eingebaute Pullup Widerstände welche man über ein Aufrufen von digitalWrite() direkt nach pinMode() aktivieren kann.
digitalWrite(EINGANG, HIGH); // Enable internal pullup resistor
Das eigentliche Signal lässt sich mit digitalRead() in der loop() Schleife auslesen und in einer Variable speichern
int reading = digitalRead(EINGANG);

Digitaler Output (DOUT)

Wie oben schon erwähnt könnte eine LED über einen Digitalen I/O zum Blinken gebracht werden. Alles was man dazu benötigt ist eine LED und ein entsprechender Vorwiderstand.

Arduino digitalWrite()

Eine digitale Ausgabe am Arduino wird wiederum eingeleitet indem man den entsprechenden Pin mit pinMode() als Ausgang deklariert
pinMode(AUSGANG, OUTPUT);
In der loop() Schleife wird dann der Ausgang mit digitalWrite() auf HIGH (Ein) oder LOW (Aus) geschaltet
digitalWrite(AUSGANG, HIGH);

Links

Alte Physical Computing Website Tom Igoe - Digital Input/Output