Taster

Bis jetzt hast du bloss Signale vom Arduino herausgeschickt. In diesem Posten lernst du, wie du ein Signal in den Arduino einlesen kannst. 

 

In diesem Posten verwenden wir das Signal eines Tasters. Der Taster ist nichts anderes als ein Schalter, welcher den Stromkreis schliesst, sobald er gedrückt wird, und den Stromkreis wieder unterbricht, sobald man ihn loslässt. 

 

Zudem lernst du eines der wichtigsten Programmier-Elementen kennen: der "wenn" und "sonst" Befehl (oder auf englisch: "if" und "else").

 

 

Ziel des Postens

Der Arduino kann das Signal eines Tasters auslesen und eine Aktion ausführen, sobald dieser betätigt wird. 

 

 

Material

  • Ardurobot
  • Taster
  • 10k Ohm Widerstand
  • Steckkabel

 

Schaltung

Taster

Der Taster ist - wie bereits erwähnt - nichts anderes als ein Schalter, welcher einen Stromkreis schliesst, sobald man ihn betätigt (drückt) und den Stromkreis wieder unterbricht, sobald man ihn loslässt. 

 

Signale einlesen

Bisher haben wir die Pins beim Arduino nur als Ausgänge benutzt. Dabei hast du die beiden Befehlen "digitalWrite" und "analogWrite" kennengelernt. Das englische Wort "write", was so viel wie "schreiben" heisst, steht dafür, dass eine Spannung ausgegeben wird. Wir können aber auch Spannungen einlesen. Dies geschieht z.B. mit dem Befehl "digitalRead" (dt.: "digitales Einlesen"). 

 

Verbindet man einen Arduino-Pin mit 5V, so kann dieser das feststellen. 

 

If & Else

If und else stehen für wenn und sonst Befehle. So kannst du zum Beispiel folgenden Befehl geben: "Wenn der Taster gedrückt ist, dann soll eine LED leuchten und sonst soll die LED nicht leuchten". So einfach ist das. Nun wollen wir schauen, wie wir dies in unserer Programmiersprache aussprechen können. 

 

Aufbau

 

Programmieren

Sketch

Link zum Sketch

 

Aufgabe:

Der Taster ist über ein Widerstand mit dem GND (Ground) verbunden. Kannst du dir vorstellen warum? Was würde wohl passieren, wenn es keinen Widerstand geben würden, also wenn der Taster direkt mit dem Pin 3 verbunden wird? Versuche es mal aus! Wie erklärst du dir das?

 

 

 

Vertiefungsaufgaben

Vertiefungsaufgabe 1:

 

Im Beispielssketch hast du erstmals die On-Board-LED kennengelernt. Diese LED befindet sich direkt auf dem Arduino und muss nicht extra eingesteckt werden. Das kann manchmal sehr praktisch sein. 

 

Verwende nun statt der On-Board-LED eine andere LED, welche du auf deinem Breadboard aufbaust. Verwende dafür einen beliebigen freien Pin (ausser dem Pin 13...). 

 

Vertiefungsaufgabe 2:

Der Beispielssketch ist so programmiert, dass die LED für eine ganze Sekunde leuchtet, wenn der Taster gedrückt wurde. Verändere den Sketch so, dass die LED nur eine halbe Sekunde oder zwei ganze Sekunden leuchtet. 

 

Vertiefungsaufgabe 3:

Nun soll die LED nur genau dann leuchten, wenn der Taster gedrückt wurde. Sonst soll sie nicht leuchten. 

 

Vertiefungsaufgabe 4: 

Kehre nun das ganze um: Die LED soll dann leuchten, wenn der Taster nicht gedrückt ist. Und sonst soll sie leuchten. 

 

Vertiefungsaufgabe 5:

Verwende nun zwei verschiedene Taster. Der erste Taster soll die LED beim Pin 13 zum leuchten bringen und der zweite Taster soll die zweite LED zum leuchten bringen. 

 

 

Rückblick

Besprecht zu zweit, was ihr über folgendes herausgefunden habt: 

 

- Taster

- digitalRead

- pinMode (Taster, INPUT)

- IF / ELSE

 

 

Erweiterungsmöglichkeiten

Nun sollte es dir bereits möglich sein, eine Roboter-Steuerung aufzubauen.

 

In der Vertiefungsaufgabe 5 hast du mit zwei Taster zwei verschiedene LEDs zum leuchten gebracht. Mit dem genau gleichen Prinzip lassen sich zwei Motoren jeweils nach vorne bewegen. 

 

Mit zwei weiteren Tastern kannst du sogar die Motoren auch noch rückwärts fahren lassen. Schaffst du eine Steuerung mit vier Tastern zu bauen, mit der sich der Roboter vorwärts und rückwärts fahren und drehen lässt?