Einstieg in die Welt des Arduino: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(31 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Arduino]]
[[Kategorie:Arduino]]
[[Datei:Lernset - Einsteiger Kit für Arduino.jpg|thumb|rigth|450px|Abb. 1: Lernset - Einsteiger Kit für Arduino]]
[[Datei:Lernset - Einsteiger Kit für Arduino.jpg|thumb|rigth|450px|Abb. 1: Lernset - Einsteiger Kit für Arduino]]
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]<br>
{|
'''Modul:''' Praxismodul I<br>
|-
'''Lehrveranstaltung:''' Mechatronik, Informatikpraktikum 1, 1. Semester, Wintersemester
| '''Autor:''' || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
|-
| '''Modul:''' || Praxismodul I
|-
| '''Lektion 2:''' || Mechatronik, Informatikpraktikum, 1. Semester, Wintersemester
|}


== Inhalt ==
== Inhalt ==
* Einstieg in die Arduino Welt
* Einstieg in die Arduino Welt
* Programmcode (Datentypen, Grundstruktur)
* Programmcode (Datentypen, Grundstruktur)
* if-Verzweigung
* LED, aktiver und passiver Lautsprecher
* Arduino IDE, Serieller Monitor, Code Debugging
* Arduino IDE, Serieller Monitor, Code Debugging
* Digitale Ein- und Ausgänge
* Digitale Ein- und Ausgänge
* Analoge Ein- und Ausgänge
* Analoge Ein- und Ausgänge
'''HSHL-Wiki Grundlagenartikel:''' [[Arduino]]


== Lernziele==
== Lernziele==
Zeile 19: Zeile 28:
* haben Sie elektrische LED Schaltungen aufgebaut und in Betrieb genommen.
* haben Sie elektrische LED Schaltungen aufgebaut und in Betrieb genommen.
* haben Sie eine LED über eine Pulsweitenmodulation angesteuert.
* haben Sie eine LED über eine Pulsweitenmodulation angesteuert.
 
* können Sie eine if-Verzweigung programmieren.


== Lernzielkontrolle ==
== Lernzielkontrolle ==
Zeile 27: Zeile 36:
# Was ist ein Makro?
# Was ist ein Makro?
# Wann und wie verwendet man die Befehle <code>define, static, const</code>?
# Wann und wie verwendet man die Befehle <code>define, static, const</code>?
# Wie programmiert man eine if-Verzweigung?
# Wie steuert man eine LED an? Erstellen Sie eine Schaltskizze. Wozu dient der Widerstand?
# Wie steuert man eine LED an? Erstellen Sie eine Schaltskizze. Wozu dient der Widerstand?
# Was ist der unterschied zwischen einem Piezo Lautsprecher und einem aktiven Lautsprecher?
# Was ist der Unterschied zwischen aktiven und passiven Lautsprechern?
# Machen Sie sich mit dem [http://friedrich-folkmann.de/papdesigner/Hauptseite.html PAPDesigner] vertraut. Wou dient ein PAP? Planen Sie die Programme 2.2 bis 2.4 mit einem PAP.
# Machen Sie sich mit dem [http://friedrich-folkmann.de/papdesigner/Hauptseite.html PAPDesigner] vertraut. Lesen Sie den Artikel [[Software_Planung]]. Wozu dient ein PAP? Planen Sie die Programme 2.2 bis 2.4 mit einem PAP.


'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_02.pdf</code>
'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_02.pdf</code>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp 1&thinsp;</strong>
|-
| '''Beispiele für Deklarationen:''' <br>
<syntaxhighlight lang="c" style="background-color: #EFF1C1; font-size:small">
BAUD_RATE_u32 = 9600;
const unsigned int AUFLOESUNG_u16 = 1023;
const float ARDUINO_SPANNUNG_f32  = 5.0;
const uint8_t DIGITAL_PIN_u8 = 7;
byte i = 0;      // Zählvariablen können vereinfacht werden
byte Cnt_u8 = 0; // Alternative
</syntaxhighlight>
|-
|}
== Tutorial ==
*[[Software_Planung| Software Planung mit PAP]]
*[[Header_Beispiel_für_C|Header Beispiel für C]]
* [https://www.arduino.cc/reference/de/ Arduino Befehlsübersicht]


== Versuchsvorbereitung ==
== Versuchsvorbereitung ==
# Studieren Sie das Tutorials.
# Beantworten Sie die Lernzielkontrollfragen.
# Planen Sie die Software via PAP.
# Sichern Sie Ihre Unterlagen in SVN.
== Versuchsdurchführung ==
=== Aufgabe 2.1: Lernzielkontrolle ===
=== Aufgabe 2.1: Lernzielkontrolle ===
Präsentieren Sie Prof. Schneider das Ergebnis der Lernzielkontrolle.
Präsentieren Sie Prof. Schneider das Ergebnis der Lernzielkontrolle.


'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_02.pdf</code>
'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_02.pdf</code>
----


=== Aufgabe 2.2: Wechselblinker ===
=== Aufgabe 2.2: Wechselblinker ===
Zwei Leuchtdioden sollen abwechselnd blinken.


<div class="mw-collapsible mw-collapsed">
'''Nützliche Befehle''': <code>pinmode(), digitalWrite(), delay</code>


'''Musterlösung:''' [https://funduino.de/nr-2-wechselblinker Wechselblinker]
'''Arbeitsergebnisse''' in SVN: <code>Wechselblinker.ino</code>
</div>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| [https://funduino.de/nr-2-wechselblinker Wechselblinker]
|-
|}
----


=== Aufgabe 2.3: Pulsierende LED ===
=== Aufgabe 2.3: Pulsierende LED ===
<div class="mw-collapsible mw-collapsed">
Eine LED soll pulsierend heller und dunkler werden.


'''Musterlösung:''' [https://funduino.de/nr-4-pulsierende-led Pulsierende LED]
'''Nützliche Befehle''': <code>pinmode(), analogWrite(), delay(), if</code>
</div>
 
'''Arbeitsergebnisse''' in SVN: <code>PulsierendeLED.ino</code>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| [https://funduino.de/nr-4-pulsierende-led Pulsierende LED]
|-
|}
----


=== Aufgabe 2.4: Licht und Tonsignal ===
=== Aufgabe 2.4: Licht und Tonsignal ===
Eine LED und ein Piezo-Lautsprecher sollen kontinuierlich blinken bzw. piepen. Zusätzlich werden in dieser Anleitung auch Variablen verwendet.
Dieses Mal nutzen wir auch den ersten Programmabschnitt. Hier werden Variablen eingetragen. Das bedeutet, dass sich nach der Festlegung in diesem Bereich hinter einem Buchstaben oder einem Wort für den gesamten folgenden Sketch eine Zahl verbirgt. Bei uns ist die LED an Pin4 angeschlossen und der Piezo-Speaker an Pin5. Damit man die beiden Pins später nicht verwechselt, benennen wir Pin4 und Pin5 einfach um.


* Was ist der Unterschied zwischen aktiven und passiven Lautsprechern?
* Was ist der Unterschied zwischen aktiven und passiven Lautsprechern?
<div class="mw-collapsible mw-collapsed">


'''Musterlösung:''' [https://funduino.de/nr-3-licht-und-ton Pulsierende LED]
'''Nützliche Befehle''': <code>pinmode(), digitalWrite(), delay()</code>
</div>
 
'''Arbeitsergebnisse''' in SVN: <code>LichtundTon.ino</code>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| [https://funduino.de/nr-3-licht-und-ton Pulsierende LED]
|-
|}
----


=== Aufgabe 2.5: Nachhaltige Doku ===
=== Aufgabe 2.5: Nachhaltige Doku ===
Zeile 66: Zeile 128:
* Haben die Programme einen Header?
* Haben die Programme einen Header?
* Wurden der Quelltext umfangreich kommentiert?
* Wurden der Quelltext umfangreich kommentiert?
* Wurden die PAPs erstellt und abgelegt? Passen die PAPs 100% zum Programm?


'''Arbeitsergebnis''' in SVN: <code>SVN Log</code>
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code>


== Versuchsdurchführung ==


== Bewertung ==
 
{| class="wikitable"
|-
| '''Aufgabe'''|| '''Punkte'''
|-
| 1.1|| 2
|-
| 1.2|| 2
|-
| 1.3|| 2
|-
| 1.4|| 2
|-
| 1.5|| 2
|-
|}
== Literatur ==
== Literatur ==
# Brühlmann, T: ''Arduino Praxiseinstieg''. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: [https://hshl.bsz-bw.de/cgi-bin/koha/opac-detail.pl?biblionumber=125816&query_desc=kw%2Cwrdl%3A%20arduino HSHL-Bib], [https://learning.oreilly.com/library/view/arduino-praxiseinstieg/9783747500569/ O'Reilly-URL]
# Brühlmann, T: ''Arduino Praxiseinstieg''. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: [https://hshl.bsz-bw.de/cgi-bin/koha/opac-detail.pl?biblionumber=125816&query_desc=kw%2Cwrdl%3A%20arduino HSHL-Bib], [https://learning.oreilly.com/library/view/arduino-praxiseinstieg/9783747500569/ O'Reilly-URL]
Zeile 93: Zeile 140:


----
----
→ zurück zum Hauptartikel:[[Arduino_Praxiseinstieg|Arduino Praxiseinstieg]]
→ Termine [[Einführungsveranstaltung Informatikpraktikum 1|0]] [[Einarbeitung_in_die_Versionsverwaltung_SVN|1]] [[Einstieg_in_die_Welt_des_Arduino|2]]  [[Arduino: Taster auswerten und LEDs ansteuern|3]] [[Arduino:_Sensoren_einlesen|4]]  [[Arduino:_Infrarotsensor_einlesen|5]] [[Arduino:_Infrarotsensor_entstören|6]] [[Arduino:_Programmier-Challenge_I_WS_23/24|7]] [[Arduino:_IR-Theremin|8]] [[Arduino:_Aktoren|9]] [[Arduino:_LCD_Display_mit_I2C_Schnittstelle|10]] [[Arduino:_Ultraschall_Entfernungsmessung|11]] [[Arduino:_Ultraschallsensor_entstören|12]] [[Arduino:_Temperaturmessung_mit_NTC_und_PTC|13]] [[Arduino:_Programmier-Challenge_I_WS_23/24|14]]<br>
→ zurück zum Hauptartikel: [[Arduino_Praxiseinstieg_WS_23/24|Arduino Praxiseinstieg]]

Aktuelle Version vom 21. Oktober 2023, 14:18 Uhr

Abb. 1: Lernset - Einsteiger Kit für Arduino
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lektion 2: Mechatronik, Informatikpraktikum, 1. Semester, Wintersemester

Inhalt

  • Einstieg in die Arduino Welt
  • Programmcode (Datentypen, Grundstruktur)
  • if-Verzweigung
  • LED, aktiver und passiver Lautsprecher
  • Arduino IDE, Serieller Monitor, Code Debugging
  • Digitale Ein- und Ausgänge
  • Analoge Ein- und Ausgänge

HSHL-Wiki Grundlagenartikel: Arduino

Lernziele

Nach Durchführung dieser Lektion

  • haben Sie sich mit dem Arduino und der Arduino IDE vertraut gemacht.
  • können Sie Programme schreiben, kompilieren und auf den Arduino übertragen.
  • können Sie Variablen aller Datentypen deklarieren.
  • haben Sie elektrische LED Schaltungen aufgebaut und in Betrieb genommen.
  • haben Sie eine LED über eine Pulsweitenmodulation angesteuert.
  • können Sie eine if-Verzweigung programmieren.

Lernzielkontrolle

  1. Welche Datentypen können Sie in einem Arduino verwenden? Stellen Sie diese tabellarisch mit ihrer Länge auf.
  2. Wann verwendet man welchen Datentyp?
  3. Wie werden lokale und wie globale Variablen deklariert?
  4. Was ist ein Makro?
  5. Wann und wie verwendet man die Befehle define, static, const?
  6. Wie programmiert man eine if-Verzweigung?
  7. Wie steuert man eine LED an? Erstellen Sie eine Schaltskizze. Wozu dient der Widerstand?
  8. Was ist der Unterschied zwischen aktiven und passiven Lautsprechern?
  9. Machen Sie sich mit dem PAPDesigner vertraut. Lesen Sie den Artikel Software_Planung. Wozu dient ein PAP? Planen Sie die Programme 2.2 bis 2.4 mit einem PAP.

Arbeitsergebnisse in SVN: Lernzielkontrolle_Termin_02.pdf

Tutorial

Versuchsvorbereitung

  1. Studieren Sie das Tutorials.
  2. Beantworten Sie die Lernzielkontrollfragen.
  3. Planen Sie die Software via PAP.
  4. Sichern Sie Ihre Unterlagen in SVN.

Versuchsdurchführung

Aufgabe 2.1: Lernzielkontrolle

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

Arbeitsergebnisse in SVN: Lernzielkontrolle_Termin_02.pdf


Aufgabe 2.2: Wechselblinker

Zwei Leuchtdioden sollen abwechselnd blinken.

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

Arbeitsergebnisse in SVN: Wechselblinker.ino


Aufgabe 2.3: Pulsierende LED

Eine LED soll pulsierend heller und dunkler werden.

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

Arbeitsergebnisse in SVN: PulsierendeLED.ino


Aufgabe 2.4: Licht und Tonsignal

Eine LED und ein Piezo-Lautsprecher sollen kontinuierlich blinken bzw. piepen. Zusätzlich werden in dieser Anleitung auch Variablen verwendet.

Dieses Mal nutzen wir auch den ersten Programmabschnitt. Hier werden Variablen eingetragen. Das bedeutet, dass sich nach der Festlegung in diesem Bereich hinter einem Buchstaben oder einem Wort für den gesamten folgenden Sketch eine Zahl verbirgt. Bei uns ist die LED an Pin4 angeschlossen und der Piezo-Speaker an Pin5. Damit man die beiden Pins später nicht verwechselt, benennen wir Pin4 und Pin5 einfach um.

  • Was ist der Unterschied zwischen aktiven und passiven Lautsprechern?

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

Arbeitsergebnisse in SVN: LichtundTon.ino


Aufgabe 2.5: Nachhaltige Doku

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

  • Wurden die Regeln für den Umgang mit SVN 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


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



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