MINT-Tag 2023: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 8: Zeile 8:
|-
|-
|  '''Raum:''' || L3.1-E02-180 (Labor Robotik)
|  '''Raum:''' || L3.1-E02-180 (Labor Robotik)
|-
|  '''Thema:''' || Arduino Workshop
|-
|-
|  '''Betreuer''': || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], Tel. 806
|  '''Betreuer''': || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], Tel. 806
Zeile 29: Zeile 31:
| 12:55 || 14:25 || LED pulsieren lassen || 15 Min.
| 12:55 || 14:25 || LED pulsieren lassen || 15 Min.
|-
|-
| 13:10 || 14:40 || LED mit Potentiometer Dimmen || 15 Min.
| 13:10 || 14:40 || LED mit Potentiometer dimmen || 15 Min.
|-
|-
| 13:25 || 14:55 || Verabschiedung || 5 Min.
| 13:25 || 14:55 || Verabschiedung || 5 Min.
Zeile 65: Zeile 67:
|-
|-
|}
|}
== Aufgabe 1: Blinkende LED ==
== Aufgabe 1: Blinkende LED ==
[[Datei:Arduino-onboard-led-pin13-blink.jpg|thumb|rigth|300px|Abb. 2: Blinkende Leuchten werden im Verkehr]]
[[Datei:Arduino-onboard-led-pin13-blink.jpg|thumb|rigth|300px|Abb. 3: Blinkende Leuchten werden im Verkehr]]
Auf dem Arduino ist an Pin 13 bereits eine LED eingebaut (siehe Abb. 2). Häufig blinkt diese Lampe schon, wenn man ein neues Arduino-Board anschließt, da das Blink-Programm zum Testen des Boards je nach Hersteller bereits vorab installiert ist. Wir werden dieses Blinken jetzt selbst programmieren.
[[Datei:Anode Kathode.png|thumb|rigth|100px|Abb. 4: LED]]
Auf dem Arduino ist an Pin 13 bereits eine LED eingebaut (siehe Abb. 3). Häufig blinkt diese Lampe schon, wenn man ein neues Arduino-Board anschließt, da das Blink-Programm zum Testen des Boards je nach Hersteller bereits vorab installiert ist. Wir werden dieses Blinken jetzt selbst programmieren.
# Roboterkonfiguration (LED an D13)
# Roboterkonfiguration (LED an D13)
# In einer Schleife - LED einschalten, 1 s warten, LED ausschalten, 1 s warten,usw.
# In einer Schleife - LED einschalten, 1 s warten, LED ausschalten, 1 s warten,usw.
# Programm auf Arduino übertragen
# Programm auf Arduino übertragen
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Einführung: Steckbrett&thinsp;</strong>
|-
|
[[Datei:Steckbrett.png|mini|links|Abb. 4: Auf dem Steckbrett werden experimentelle Schaltungen aufgebaut]]
|-
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
| <strong>Musterlösung&thinsp;</strong>
|-
|-
|
|
[[Datei:ORL A1 Roboterkonfiguration.jpg|mini|links|Abb. 3: Roboterkonfiguration für die interne LED]]
[[Datei:ORL A1 Roboterkonfiguration.jpg|mini|links|Abb. 5: Roboterkonfiguration für die interne LED]]
[[Datei:ORL A1 Programm.jpg|mini|links|Abb. 4: Testprogramm gibt "Hallo Welt!" auf dem seriellen Monitor aus.]]
[[Datei:ORL A1 Programm.jpg|mini|links|Abb. 6: Testprogramm gibt "Hallo Welt!" auf dem seriellen Monitor aus.]]
 
 
|-
|-
|}
|}


== Aufgabe 2: Wechselblinker ==
== Aufgabe 2: Wechselblinker ==
[[Datei:Blinker Ueberweg.jpg|thumb|rigth|300px|Abb. 3: Blinkende Leuchten werden im Verkehr]]
[[Datei:Blinker Ueberweg.jpg|thumb|rigth|300px|Abb. 7: Blinkende Leuchten werden im Verkehr]]
Zwei Leuchtdioden sollen abwechselnd blinken. Blinkende Leuchten werden im Verkehr als Warnsignal an Fußgängerüberwegen und an Bahnübergängen eingesetzt (vgl. Abb. 3).
Zwei Leuchtdioden sollen abwechselnd blinken. Blinkende Leuchten werden im Verkehr als Warnsignal an Fußgängerüberwegen und an Bahnübergängen eingesetzt (vgl. Abb. 6).
# Schalte eine LED mit Vorwiderstand über D8 gegen GND.
# Schalte eine LED mit Vorwiderstand über D8 gegen GND.
# Schalte eine LED mit Vorwiderstand über D7 gegen GND.
# Schalte eine LED mit Vorwiderstand über D7 gegen GND.
Zeile 90: Zeile 99:
# Schalte im Sekundentakt wechselnd eine LED an und die andere aus.
# Schalte im Sekundentakt wechselnd eine LED an und die andere aus.
# Übertrage das Programm auf den Arduino.
# Übertrage das Programm auf den Arduino.
'''Frage:''' Wieso hat die LED unterschiedlich lange Beine?
'''Frage:''' Wieso hat die LED unterschiedlich lange Beine (vgl. Abb. 4)?  
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Stückliste&thinsp;</strong>
| <strong>Stückliste&thinsp;</strong>
Zeile 110: Zeile 119:
|-
|-
|
|
[[Datei:ORL A2 Schaltplan.jpg|mini|links|Abb. 5: Schaltplan für den Wechselblinker]]
[[Datei:ORL A2 Schaltplan.jpg|mini|links|Abb. 8: Schaltplan für den Wechselblinker]]


|-
|-
Zeile 118: Zeile 127:
|-
|-
|
|
[[Datei:ORL_A2_Programm.jpg|mini|links|Abb. 6:Programm für den Wechselblinker]]
[[Datei:ORL_A2_Programm.jpg|mini|links|Abb. 9: Programm für den Wechselblinker]]
|-
|-
|}
|}


== Aufgabe 3: LED pulsieren lassen ==
== Aufgabe 3: LED pulsieren lassen ==
[[Datei:FAQ PWM dimmen DE.PNG|thumb|rigth|450px|Abb. 8: Pulsweitenmodulation zur Einstellung der Helligkeit einer LED]]
[[Datei:FAQ PWM dimmen DE.PNG|thumb|rigth|450px|Abb. 10: Pulsweitenmodulation zur Einstellung der Helligkeit einer LED]]
Eine LED soll pulsierend heller und dunkler werden (engl. faden).
Eine LED soll pulsierend heller und dunkler werden (engl. faden).
# Schalte eine LED mit Vorwiderstand über D6 gegen GND.
# Schalte eine LED mit Vorwiderstand über D6 gegen GND.
# Passe die Roboterkonfiguration entsprechend an (s. Abb. ).
# Passe die Roboterkonfiguration entsprechend an (s. Abb. 12).
# Schicke Werte von 0..255 an die LED.
# Schicke Werte von 0..255 an die LED.
# Übertrage das Programm auf den Arduino.
# Übertrage das Programm auf den Arduino.
# Bonus: Erweitern Sie Ihr Programm, so dass die LED heller und wieder dunkler wird.
# Bonus: Erweitern Sie Ihr Programm, so dass die LED abwechselnd heller und wieder dunkler wird.
'''Frage:''' Wieso hat die LED unterschiedlich lange Beine?
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Stückliste&thinsp;</strong>
| <strong>Stückliste&thinsp;</strong>
Zeile 150: Zeile 158:
|-
|-
|
|
[[Datei:ORL A3 Schaltplan.jpg|mini|links|Abb. 7: Schaltplan für die pulsierende LED]]
[[Datei:ORL A3 Schaltplan.jpg|mini|links|Abb. 11: Schaltplan für die pulsierende LED]]
|-
|-
|}
|}
Zeile 160: Zeile 168:
| Das lange Beinchen der Diode ist Plus (+) und das Kurze Minus (-, GND).
| Das lange Beinchen der Diode ist Plus (+) und das Kurze Minus (-, GND).
|-
|-
| Mit einer Pulsweitenmodulation (s. Abb. 8) lässt sich eine LED dimmen.
| Mit einer Pulsweitenmodulation (s. Abb. 10) lässt sich eine LED dimmen.
|-
|-
| Die PWM-fähigen Ports sind mit ~ markiert. Wir nehmen Digitalport ~6.
| Die PWM-fähigen Ports sind mit ~ markiert. Wir nehmen Digitalport ~6.
Zeile 168: Zeile 176:
|-
|-
|
|
[[Datei:ORL A3 Roboterkonfiguration.jpg|mini|links|Abb. 8: Roboterkonfiguration]]
[[Datei:ORL A3 Roboterkonfiguration.jpg|mini|links|Abb. 12: Roboterkonfiguration]]
[[Datei:ORL_A3_Programm.jpg|mini|links|Abb. 9: Programm für die pulsierende LED]]
[[Datei:ORL_A3_Programm.jpg|mini|links|Abb. 13: Programm für die pulsierende LED]]
|-
|-
|}
|}


== Aufgabe 4: LED mit Potentiometer dimmen ==
== Aufgabe 4: LED mit Potentiometer dimmen ==
Zeile 179: Zeile 186:
Lerninhalt: Spannung eines Drehreglers auslesen, Sensorwerte mathematisch verarbeiten und für eine Ausgabe verwenden.
Lerninhalt: Spannung eines Drehreglers auslesen, Sensorwerte mathematisch verarbeiten und für eine Ausgabe verwenden.


Ein Drehregler hat drei Anschlüsse. Außen wird rechts + und links – angeschlossen. Von dem mittleren Pin geht ein Kabel zu einem analogen Eingangspin am Mikrocontroller-Board. Wenn man den Drehregler dreht, dann gibt der mittlere Pin eine Spannung zwischen 0 und 5&#8239;Volt aus. Drehregler ganz links: 0&#8239;V und Drehregler ganz rechts: 5&#8239;V, bzw. seitenverkehrt, je nach Verkabelung. Der Analog-Digital-Wandler wandelt die gemessene Spannung in einen Wertebereich um.
Ein Drehregler hat drei Anschlüsse. Außen wird rechts + und links – angeschlossen. Von dem mittleren Pin geht ein Kabel zu einem analogen Eingangspin am Mikrocontroller-Board. Wenn man den Drehregler dreht, dann gibt der mittlere Pin eine Spannung zwischen 0 und 5&#8239;Volt aus. Drehregler ganz links: 0&#8239;V und Drehregler ganz rechts: 5&#8239;V, bzw. seitenverkehrt, je nach Verkabelung. Der 10-Bit Analog-Digital-Wandler wandelt die gemessene Spannung in einen Wertebereich um.


# Schalte eine LED mit Vorwiderstand über D6 gegen GND.
# Schalte eine LED mit Vorwiderstand über D6 gegen GND.
# Schließe das Potentiometer an A0 an und Versorge es mit 5V.
# Schließe das Potentiometer an A0 an und Versorge es mit 5V.
# Passe die Roboterkonfiguration entsprechend an (s. Abb. 9).
# Passe die Roboterkonfiguration entsprechend an (s. Abb. 15).
# Messe die Eingangswerte des Potentiometers.
# Messe die Eingangswerte des Potentiometers. Welchen Wertebereich hat A0?
# Rechne die Eingangswerte in die Ausgangswerte um.
# Schicke Werte von 0..255 an die LED.
# Schicke Werte von 0..255 an die LED.
# Übertrage das Programm auf den Arduino.
# Übertrage das Programm auf den Arduino.
Zeile 209: Zeile 217:
|-
|-
|
|
[[Datei:ORL A4 Schaltplan.jpg|mini|links|Abb. 11: Schaltplan für die gedimmte LED]]
[[Datei:ORL A4 Schaltplan.jpg|mini|links|Abb. 14: Schaltplan für die gedimmte LED]]
|-
|-
|}
|}
Zeile 219: Zeile 227:
| Das lange Beinchen der Diode ist Plus (+) und das Kurze Minus (-, GND).
| Das lange Beinchen der Diode ist Plus (+) und das Kurze Minus (-, GND).
|-
|-
| Mit einer Pulsweitenmodulation (s. Abb. 7) lässt sich eine LED dimmen.
| Mit einer Pulsweitenmodulation (s. Abb. 9) lässt sich eine LED dimmen.
|-
| Die PWM-fähigen Ports sind mit ~ markiert. Wir nehmen Digitalport ~6 (vgl. Abb. 134).
|-
| Das Potentiometer hat drei Beinchen: rechts (5&#8239;V), mitte (A0), links (GND) (vgl. Abb. 14).
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp 2&thinsp;</strong>
|-
|-
| Die PWM-fähigen Ports sind mit ~ markiert. Wir nehmen Digitalport ~6.
| Am Analogeingang A0 ist ein 10-Bit Analog-Digital-Wandler verbaut. 0&#8239;V wird zum Digitalwert 0 und 5&#8239;V zum Digitalwert 1023 (<math>2^{10}-1</math>).
|-
|-
| Das Potentiometer hat drei Beinchen: rechts (5&#8239;V), mitte (A0), links (GND)
| 0..1023 wird über die Division durch 4 ungefähr zum Wertebereich 0..255 für die PWM.
|}
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
Zeile 229: Zeile 244:
|-
|-
|
|
[[Datei:ORL A4 Roboterkonfiguration.jpg|mini|links|Abb. 12: Roboterkonfiguration]]
[[Datei:ORL A4 Roboterkonfiguration.jpg|mini|links|Abb. 15: Roboterkonfiguration]]
[[Datei:ORL_A4_Programm.jpg|mini|links|Abb. 13: Programm für die gedimmte LED]]
[[Datei:ORL_A4_Programm.jpg|mini|links|Abb. 16: Programm für die gedimmte LED]]
|-
|-
|}
|}
== Weiterführende Links ==
== Weiterführende Links ==
* [[Arduino| Einstieg in die Welt des Arduino Uno R3]]
* [[Arduino| Einstieg in die Welt des Arduino Uno R3]]

Aktuelle Version vom 1. Februar 2024, 11:34 Uhr

Abb. 1: Mechatronische Projekte mit dem Arduino
Autor: Prof. Dr.-Ing. Schneider
Termin: 01.02.2024
Raum: L3.1-E02-180 (Labor Robotik)
Thema: Arduino Workshop
Betreuer: Prof. Dr.-Ing. Schneider, Tel. 806
Tabelle 1: Ablauf des Workshops
Gruppe A Gruppe B Inhalt Dauer
12:00 13:30 Begrüßung 5 Min.
12:05 13:35 Einführung Mikrocontroller 5 Min.
12:10 13:40 Open Roberta Lab, "Hello World!" 10 Min.
12:20 13:50 Blinkende LED (D13) 10 Min.
12:40 14:10 Wechselblinker 15 Min.
12:55 14:25 LED pulsieren lassen 15 Min.
13:10 14:40 LED mit Potentiometer dimmen 15 Min.
13:25 14:55 Verabschiedung 5 Min.


Motivation

Mikrocontroller sind in unserer modernen Welt überall etwas versteckt zu finden. Sie steuern Kaffeemaschinen, Lichtschalter, Staubsauger, Kühlschränke, Waschmaschinen bis hin zu Rasenmähern. Sie bewässern automatisch unsere Pflanzen und prüfen den Kalkgehalt unseres Wassers. Dieser Workshop gibt einen Einblick in die Funktion eines Mikrocontrollers am Beispiel der Plattform Arduino.

Was als Experimentierprojekt für Elektronikbegeisterte begann, ist mittlerweile zur professionellen Lösung für industrielle Anwendungen geworden – der Microcontroller Arduino. In praktischen Versuchen erlernst Du das Programmieren des beliebten Microcontrollers. Vorkenntnisse sind nicht notwendig – Schritt für Schritt erklären wir Dir den Arduino und seine Komponenten – und warum Programmierung kein Hexenwerk ist.

Software

Der Arduino lässt sich mir viele Entwicklungsumgebungen programmieren. Die einfachste Umgebung stellt das Open Roberta Lab bereit.

Vorbereitung im PC-Pool

  • Pro zweier Team einen PC mit USB-Eingang und Internetzugang
  • Auf den PCs muss der Open Roberta Connector in der neuesten Version (1.6.8) und Java installiert sein.
  • Eine Anleitung gibt es hier.
  • Die Seite Open Roberta Lab muss erreichbar sein, da wir mit dieser programmieren wollen.
  • Dozenten-PC und Beamer für die visuelle Anleitung müssen verfügbar sein.

Aufgabe 1: Blinkende LED

Abb. 3: Blinkende Leuchten werden im Verkehr
Abb. 4: LED

Auf dem Arduino ist an Pin 13 bereits eine LED eingebaut (siehe Abb. 3). Häufig blinkt diese Lampe schon, wenn man ein neues Arduino-Board anschließt, da das Blink-Programm zum Testen des Boards je nach Hersteller bereits vorab installiert ist. Wir werden dieses Blinken jetzt selbst programmieren.

  1. Roboterkonfiguration (LED an D13)
  2. In einer Schleife - LED einschalten, 1 s warten, LED ausschalten, 1 s warten,usw.
  3. Programm auf Arduino übertragen

Aufgabe 2: Wechselblinker

Abb. 7: Blinkende Leuchten werden im Verkehr

Zwei Leuchtdioden sollen abwechselnd blinken. Blinkende Leuchten werden im Verkehr als Warnsignal an Fußgängerüberwegen und an Bahnübergängen eingesetzt (vgl. Abb. 6).

  1. Schalte eine LED mit Vorwiderstand über D8 gegen GND.
  2. Schalte eine LED mit Vorwiderstand über D7 gegen GND.
  3. Passe die Roboterkonfiguration entsprechend an.
  4. Schalte im Sekundentakt wechselnd eine LED an und die andere aus.
  5. Übertrage das Programm auf den Arduino.

Frage: Wieso hat die LED unterschiedlich lange Beine (vgl. Abb. 4)?

Aufgabe 3: LED pulsieren lassen

Abb. 10: Pulsweitenmodulation zur Einstellung der Helligkeit einer LED

Eine LED soll pulsierend heller und dunkler werden (engl. faden).

  1. Schalte eine LED mit Vorwiderstand über D6 gegen GND.
  2. Passe die Roboterkonfiguration entsprechend an (s. Abb. 12).
  3. Schicke Werte von 0..255 an die LED.
  4. Übertrage das Programm auf den Arduino.
  5. Bonus: Erweitern Sie Ihr Programm, so dass die LED abwechselnd heller und wieder dunkler wird.

Aufgabe 4: LED mit Potentiometer dimmen

Eine LED soll gedimmt werden. Die Helligkeit soll mit einem Drehregler (Potentiometer) eingestellt werden.

Lerninhalt: Spannung eines Drehreglers auslesen, Sensorwerte mathematisch verarbeiten und für eine Ausgabe verwenden.

Ein Drehregler hat drei Anschlüsse. Außen wird rechts + und links – angeschlossen. Von dem mittleren Pin geht ein Kabel zu einem analogen Eingangspin am Mikrocontroller-Board. Wenn man den Drehregler dreht, dann gibt der mittlere Pin eine Spannung zwischen 0 und 5 Volt aus. Drehregler ganz links: 0 V und Drehregler ganz rechts: 5 V, bzw. seitenverkehrt, je nach Verkabelung. Der 10-Bit Analog-Digital-Wandler wandelt die gemessene Spannung in einen Wertebereich um.

  1. Schalte eine LED mit Vorwiderstand über D6 gegen GND.
  2. Schließe das Potentiometer an A0 an und Versorge es mit 5V.
  3. Passe die Roboterkonfiguration entsprechend an (s. Abb. 15).
  4. Messe die Eingangswerte des Potentiometers. Welchen Wertebereich hat A0?
  5. Rechne die Eingangswerte in die Ausgangswerte um.
  6. Schicke Werte von 0..255 an die LED.
  7. Übertrage das Programm auf den Arduino.

Weiterführende Links

Programmheft