Arduino: Taster auswerten und LEDs ansteuern: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 32: Zeile 32:


'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_03.pdf</code>
'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_03.pdf</code>
<div class="mw-collapsible mw-collapsed">
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 
| <strong>Musterlösung 1&thinsp;</strong>
*'''Lösung 1 - [[Arduino:_Interrupts|Interrupt Service Routine]]:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoInterrupt/DemoInterrupt.ino SVN: DemoInterrupt.ino]
|-
* '''Lösung 2 - <code>millis()</code>:''' [https://www.arduino.cc/en/Tutorial/BuiltInExamples/Debounce Beispiel, wie man einen Taster entprellt.]
|
</div>
* Studieren Sie den Artikel [[Arduino:_Interrupts|Interrupt Service Routine]].
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoInterrupt/DemoInterrupt.ino SVN: DemoInterrupt.ino]
|-
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung 2&thinsp;</strong>
|-
|
'''Lösung 2 - <code>millis()</code>:''' [https://www.arduino.cc/en/Tutorial/BuiltInExamples/Debounce Beispiel, wie man einen Taster entprellt.]
|-
|}


== Versuchsdurchführung ==
== Versuchsdurchführung ==

Version vom 6. Oktober 2023, 10:50 Uhr

Abb. 1: Pulsierende LED

Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lehrveranstaltung: Mechatronik, Informatikpraktikum 1, 1. Semester, Wintersemester

Inhalt

  • Programmierrichtlinien
  • Taster mittels Arduino auslesen, entprellen, Pull-Up/Pull-Down-Widerstand
  • Zähler inkrementieren
  • switch..case-Verzweigung
  • Ansteuerung einer RGB-LED


Lernziele

Nach Durchführung dieser Lektion

  • können Sie Quelltext entsprechend der Programmierrichtlinien schreiben.
  • einen Taster einlesen und entprellen.
  • können Sie mittels Taster und switch..case-Verzweigung eine LED in verschiedenen Helligkeiten ansteuern
  • eine RGB-LED in verschiedenen Farben ansteuern.

Lernzielkontrolle

  1. Wurde der Taster erfolgreich eingelesen und entprellt?
  2. Wozu benötigt man einen Pull-Up/Pull-Down-Widerstand?
  3. Wurde der Quelltext durch Header und Kommentare aufgewertet?
  4. Welche Möglichkeiten gibt es einen Zähler zu in-/dekrementieren?
  5. Wurde in Aufgabe 3.3 ein switch...case verwendet?
  6. Welche Version der RGB-LED haben Sie verwendet (gemeinsame Anode oder Kathode)?
  7. Wurden jedes Programm mittels PAP geplant?
  8. Wurde auf magic numbers verzichtet?
  9. Wurde die Programmierrichtlinie eingehalten?

Arbeitsergebnisse in SVN: Lernzielkontrolle_Termin_03.pdf

Versuchsdurchführung

Aufgabe 3.1: Lernzielkontrolle

Präsentieren Sie Prof. Schneider das Ergebnis der Lernzielkontrolle.

Arbeitsergebnisse in SVN: Lernzielkontrolle_Termin_03.pdf


Aufgabe 3.2: Eine LED per Tastendruck aktivieren

Eine LED soll für 5 Sekunden leuchten, wenn ein Taster betätigt wurde.

Nützliche Befehle: pinmode(), digitalRead(), digitalWrite(), delay, if..else

Arbeitsergebnisse in SVN: TasterSchaltetLED.ino


Aufgabe 3.3: Auf Knopfdruck dimmen

Ein Taster dimmt eine LED:

  1. Tastendruck: an, 100% Lichtleistung
  2. Tastendruck: an, 50% Lichtleistung
  3. Tastendruck: aus 0%

Nützliche Befehle: pinmode(), analogWrite(), delay(), switch..case

Arbeitsergebnisse in SVN: dimmeLED.ino


Aufgabe 3.4: Ansteuerung einer farbigen LED

Eine RGB-LED soll in verschiedenen Farben leuchten. Auf Druck des Tasters soll die RGB-LED in folgenden Modi betrieben werden:

  1. Weiß
  2. Rot
  3. Blau
  4. Grün
  5. Langsamer Übergang durch das gesamte Farbspektrum (Einschlaflicht)


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

Arbeitsergebnisse in SVN: steureFarbigeLED.ino


Aufgabe 3.5: Nachhaltige Doku

Sichern Sie alle Ergebnisse mit beschreibendem Text (message) in SVN.

  • Wurden die Regeln für den Umgang mit SVN eingehalten?
  • Wurde die Programmierrichtlinie eingehalten?
  • Wurde nachhaltig dokumentiert?
  • Haben die Programme einen Header?
  • Wurden der Quelltext umfangreich kommentiert?
  • Wurden die PAPs erstellt und abgelegt? Passen die PAPs 100% zum Programm?

Arbeitsergebnis in SVN: SVN Log

Tutorials

Demo

SVN: DemoInterrupt.ino

FAQ

  • Muss ich die Lösungen selbst programmieren? Ja, nur Eigenleistung wird bewertet.
  • Darf ich die Musterlösung 1:1 kopieren und als meine Leistung ausgeben? Nein, das ist ein Plagiat und wird als Täuschungsversuch gewertet.

Literatur

  1. Brühlmann, T.: Arduino Praxiseinstieg. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: HSHL-Bib, O'Reilly-URL
  2. Brühlmann, T.: Sensoren im Einsatz mit Arduino. Frechen : mitp Verlag, 1. Auflage 2017. ISBN: 9783958451520. URL: HSHL-Bib, O'Reilly
  3. Snieders, R.: ARDUINO lernen. Nordhorn: 8. Auflage 2022. URL: https://funduino.de/vorwort
  4. Schneider, U.: Programmierrichtlinie für für die Erstellung von Software in C. Lippstadt, 1. Auflage 2022. PDF-Dokument (212 kb)



→ Termine 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
→ zurück zum Hauptartikel: Arduino Praxiseinstieg