Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Seeeduino Nano und Grove

Der Grove Button

In der folgenden Übung lernen wir ein neues Grove-Modul kennen: den Grove Button.

Abb. 1 - Grove Button (Draufsicht)

Dieses Bauteil ist ein einfacher Taster, mit dem zum Beispiel eine LED ein- und ausgeschaltet werden kann:

  • solange die Taste gedrückt wird, leuchtet eine LED.
  • wird die Taste losgelassen, erlischt die LED.

Ein Taster mit einem solchen Verhalten nennen wir Ein-/ Ausschalter.

 

Es gibt Taster, die eine andere Wirkung haben. Bei einem Radio wird mit einem Tastendruck das Gerät eingeschaltet und mit einem erneuten Tastendruck ausgeschaltet. Bei einem solchen Schaltverhalten spricht man von einem Umschalter.

Abb. 2 - Grove Button (Rückansicht)

Übung Taster: Ein- / Ausschalter (UM)

Eine Übung für die Unter- und Mittelstufe. Programmierkenntnisse werden nicht vorausgesetzt.

Zusätzliche Informationen zum Thema Drucktaster findest du hier:

Didaktisch methodische Einordnung

 

In dieser Übung lernst du …

  • … eine Schaltung nach Vorgabe zusammenzustecken.
  • … einen Taster, seine Wirkungsweise und Beschaltung kennen.
  • … mündlich ausgesprochene Handlungsanweisungen in eine Versuchsablaufsteuerung mit einer entsprechenden Software vorzunehmen.
  • … Befehle der Sprache Arduino C kennen.
  • … einfache Änderungen im Programm vorzunehmen und neuen Anforderungen anzupassen.
  • … Versuchsergebnisse zu bewerten und Fehlerquellen zu benennen.

Schaue dir das Modul erst einmal in Ruhe an und beschreibe, was du dort siehst. Ins Auge stechen drei Bauteile:

  • Auf der Oberseite des Moduls befindet sich ein Taster,
  • Auf der Unterseite befindet sich die Grove-Buchse.
  • Die Beschriftung GND, VCC, NC und SIG zeigt an, dass der dritte Pin von oben (NC) keine Drahtverbindung zum Controller hat. NC steht für NOT CONNECTED.

In dieser Übung wird ein Programm entwickelt und besprochen, mit dem sich eine LED ein- und ausschalten lässt.

Übung: Taster - Ein- /Ausschalter (UM)
Material
  • 1x   Seeed Basis-Set
  • 1x   Grove Rote LED
  • 1x   Grove Button
  • 2x   Grove-Verbindungskabel
  • 1x   USB-Typ C Verbindungskabel zum Laptop/Computer
Aufgaben
  • Baue die Schaltung nach Schaltungsvorlage (Abb. 3) auf. Der Grove Button ist mit D6 auf dem Shield verbunden.
  • Übertrage das Programm „Taster_LED“ in den Arduino Editor und speichere es ab. Starte das Programm und überprüfe, ob der Taster die LED ein- und ausschaltet.
  • Beschreibe mit eigenen Worten für jede Programmzeile was der Controller macht.
  • Wie müsste das Programm „Taster_LED“ geändert werden, damit die LED mit dem Programmstart bereits leuchtet und ausgeht, sobald die Taste gedrückt wird?

Schaltungsaufbau

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Abb. 3

Seeed Basis-Set mit Grove Button und Grove Red LED. Die LED ist mit Buchse D2, der Taster mit D6 auf dem Grove Shield verbunden.

Wie könnten Handlungsanweisungen an den Controller aussehen?

 

Eine mögliche Lösung ist:

 

In der Funktion SETUP

  • Seeeduino Nano, setze Pin D2 (LED) auf Ausgang.
  • Setze Pin D6 (Taster) auf Eingang.

In der Funktion LOOP

  • Schau nach, ob ein HIGH oder LOW am Eingang D6 des Controllers anliegt und lege den Wert in einem Zwischenspeicher (ZS) ab.
  • Wenn der Werte im ZS identisch 1 ist, dann setze D2 auf HIGH oder 1, wenn nicht, dann setze D2 auf LOW oder 0.

Welche Anweisungen werden dazu benötigt?

 

Mit

  • pinMode(6, INPUT)

wird Pin D6 als Eingang deklariert.

Mit der Programmanweisung

  • digitalRead(6, <speichername>);

wird der an D6 anliegende Wert (0 oder 1) gelesen und im Speicher <speichername> abgelegt.

Eine WennDann – Entscheidung wird in Arduino C durch

 

  • If (Taster gedrückt) { mache dies } else {mache das} oder präziser
  • If (taster == 1)
    {
       digtialWrite(2, HIGH);
    }
    else
    {
      digitalWrite(2, LOW);
    }

Das Programm "LED_Taster"

Abb. 4 - Das Programm "LED_Taster"

Wie funktioniert das Programm "LED_Taster"?

Programmzeilen 2 und 3

  • In der setup-Funktion werden der Ausgang und der Eingang deklariert.

Programmzeilen 7 bis 12

  • In der loop-Funktion wird erst der Zustand am Eingang D6 eingelesen und im Speicher T1Zustand zwischengespeichert. Mit der nachfolgenden wenn … dann … Entscheidung wird überprüft, ob eine 1 am Eingang anliegt. Wenn das der Fall ist, geht die LED an, sonst bleibt sie aus.

Lesbarkeit eines Programms erhöhen

 

Das Programm LED_Taster ist besser zu lesen, wenn man ein paar zusätzliche Vereinbarungen in das Programm hineinschreibt. Mit dem Nummernkreuz oder Hashtag # und dem nachfolgenden Wort define findet eine Textersetzung statt.

  • #define Taster 6       ordnet dem Wort Taster den Wert 6 zu
  • #define LED 2         ordnet dem Wort LED den Wert 2 zu.

Im Programm sieht das dann so aus:

Abb. 5 - Die Lesbarkeit eines Programms durch "sprechende Namen" verbessern.

Übung Taster: Umschalter (Teil 1) (MO)

Eine Übung für die Mittel- und Oberstufe. Programmierkenntnisse werden vorausgesetzt.

Didaktisch methodische Einordnung

 

In dieser Übung lernst du …

  • … eine Schaltung nach Vorgabe zusammenzustecken.
  • … wie man aus einer Handlungsabfolge ein Programm in C entwickelt.
  • … Einflussfaktoren kennen, die eine Schaltung nicht so reagieren lassen, wie es theoretisch möglich ist.
  • ...  etwas über Schalterprellen.
  • … Versuchsergebnisse zu bewerten und Fehlerquellen zu benennen.

In dieser Übung wird ein Programm entwickelt und besprochen, mit dem sich eine LED mit Hilfe eines Tasters, der wie ein Lichtschalter wirkt, umschalten lässt.

Die Schaltung und das damit benötigte Material ist identisch mit dem aus Übung UM Taster – Ein- / Ausschalter. Hier geht es darum, ein neues Programm aus einer vorgegebenen Handlungsabfolge zu entwickeln, bei dem der Taster so reagiert, dass er eine LED mit einem ersten Tastendruck ein- und mit einem folgenden Tastendruck wieder ausschaltet.

Aufgaben

  • Baue die Schaltung nach Vorlage aus Übung UM Taster – Ein- /Ausschalter auf.
  • Entwickle auf der weiter unten vorgestellten Ablauffolge ein Programm, mit einem Taster als Umschalter. Wird der Taster ein erstes Mal gedrückt, geht eine LED an, wird er ein zweites Mal gedrückt, geht sie aus.
  • Probiere deine Schaltung aus und beschreibe genau, wie die Schaltung auf Tastendruck reagiert. Hast du eine Erklärung dafür?

Schaltungsaufbau

Identisch mit Übung UM Taster – Ein- /Ausschalter.

Eine mögliche Ablauffolge zur Programmentwicklung

  • Lege am Anfang des Programms „sprechende Namen“ für alle benutzten Pins des Controllers an und weise den dort definierten Variablen einen Anfangswert zu.

 

Funktion setup

  • Lege fest, welcher Pin auf dem Seeeduino Nano Board als Eingang (Taster) und welcher als Ausgang (LED) benutzt wird.

 

Funktion loop

  1. Wenn am Eingang ein HIGH steht UND
    Wenn
    die boolsche Hilfsvariable schalter FALSE ist,

dann setze schalter auf TRUE

  1. Wenn schalter TRUE ist, setze schalter auf FALSE.
  2. Ist schalter TRUE, schalte die LED an.
  3. Ist schalter FALSE, schalte die LED aus.

Das Programm „Taster_Umschalter“

Abb. 6 - Programm "Taster_LED_Umschalter"

Wie reagiert die Schaltung bei diesem Programm auf Tastendruck?

Mit dem vorliegenden Programm lässt sich eine LED mit Hilfe eines Taster ein- bzw. ausschalten. Jeder Tastendruck kehrt den momentanen Schaltzustand der LED um: leuchtet die LED, wird sie mit dem folgenden Tastendruck ausgeschaltet; leuchtet sie nicht, wird sie eingeschaltet.

 

Es fällt auf, dass das Umschalten sehr störanfällig ist. Mal gelingt das Umschalten, mal gelingt es nicht. Bei meinen eigenen Versuchen erzielte ich die besten Ergebnisse mit einem delay(100) Wert und kurzen schnellen Tastendrucken. Befriedigend ist diese Softwarelösung auf keinen Fall!

 

Die Ursache für dieses unkontrollierte Verhalten des Taster lässt sich mit dem Stichwort Tastenprellen umschreiben. Umfangreiche Informationen zu diesem Stichwort und wie man es über ein Programm umgehen kann, findest du im Internet oder hier im Abschnitt über die Hausflurbeleuchtung.

Lösung zur Erweiterungsaufgabe aus dem Kapitel LED

Versuche – ähnlich wie es bei der Besprechung zum Programm „Blinker LED“ erfolgte – jede Programmzeile zu verstehen, indem du jede Anweisung des Programms mit eigenen Worten noch einmal beschreibst. Als Hilfe dient dir in jeder Programmzeile ein Kommentar, der mit dem Zeichen "//" vom eigentlichen Programmcode getrennt ist.

Hier geht es weiter zum Kapitel "Pulsweitenmodulation/ Servo".

Druckversion | Sitemap
© Reinhard Rahner - Gettorf