Erste Schritte mit dem Arduino Uno R3

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Abb. 1: 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:

  • Checkout
  • Commit
  • Update
  • Tag
  • Branch
  • Trunk
  • Show Log
  • Repro-browser
  • Revert
  • Clean up
  • Get lock
  • Merge
  • Diff

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() und loop() 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.

  1. Studieren Sie folgenden Wiki-Artikel: Software Versionsverwaltung mit SVN.
  2. Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z. B. D:\SVN\Gruppenordner.
  3. Checken Sie mit SVN/Checkout eine Arbeitskopie des Arbeitsordners aus. URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/WS2627
  4. Schreiben Sie eine Textdatei Test.txt mit beliebigem Inhalt.
  5. Sichern Sie Ihre Daten auf dem SVN Server mit SVN/Commit; Schreiben Sie einen passenden Log-Text.
  6. Checken Sie eine 2. Arbeitskopie aus.
  7. Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in unterschiedlichen Zeilen
  8. Sichern Sie beider Arbeitskopien auf dem SVN Server mit SVN/Commit; Schreiben Sie einen passenden Log-Text.
  9. Analysieren Sie die Differenz mit SVN/Diff.
  10. Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in GLEICHEN Zeilen
  11. Sichern Sie beider Arbeitskopien auf dem SVN Server mit SVN/Commit; Schreiben Sie einen passenden Log-Text.
  12. Lösen Sie den Konflikt mit: SVN/Merge
  13. Legen Sie einen SVN/Tag an.

Arbeitsergebnisse in SVN:

  • Test.txt mit Historie (s.o.)

Vorbereitung Aufgabe 2: Arduino Uno R3

Befassen Sie sich mit der Arduino-Uno Hardware und beantworten Sie die Fragen:

  1. Welches sind die technischen Daten eines Arduino UNO R3?
    1. Mikrocontroller
    2. Spannungsversorgung
    3. Betriebsspannung
    4. Digitale I/O
    5. Analoge I/O
    6. Strom pro digitalem Pin
    7. Flash Memory
    8. SRAM
    9. EEPROM
    10. Taktfrequenz
    11. Programmierschnittstelle
    12. ISCP-Schnittstelle
  2. Recherchieren und erläutern Sie diese Fachbegriffe.
  3. Untersuchen Sie die Steckplatine (Engl. breadboard). Wie ist es aufgebaut?

Arbeitsergebnis: ArduinoUnoSpec.pdf

Vorbereitung Aufgabe 3: LED ansteuern

Erstellen Sie in Wokwi eine Schaltung mit einem Arduino Uno und einer LED.

Die LED soll:

  1. 1 Sekunde leuchten.
  2. 1 Sekunde ausgeschaltet sein.
  3. Diesen Vorgang dauerhaft wiederholen.
  4. Ändern Sie die Wartezeiten so, dass die LED doppelt so schnell blinkt.

Arbeitsergebnis in SVN: steureLED.ino

Nützliche Befehle: pinMode(), digitalWrite(), delay()

Vorbereitung Aufgabe 4: Ein Taster steuert eine LED

Erweitern Sie in Wokwi die Schaltung um einen Taster.

  1. Die LED soll leuchten, solange der Taster gedrückt wird.
  2. Wird der Taster losgelassen, soll die LED ausgehen.
  3. Ändern Sie das Programm so, dass die LED bei jedem Tastendruck ihren Zustand wechselt.

Arbeitsergebnis in SVN: schalteLED.ino

Nützlicher Befehl: digitalRead()

Vorbereitung Aufgabe 5: Helligkeit einstellen

  1. Simulieren Sie Ihre Schaltung mit Wokwi.
  2. Schließen Sie ein Potentiometer und eine LED an.
  3. Drehen Sie am Potentiometer. Die Helligkeit der LED soll sich entsprechend verändern.
  4. 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()

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.
Tabelle 1: Nützliche Links für den Semesterstart
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

  1. Laden Sie aus SVN steureLED.ino.
  2. Bauen Sie die LED Schaltung auf.
  3. Die LED soll:
    1. 1 Sekunde leuchten.
    2. 1 Sekunde ausgeschaltet sein.
    3. Diesen Vorgang dauerhaft wiederholen.
  4. Ändern Sie die Wartezeiten so, dass die LED doppelt so schnell blinkt.
  5. Kommentieren Sie Ihr Programm ausführlich.
  6. Stellen Sie Ihr Programm Prof. Schneider vor.

Arbeitsergebnis in SVN: steureLED.ino

Nützliche Befehle: pinMode(), digitalWrite(), delay()

Aufgabe 3: Wechselblinker

Zwei Leuchtdioden sollen abwechselnd blinken.

Nützliche Befehle: pinmode(), digitalWrite(), delay

Arbeitsergebnisse in SVN: Wechselblinker.ino

Aufgabe 4: Ein Taster steuert eine LED

Erweitern Sie die Schaltung um einen Taster.

  1. Die LED soll jedem Tastendruck ihren Zustand wechselt.
  2. Werten Sie Ihr Programm mit Header und Kommentaren auf.
  3. Stellen Sie Ihr Programm Prof. Schneider vor.

Arbeitsergebnis in SVN: schalteLED.ino

Nützlicher Befehl: digitalRead()

Aufgaben 5: Helligkeit einstellen

  1. Simulieren Sie Ihre Schaltung mit Wokwi.
  2. Schließen Sie ein Potentiometer und eine LED an.
  3. Drehen Sie am Potentiometer. Die Helligkeit der LED soll sich entsprechend verändern.
  4. Sorgen Sie dafür, dass die LED erst ab einem bestimmten Potentiometerwert leuchtet.
  5. Werten Sie Ihr Programm mit Header und Kommentaren auf.
  6. Stellen Sie Ihr Programm Prof. Schneider vor.

Arbeitsergebnis in SVN: dimmeLED.ino

Nützliche Befehle: analogRead(), analogWrite(), map(), delay()

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

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