Dein Multifunktions Shield
Als Young Engineer steht dir ein Multifunktions Shields auf dem µController UNO zur Verfügung.
Hier wirst du lernen, dieses Shield in Verbindung mit verschiedenen Sensoren und Aktoren zu nutzen.
In dieser Lerneinheit lernst du die Befehlsbibliothek MultiFuncShield.h zu nutzen.
Weiterhein werden wir eine Reihe von Sensoren mit deinen Shield verbinden und deren Ausgaben auf dem Display anzeigen.
Für einige mögliche Anwendungsmöglichkeiten des Shields sollst du jeweils ein Programm erstellen.
Lass dich überraschen ... !
Du solltest die Lerneinheit
TinkerCAD Circuits: Multifunktions Shield auf dem UNO ⇑ weitgehend durchgearbeitet haben bzw. recht gut kennen. Viele Aufgaben aus der Lerneinheit kannst du jetzt mit deinem "richtigen" Multifunktions Shield praktisch ausführen.
Umgekehrt wird es dir nicht gelingen, die folgenden Aufgabe mit der Simulation in TinkerCAD zu bearbeiten, da die Simulation bestimmte Einschränkungen hat, dir in TinkerCAD nur relativ wenige Bauelemente als Sensoren und Aktoren zur Verfügung stehen und wir in TinkerCAD Circuits (bisher) keine neuen Befehlsbibliotheken einbinden können.
Die folgende Aufgabe solltest du nach Durcharbeiten der Aufgaben aus
TinkerCAD Circuits: Multifunktions Shield auf dem UNO ⇑
lösen können.
Erstelle ein Programm nach folgenden Vorgaben:
- Nach Programmstart werden folgende Anweisungen ausgeführt:
- Alle vier LEDS sollen nacheinander im Sekundentakt an- und ausgehen.
- Der Buzzer gibt dabie je für 0.2 Sekunden ein akustisches Signal.
- Danach werden im Display die Buchstabe "AbCD" für 2 Sekunden angezeigt.
- Danach wird die Anzeige auf "0000" gesetzt. - Danach wird wiederholt ausgeführt:
- Das Drücken des Tasters 1 startet eine Stopuhr, deren Zeit im Display angezeigt wird. - Das Drücken des Tasters 2 hält die Stoppuhr an.
- Mit Taster 3 wird die Anzeige auf "0000" gesetzt.
Das Multifunktions Shield

Schaltplan des Shields

Befehlsbibliothek / Library MultiFuncShield.h
Diese Bibliothek stellt uns für das Multifunktions Shield eine Klasse bereit.
Wir werden diese nun schrittweise kennenlernen.
In der Schule ist diese Library schon auf den Computern verfügbar.
Steht dir die Befehlsbibliothek noch nicht zur Verfügung, dann füge diese
- im Arduino Web Editor mit dem Library Manager
- in der Arduino IDE per Menü: Sketch - Bibliothek einbinden - .ZIP-Bibliothek hinzufügen ...
deiner Programmierumgebung hinzu.
Lade dazu die Datei MultiFuncShield-Library-1_2.zip ⇓ herunter.
Die folgenden Links geben umfangreiche Informationen zu dieser Befehlsbibliothek.
-
Hackatronics-Arduino-Multi-function ⇑
auf Cohesive Computing, unterteilt in drei Bereiche:
- Basic Input / Output ⇓
- Reading Sensors ⇓
- Real World Applications ⇓
- Hackatronics-Arduino-Multi-function-Shield.pdf ⇑ auf Cohesive Computing enthält obiges Angebot mit extra Informationen
MultiFuncShield MFS initialize isrCallBack setTimer, getTimer write, blinkDisplay, setDisplayBrightness wait writeLeds, blinkLeds, beep, setBeepOffPeriod queueButton, getButton initPulseInCounter, getPulseInPeriod, getPulseInTotalCount, resetPulseInTotalCount, setPulseInTimeOut initSonar, getSonarDataCm initLM35, getLM35Data
Methode (klasseneigene Funktion) zur Ausgabe auf dem Display

Die folgenden Codeabschnitte aus der MultiFuncShield.h ⇑ sind hier wesentlich.
- Statt
0
oder1
,false
odertrue
,LOW
oderHIGH
können nun auch die BezeichnerON
oderOFF
geschrieben werden. - Die UNO-Pins 4,7 und 8 des UNO sind für die Ansteuerung des Displays vorgesehen. Sie sind mit einem Schieberegister 74HC585 verbunden.
- Mittels der folgenden Bezeichnern können die einzelnen Ziffern ausgewählt werden.
Schreibe im Beispiel in der Zeile 23 stattDIGIT_ALL
den AusdruckDIGIT_1|DIGIT_3
.
Der Operator '|' ist das bitweise ODER, der veränderte Ausdruck ergibt nun den Wert 5, statt bisher 15.
DIGIT_1|DIGIT_2|DIGIT_3|DIGIT_4
ist somit gleichbedeutend mitDIGIT_ALL
- Die Methode (klasseneigene Funktion)
MFS.write
kann in drei Varianten angewandt werden.
Füge in der Setup()-Funktion die folgenden Zeilen ein.
MFS.write(3.14159); delay(2000); // zeigt " on"
MFS.write("On", 1); delay(2000); // zeigt " on"
MFS.write("OFF", 0); delay(2000); // zeigt "oFF "
Anmerkungen:
- Die Methode
setDisplayBrightness()
lässt sich nicht aufrufen. - Die Methode
write()
mit einer Zeichenkette als Argument verlangt kein zweites Argument für die Ausrichtung.
Der zweite Parameter ist optional. - Die Methode
write()
mit einer ganzen Zahl als Argument kann das zweites Argument für den Dezimalpunkt anwenden.
Der zweite Parameter ist optional. - Ist die Zahl nicht im Display darstellbar, dann erscheint im Display die Fehlermeldung
" E"
- Die Methode
write()
mit einerfloat
-Zahl als Argument braucht das zweites Argument.
Der Compiler zeigt die Fehlermeldung "call of overloaded 'write(double)' is ambiguous"
'ambiguous' bedeutet 'mehrdeutig'
Funktionen zur Ansteuerung der LEDs

Die folgenden Codeabschnitte aus der MultiFuncShield.h ⇑ sind in diesem Abschnitt wesentlich.
- Die vier LEDs sind an die Pins 10,11,12 und 13 des UNO angeschlossen.
- Mittels der folgenden Bezeichnern können die einzelnen LEDs ausgewählt werden.
MitLED_1|LED_4
werden die erste und dritte LED ausgewählt.
Der Operator '|' ist das bitweise ODER, der veränderte Ausdruck ergibt nun den Wert 9, statt bisher 15.
LED_1|LED_2|LED_3|LED_4
ist somit gleichbedeutend mitLED_ALL
- Die Methoden
MFS.writeLeds()
undMFS.blinkLeds()
schalten die LEDs.
Erstelle mit diesen beiden Methoden einige der dir bekannten Lichtmuster.
Methodenen für den Beeper

Die folgenden Codeabschnitte aus der MultiFuncShield.h ⇑ sind in diesem Abschnitt wesentlich.
- Der Piezo-Summer ist am Pin 3 des UNO angeschlossen.
- Der Beeper wird mittels
MFS.beep()
eingestellt und aufgerufen.
MFS.setBeepOffPeriod()
...... .
"Verwenden Sie diese Option, um die Ausschaltzeit einzustellen, während der Signalton aktiviert ist."
Erstelle ....
Methodenen für den Buttons

Die folgenden Codeabschnitte aus der MultiFuncShield.h ⇑ sind in diesem Abschnitt wesentlich.
- .... .
- ...
Mit
LED_1|LED_4
werden die erste und dritte LED ausgewählt.
Der Operator '|' ist das bitweise ODER, der veränderte Ausdruck ergibt nun den Wert 9, statt bisher 15.
LED_1|LED_2|LED_3|LED_4
ist somit gleichbedeutend mitLED_ALL
-
Erstelle ...
Nutzung des Seriellen Monitor
Im Abschnitt Buttons wurde der Serielle Monitor unserer Programmierumgebung (IDE / Webeditor) für die Ausgabe der Aktionen an den Tastern genutzt. Der UNO sendete durch sein Programm Informationen an den per USB angeschlossenen PC.
In diesem Abschnitt wird der PC Befehle an den UNO senden, um Aktionen auf dem Shield zu bewirken.
Kopiere das folgenden Programm in deine Programmierumgebung.
PulseIn-Methodenen
...

Die folgenden Codeabschnitte aus der MultiFuncShield.h ⇑ sind in diesem Abschnitt wesentlich.
- Die vier LEDs sind an die Pins 10,11,12 und 13 des UNO angeschlossen.
- Mittels der folgenden Bezeichnern können die einzelnen LEDs ausgewählt werden.
MitLED_1|LED_4
werden die erste und dritte LED ausgewählt.
Der Operator '|' ist das bitweise ODER, der veränderte Ausdruck ergibt nun den Wert 9, statt bisher 15.
LED_1|LED_2|LED_3|LED_4
ist somit gleichbedeutend mitLED_ALL
Bluetooth-Module HC-0x
Wir nutzen Module vom Typ HC-05, HC-06 und HC-08
Auf dem Multifunktionsshield ist ein Steckerblock aus 4x3 Steckern. Vier Stecker für die Verbindung zu GND, vier für die Verbindung mit +5V und vier jeweils zu den Arduino-Pins 5, 6,9 und A5.
Verbinde jeweils mit vier Verbindungskabel (weiblich - weiblich) die Pins des BT-Moduls mit dem Shield:
MFS | Farbe | HC-06 |
GND | blau | GND |
VCC | rot | 5V |
5 | grün | TXD |
6 | gelb | RXD |
Testprogramm der Kommunikation per Bluetooth zwischen Handy und Computer über den Seriellen Monitor des Arduino
Übertrage das folgende Programm suf deinen Arduino mit dem Multifunktionsshield.
Wir erweitern das Programm durch die Fähigkeiten der Befehlsbibliothek / Library MultiFuncShield.h!
Wir erweitern das Programm um weitere Funktionen.
APC220 Wi-Fi- Kommunikation Modul USB Adapter Kit für Arduino
https://www.amazon.de/APC220-Wi-Fi-Kommunikation-Adapter-Arduino/dp/B00Q6WR5EAhttp://www.produktinfo.conrad.com/datenblaetter/175000-199999/191668-an-01-de-WIRELESS_KIT_APC220.pdf