In diesem Kapitel werden angesprochen
- Laser-Modul
- Fotowiderstand Modul
- Buzzer Modul
- Joystick Modul
Module sind immer herstellerspezifisch aufgebaut und können sich deshalb - bei gleicher
Namensbelegung - voneinander unterscheiden. Vor dem Aufbau einer Schaltung ist das Studium der zugehörigen Datenblätter deshalb unerlässlich.
Abb. 1 - Laser-Modul Pinbelegung; benutzt werden nur die Pins 1 und 3.
- Sicherheitshinweis: Bei der Arbeit mit einem Laser-Gerät darf dieses niemals auf Personen gerichtet und es sollte eine
Schutzbrille getragen werden.
- Niemals direkt in die Strahlenquelle schauen
- Wer etwas über die Physik (Aufbau, Wirkungsweise, Bauformen) eines Lasers erfahren möchte, findet im Internet umfassend Material;
u.a. hier.
- An Pin S (Signaleingang) lässt sich eine PWM-modulierte Spannung anlegen, die den Laser pulsierend hell und dunkel
schaltet.
Abb. 2a - Fotowiderstand Modul Pinbelegung
Abb. 2b - Aufbau des Fotowiderstand-Moduls
Der LDR ist in einer klassischen Spannungsteiler-Schaltung mit einem 10k Widerstand angeordnet.
Fällt ausreichend viel Licht auf den LDR, nimmt sein Widerstand ab und die Spannung über GND an Ax geht gegen 1 oder Vcc. Bei Dunkelheit wird der Widerstand eines LDR
sehr viel größer als 10 kOhm und die Spannung an Ax geht gegen 0 oder GND.
Abb. 3 - Buzzer (aktiv) Modul Pinbelegung
Ein aktiver Buzzer verfügt über einen eingebauten Oszillator fester Frequenz. Der springt an, sobald am Signaleingang eine "1"
anliegt.
Bei einem passiven Buzzer - der über keinen eigenen Oszillator verfügt - muss an den Signaleingang eine Tonfrequenz angelegt werden, die der Buzzer
dann ausgibt.
Abb. 3a - Joystick-Modul
Pin- und Anschlussbelegung des Moduls, das über zwei analoge (VRx, VRy) und eine digitale (SW) Schnittstelle verfügt.
Angegeben sind auch die Anschlusspins auf einem Ard-Board.
Roboter, RobotCars und anderes mehr lassen sich mit Hilfe von Joysticks steuern. Das in Übung 2 benutzte Joystick-Modul von Elegoo verfügt
über zwei analoge und eine digitale Schnittstelle.
Über die analogen Schnittstellen VRx, VRy lässt sich der Roboter in X bzw. Y-Richtung bewegen. Die digitale Schnittstelle
SW arbeitet wie ein Taster; ist der Joystick gedrückt, wird der Taster auf Masse gezogen. Dem Taster muss ein Pullup-Widerstand zugeschaltet werden. Die Pin- und Anschlussbelegung
für das Modul zeigt Abb. 3a.
Abb. 3b
Schaltplan zum Joystick-Modul
Übung 1 - Lichtschranke
1 - Pflichtenheft oder Was soll die Schaltung können?
- Entwickle mit Hilfe der Module: Laser und Fotowiderstand (LDR)
eine Lichtschranke.
- Sobald der Lichtstrahl unterbrochen wird, ertönt ein Buzzer-Signalton und eine
LED und/oder ein Relais werden geschaltet.
2 - Material
- Arduino- oder Arduino kompatibles Board (Ard-Board)
- Steckbrett und Steckdraht (Ma-Ma, Fe-Ma)
- 1x Laser Modul, 1x Buzzer Modul, 1x
Fotowiderstand-Modul, 1x Relais Modul
- Arduino IDE und Visuino auf dem Rechner bereits installiert
Vorüberlegung
- Schritt 1 - Baue eine Lichtschranke aus Laser Modul und Fotowiderstand Modul auf; miss die Rohdaten, am Eingang A0 vom LDR, wenn er a) maximal vom
Laser beleuchet und b) vom Laser nicht beleuchtet wird. Notiere die Rohdaten. Ausgabe der Rohdaten im Terminalfenster.
- Schritt 2 - Ergänze die Schaltung mit einem Buzzer und den Visuinoaufbau durch entsprechende Objekte.so, dass der Buzzer summt, sobald der
Laserstrahl zum Fotowiderstand unterbrochen wird.
- Schritt 3 - Selbstversuch: Ergänze die Schaltung mit einem Relais und/oder LED Modul so, dass die LED aufleuchtet, bzw. das Relais anzieht, sobald
der Laserstrahl zum Fotowiderstand unterbrochen wird.
3.1 - Objektanordnung - zu Schritt 1
Schritt 1 - Ard-Board festlegen
Starte das Programm Visuino und wähle in der Kopfzeile des Arduino-Blocks über das Werkzeug-Icon ganz rechts das eingesetzte Ard-Board aus (bei mir
ist es ein Arduino UNO R3).
Schritt 2 - Objekte auswählen
keine Objektauswahl
Schritt 3 - Objekte/Elemente verbinden mit Ard-Board
- Laser Modul Pin1 -> Vcc; Pin3 -> GND
- Fotodiode Modul Pin1 -> A0; Pin2 -> Vcc; Pin3 -> GND
- Ard-Board Digital[14]/ Analog[0] Out -> In Serial Serial[0]
Schritt 4 - Kompilieren und Hochladen des Programmcodes
-
Öffne in Visuino unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button
"Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein. Viel Spaß beim Experimentieren!
Ausgabe der Rohdaten im Terminalfenster
Abb. 4a - Terminalausgabe (LDR mit natürlichem Lichteinfall). Der angezeigte Rohdatenwert ist abhängig von der Umgebungshelligkeit.
Abb. 4b - Terminalausgabe (LDR von Laser bestrahlt).
- Die Messwerte gehen gegen Null, wenn der LDR vom Laserstrahl getroffen wird und pendeln sich um 0,4 ein, wenn das nicht der Fall ist.
- Mit Blick auf Schritt 2 aus der Vorüberlegung (s.o.) soll der Buzzer anfangen zu summen, wenn der Messwert an A0
größer ist als zum Beispiel 0,3.
3.2 - Objektanordnung - zu Schritt 2
Schritt 1 - Objekte auswählen
Gib in Filtersuche "compare analog" ein, wähle das Objekt "CompareAnalogeValue" (s. Abb. 5a) und ziehe es in die Arbeitsfläche.
Abb. 5a
CompareAnalogValue-Objekt
Abb. 5b
Properties Einstellungen zum Objekt CompareAnalogValue.
Als CompareType wird ctBiggerOrEquel und als Vergleichswert 0,4 eingestellt. Der Vergleichswert muss individuell angepasst werden.
Schritt 2 - Objekte/Elemente verbinden mit Ard-Board
- Buzzer Modul Pin3 -> D9, Pin1 -> GND, Pin2 -> Vcc
- Ard-Board Digital[14]/ Analog[0] Out -> In ArduinoCompareValue1 Objekt
- ArduinoCompareValue1 Objekt Out -> In Digital Digital[9]
Schritt 3 - Kompilieren und Hochladen des Programmcodes
-
Öffne in Visuino unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button
"Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein. Viel Spaß beim Experimentieren!
-
Der Buzzer sollte "aufheulen", sobald der Laserstrahl zum LDR unterbrochen wird.
Versuchsaufbau
Im Versuchsaufbau habe ich statt eines LED-Moduls klassisch eine rote LED mit Vorwiderstand eingebaut (s. Abb. 6). Der Vorwiderstand kann weggelassen werden, wenn man
in den Properties für das benutzte Ard-Board beim benutzten Pin (hier D13) einen Pull-Up Widerstand (s. Abb.7) aktiviert.
Alternativ ließe sich auch das DUO-LED Modul nehmen, dass gelb/grün leuchtet, solange der Strahlengang des Lasers nicht unterbrochen ist, und auf rot umspringt,
sobald dies der Fall ist -> bitte selber ausprobieren!
Abb. 6
Versuchsaufbau zur Lichtschranke
Abb. 7 - Pull-Up Widerstand setzen
Für Pin D13 wird auf dem Ard-Board der Pull-Up Widerstand aktiviert.
In diesem Video (1:31s) wird der Schaltungsaufbau und die Reaktion der Schaltung im Betrieb gezeigt. Die
Lichtschranke enthält neben einer LED auch eine Duo-LED.
Übung 2 - Joystick
1 - Pflichtenheft oder Was soll die Schaltung können?
- Entwickle mit Hilfe eines Joystick-Moduls eine Schaltung, die über vier LEDs die Schalterposition (rechts, links,
oben, unten) anzeigt.
- Erweitere die Schaltung anschließend so, dass beim Drücken des Schalters eine fünfte LED aufleuchtet (alternativ
kann auch ein Summerton ausgegeben werden).
2 - Material
- Arduino- oder Arduino kompatibles Board (Ard-Board)
- Steckbrett und Steckdraht (Ma-Ma, Fe-Ma)
- 1x Joystick Modul, 4x LED (2x rot, 2x grün), 1x
LED gelb
- Arduino IDE und Visuino auf dem Rechner bereits installiert
Vorüberlegung
- Schritt 1 - Baue eine Schaltung mit Joystick-Modul und vier LEDs auf dem Steckbrett auf (s. Abb. 8a und 8b). Denke daran, dass die LEDs
unbedingt je einen Vorwiderstand benötigen, der über die Software zugeschaltet werden kann. Wenn du die Schaltung aufgebaut hast, lasse dir in Visuino über das Terminalfenster zu den vier
möglichen Joystickpositionen (rechts, links, oben, unten) und dem Ruhezustand die Rohdaten ausgeben. Notiere die Werte und entwickle dann mit Visuino und geeigneten Objekten die komplette
Ablaufschaltung, so wie im Pflichtenheft oben beschrieben.
- Schritt 2 - Ergänze die Schaltung mit einer fünften LED (gelb) und den Visuinoaufbau durch entsprechende Objekte.so, dass die gelbe LED aufleuchtet,
sobald der Joystick-Taster ausgelöst wird.
Abb. 8a - Schaltskizze zu Übung 2
Abb. 8b - Schaltskizze Joystick zu Übung 2
3.0 - Rohdatenwerte ermitteln - zu Schritt 1
Die Rohdatenwerte des Joystick-Moduls lassen sich ermitteln, indem man
- den Ausgang A0 mit dem Eingang Serial Serial[0] verbindet,
- das Programm kompiliert und startet und
- im Terminalfenster die Rohdatenwerte für die Ruhestellung und die beiden Extremstellungen (ganz rechts, bzw. ganz links und ganz oben bzw. ganz unten)
abliest
- und das gleiche mit dem Ausgang A1 durchführt.
Mein Modul zeigte für beide Anschlüsse die Extremwerte 0 und 1 an und in der Ruhestellung des Joysticks den Wert 0,51.
3.1 - Objektanordnung - zu Schritt 1
Schritt 1 - Ard-Board festlegen
Starte das Programm Visuino und wähle in der Kopfzeile des Arduino-Blocks über das Werkzeug-Icon ganz rechts das eingesetzte Ard-Board aus (bei mir
ist es ein Arduino UNO R3).
Schritt 2 - Objekte auswählen
Gib in Filtersuche "compare analog value" ein, wähle das Objekt "CompareAnalogeValue" (s. Abb. 5a) und ziehe es in die Arbeitsfläche. Insgesamt
werden vier dieser Objekte benötigt.
Schritt 3 - Objekte/Elemente verbinden mit Ard-Board
Abb. 9a
Die Ausgänge der analogen Elemente Digital 14/ Analog[0] und Digital 15/Analog[1] sind mit den Eingängen von je zwei
CompareValue-Objekten verbunden.
Abb. 9b
Die Ausgänge der vier CompareValue-Objekte werden mit den Eingängen D3, D4, D5 und D6 verbunden.
Schritt 4 - Objekte/Elemente Eigenschaften einstellen
- Bei den vier Elemente Digital[3], Digital[4], Digital[5] und
Digital[6] wird im Properties-Fenster des Arduino Boards unter Digital der Pullup-Widerstand gesetzt (s. Abb.
10).
- Klicke auf eines der vier Objekte CompareAnalogValue und passe die Werte in den Feldern CompareType
und Value nach deinen Messergebnisse an (s. Abb. 11).
Schritt 5 - Kompilieren und Hochladen des Programmcodes
-
Öffne in Visuino unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button
"Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein. Viel Spaß beim Experimentieren!
Abb. 10 - Pullup-Widerstand setzen
Klicke das Element Digital[3] im Arduino Objekt an. Im Properties-Fenster öffne Digital[3] und aktiviere durch Anklicken das Feld
"Is Pull Up".
Abb. 11 - Properties/CompareAnalogValue
Die Rohdatenwerte lagen bei meinem Joystick zwischen 0 und 1. Als unteren Schwellwert habe ich deshalb 0,1, als oberen 0,9 genommen. Der CompareType ist einmal
ctSmaller bzw. ctBigger.
3.2 - Objektanordnung - zu Schritt 2
Schritt 1 - Objekte auswählen
Gib in Filtersuche "digtial inverter" ein, wähle das Objekt "Digital(Boolean)Inverter" (s. Abb. 12) und ziehe es in die Arbeitsfläche.
Schritt 2 - Objekte/Elemente verbinden mit Ard-Board
Abb. 13
Verbinde Digital[2] Out mit In Inverter1 und Inverter1 Out mit Digital
Digital[7],
Der Inverter muss hier dazwischen geschaltet werden, da der Taster des Joysticks auf Null gezogen wird, wenn man ihn drückt (siehe hierzu den Abschnitt:
Das Joystick-Modul weiter oben).
Abb. 12 - Objekt DigitalBooleanInverter
Wenn alle Bauteile auf dem Steckbrett richtig verkabelt wurden, die Objekte/Elemente in Visuino korrekt verbunden sind und die Eigenschaften bei einigen
Objekten entsprechend eingestellt wurden, dann sollte die Schaltung funktionieren. Das Kurzvideo zeigt das Ergebnis zu dieser Übung (s. oben).