Erste Schritte mit dem Arduino Uno R3

| Autor: | Prof. Dr.-Ing. Schneider |
| Modul: | Praxismodul I |
| Gruppe: | B |
| Lektion 7: | Mechatronik, Informatikpraktikum, 1. Semester |
Inhalt
Inhalt
In dieser Lektion werden die grundlegenden Konzepte der Programmierung eines Arduino Uno eingeführt. Anhand einfacher praktischer Aufgaben lernen die Studierenden, ein Arduino-Programm zu erstellen, zu simulieren und schrittweise zu erweitern.
Zunächst werden die Entwicklungsumgebung Wokwi und die grundlegende Programmstruktur mit den Funktionen setup() und loop() kennengelernt. Anschließend werden digitale Ausgänge zur Ansteuerung von LEDs und digitale Eingänge zum Einlesen von Tastern verwendet.
Darauf aufbauend werden einfache Programmabläufe mit Variablen, bedingten Verzweigungen und zeitlichen Verzögerungen umgesetzt. Abschließend werden analoge Eingangswerte mit einem Potentiometer erfasst und mithilfe eines PWM-Signals zur Einstellung der LED-Helligkeit verwendet.
Ein weiterer Bestandteil der Lektion ist die Einführung in die Versionsverwaltung mit Subversion (SVN). Die Studierenden lernen, Projekte aus dem zentralen Repository auszuchecken, Änderungen zu speichern (Commit) und den aktuellen Projektstand zu aktualisieren (Update).
Die Aufgaben werden schrittweise bearbeitet und durch eigenständige Änderungen am Programm ergänzt. Die Ergebnisse werden in Wokwi simuliert, überprüft und für die weitere Bearbeitung in SVN gesichert.
Eingeführte Begriffe und Konzepte
Die Bedienoberfläche uSVN und der Client Turtoise SVN wird vorgestellt. Der Umgang mit den wesentlichen Funktionen wird geübt. Neue Begriffe sind:
CheckoutCommitUpdateTagBranchTrunkShow LogRepro-browserRevertClean upGet lockMergeDiff
Neue Arduino-Begriffe sind: Sketch, Serial.begin(), Serial.print(), Serial.println(), pinMode(), digitalWrite(), delay()
Voraussetzungen
Grundlagen der PC-Bedienung sind erforderlich.
Lernziele
Nach Durchführung dieser Lektion können die Studierenden:
- mit der Versionskontrolle SVN umgehen.
- die grundlegende Struktur eines Arduino-Programms erläutern und die Aufgaben der Funktionen
setup()undloop()beschreiben. - digitale Ein- und Ausgänge konfigurieren und zur Ansteuerung von LEDs sowie zum Einlesen von Tastern verwenden.
- einfache Programmabläufe mit Variablen und bedingten Verzweigungen (
if-else) erstellen. - zeitliche Abläufe mithilfe der Funktion
delay()programmieren. - analoge Eingangswerte mit analogRead() erfassen und deren Wertebereich interpretieren.
- PWM-Signale zur Einstellung der LED-Helligkeit mit
analogWrite()verwenden. - einfache Arduino-Programme selbstständig erstellen, simulieren, testen und gezielt verändern.
- die Funktionsweise ihrer Programme anhand des Quellcodes und der zugehörigen Schaltung erklären.
Vorbereitung
Vorbereitung Aufgabe 1: Umgang mit SVN
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor.
- Studieren Sie folgenden Wiki-Artikel: Software Versionsverwaltung mit SVN.
- Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z. B.
D:\SVN\Gruppenordner. - Checken Sie mit
SVN/Checkouteine Arbeitskopie des Arbeitsordners aus. URL:https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/WS2627 - Schreiben Sie eine Textdatei
Test.txtmit beliebigem Inhalt. - Sichern Sie Ihre Daten auf dem SVN Server mit
SVN/Commit; Schreiben Sie einen passenden Log-Text. - Checken Sie eine 2. Arbeitskopie aus.
- Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in unterschiedlichen Zeilen
- Sichern Sie beider Arbeitskopien auf dem SVN Server mit
SVN/Commit; Schreiben Sie einen passenden Log-Text. - Analysieren Sie die Differenz mit
SVN/Diff. - Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in GLEICHEN Zeilen
- Sichern Sie beider Arbeitskopien auf dem SVN Server mit
SVN/Commit; Schreiben Sie einen passenden Log-Text. - Lösen Sie den Konflikt mit:
SVN/Merge - Legen Sie einen
SVN/Tagan.
Arbeitsergebnisse in SVN:
Test.txtmit Historie (s.o.)
Vorbereitung Aufgabe 2: Arduino Uno R3
Befassen Sie sich mit der Arduino-Uno Hardware und beantworten Sie die Fragen:
- Welches sind die technischen Daten eines Arduino UNO R3?
- Mikrocontroller
- Spannungsversorgung
- Betriebsspannung
- Digitale I/O
- Analoge I/O
- Strom pro digitalem Pin
- Flash Memory
- SRAM
- EEPROM
- Taktfrequenz
- Programmierschnittstelle
- ISCP-Schnittstelle
- Recherchieren und erläutern Sie diese Fachbegriffe.
- Untersuchen Sie die Steckplatine (Engl. breadboard). Wie ist es aufgebaut?
Arbeitsergebnis: ArduinoUnoSpec.pdf
| Tipp 1 |
| Die Lösungen finden Sie in der Arduino Dokumentation. |
| Tipp 2 |
| Die Funktion der Steckplatine wird auf Wikipedia gut beschrieben. |
Vorbereitung Aufgabe 3: LED ansteuern
Erstellen Sie in Wokwi eine Schaltung mit einem Arduino Uno und einer LED.
Die LED soll:
- 1 Sekunde leuchten.
- 1 Sekunde ausgeschaltet sein.
- Diesen Vorgang dauerhaft wiederholen.
- Ändern Sie die Wartezeiten so, dass die LED doppelt so schnell blinkt.
Arbeitsergebnis in SVN: steureLED.ino
Nützliche Befehle: pinMode(), digitalWrite(), delay()
| Tipp |
|
Vorbereitung Aufgabe 4: Ein Taster steuert eine LED
Erweitern Sie in Wokwi die Schaltung um einen Taster.
- Die LED soll leuchten, solange der Taster gedrückt wird.
- Wird der Taster losgelassen, soll die LED ausgehen.
- Ändern Sie das Programm so, dass die LED bei jedem Tastendruck ihren Zustand wechselt.
Arbeitsergebnis in SVN: schalteLED.ino
Nützlicher Befehl: digitalRead()
| Tipp |
|
Vorbereitung Aufgabe 5: Helligkeit einstellen
- Simulieren Sie Ihre Schaltung mit Wokwi.
- Schließen Sie ein Potentiometer und eine LED an.
- Drehen Sie am Potentiometer. Die Helligkeit der LED soll sich entsprechend verändern.
- Sorgen Sie dafür, dass die LED erst ab einem bestimmten Potentiometerwert leuchtet.
Arbeitsergebnis in SVN: dimmeLED.ino
Nützliche Befehle: analogRead(), analogWrite(), map(), delay()
| Tipp |
|
Versuchsdurchführung
| Uhrzeit | Aufgabe | Dauer |
|---|---|---|
| 11:00 Uhr | Umgang mit SVN | 10 min |
| 11:10 Uhr | LED ansteuern | 15 min |
| 11:25 Uhr | Wechselblinker | 10 min |
| 11:35 Uhr | Ein Taster steuert eine LED | 20 min |
| 11:55 Uhr | Helligkeit einstellen | 20 min |
| 12:15 Uhr | Programme in SVN sichern | 5 min |
| 12:20 Uhr | Laborplatz aufräumen | 10 min |
| 12:30 Uhr | Praktikumsende |
Aufgaben 1: Umgang mit SVN
- Loggen Sie sich via USVN ein und ändern Sie Ihr Passwort
- Vorname.Nachname@stud.hshl.de::Kennwort1 (z. B. Max_Mustermann Kennwort1)
- Prüfen Sie, ob Sie Zugang zum passenden Repositorium haben.
- Installieren Sie Tortoise SVN für Windows (Mac) in englischer Sprache.
- Legen Sie sich auf der Datenpartition unter D:\SVN ein Repositorium "Inf1P" an.
- Machen Sie sich mit der Funktion von SVN bekannt.
- Sichern Sie alle Ihren Quelltext in Ihrem Gruppenordner.
| HSHL Wiki | https://wiki.hshl.de/
|
| uSVN Benutzeroberfläche | https://svn.hshl.de/
|
| SVN Checkout URL | https://svn.hshl.de/svn/Informatikpraktikum_1/trunk
|
| SVN-Anleitung | Software Versionsverwaltung mit SVN |
Aufgaben 2: LED ansteuern
- Laden Sie aus SVN
steureLED.ino. - Bauen Sie die LED Schaltung auf.
- Die LED soll:
- 1 Sekunde leuchten.
- 1 Sekunde ausgeschaltet sein.
- Diesen Vorgang dauerhaft wiederholen.
- Ändern Sie die Wartezeiten so, dass die LED doppelt so schnell blinkt.
- Kommentieren Sie Ihr Programm ausführlich.
- Stellen Sie Ihr Programm Prof. Schneider vor.
Arbeitsergebnis in SVN: steureLED.ino
Nützliche Befehle: pinMode(), digitalWrite(), delay()
| Tipp |
|
Aufgabe 3: Wechselblinker
Zwei Leuchtdioden sollen abwechselnd blinken.
Nützliche Befehle: pinmode(), digitalWrite(), delay
Arbeitsergebnisse in SVN: Wechselblinker.ino
| Musterlösung |
| Wechselblinker |
Aufgabe 4: Ein Taster steuert eine LED
Erweitern Sie die Schaltung um einen Taster.
- Die LED soll jedem Tastendruck ihren Zustand wechselt.
- Werten Sie Ihr Programm mit Header und Kommentaren auf.
- Stellen Sie Ihr Programm Prof. Schneider vor.
Arbeitsergebnis in SVN: schalteLED.ino
Nützlicher Befehl: digitalRead()
| Tipp |
|
Aufgaben 5: Helligkeit einstellen
- Simulieren Sie Ihre Schaltung mit Wokwi.
- Schließen Sie ein Potentiometer und eine LED an.
- Drehen Sie am Potentiometer. Die Helligkeit der LED soll sich entsprechend verändern.
- Sorgen Sie dafür, dass die LED erst ab einem bestimmten Potentiometerwert leuchtet.
- Werten Sie Ihr Programm mit Header und Kommentaren auf.
- Stellen Sie Ihr Programm Prof. Schneider vor.
Arbeitsergebnis in SVN: dimmeLED.ino
Nützliche Befehle: analogRead(), analogWrite(), map(), delay()
| Tipp |
|
Aufgabe 6: Nachhaltige Dokumentation
- Sichern Sie alle Ergebnisse mit beschreibendem Text (
message) in SVN. - Beachten Sie dabei die Software Anforderungen
Arbeitsergebnis in SVN: SVN Log
Tutorial und Dokumentationen
- Software Versionsverwaltung mit SVN
- Arduino Befehlsübersicht
- Komplexitätsbeherrschung durch Versionskontrolle Komplexitätsbeherrschung durch Versionskontrolle
- Source Control mit SVN vs. GIT Source Control mit SVN vs. GIT
- Handbuch Tortoise SVN (Deutsch)
- Handbuch Tortoise Merge (Deutsch)
- Programmierrichtlinie für C
Mit den folgenden Video Tutorial lernen Sie spielend leicht und kostenlos den Einstieg in die Versionskontrolle:
- Christopher Janietz - Versionskontrolle mit Git und SVN bei LinkedIn
- Julian Robichaux - SVN for Java Developers bei LinkedIn
Mit den folgenden Video Tutorial lernen Sie spielend leicht und kostenlos den Einstieg in die Arduino-Welt:
- Thomas Rode - Arduino Grundkurs bei LinkedIn
- Thomas Rose - Arduino: Kleine Projekte spielerisch umsetzen bei LinkedIn
- Thomas Rose - Lichtsteuerung mit dem Arduino bei LinkedIn
Den kostenlosen Zugang zum LinkedIN Portal erhalten Sie über den Bibliothekskatalog im Bereich "Lizenzierte Datenbanken".
Ausblick zur nächsten Lektion
Die nächste Lektion gibt eine Einführung in die Grundlagen der Programmierung:
- Hardwareaufbau
- Datentypen
- if-Verzeigung
- LED Ansteuerung
- Software Planung mit PAP
→ Termine von Gruppe B 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
→ zurück zum Hauptartikel: Arduino Praxiseinstieg
→ Haben Sie Fragen? Informatik Praktikum FAQ