Arduino: IR-Theremin: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Zeile 1: Zeile 1:
[[Kategorie:Arduino]]
[[Datei:Arduino Uno R3.jpg|thumb|rigth|400px|Abb. 1: Arduino Uno R3]]
[[Datei:Theramin-Alexandra-Stepanoff-1930.jpg |thumb|rigth|350px|Abb. 1: Alexandra Stepanoff spielt ein Theremin für NBC Radio im Jahr 1930]]
{| class="wikitable"
{| class="wikitable"
|-
|-
| '''Autor:'''|| [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
| '''Autor:''' || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
|-
|-
| '''Modul:''' ||Praxismodul I
| '''Modul:''' || Praxismodul I
|-
|-
| '''Lektion 9:'''|| Mechatronik, Informatikpraktikum 1, 1. Semester, Wintersemester
| '''Gruppe:''' || B
|-
| '''Lektion 7:''' || Mechatronik, Informatikpraktikum, 1. Semester
|-
| '''SVN-URL:'''  || https://svn.hshl.de/svn/Informatikpraktikum_1/trunk
|}
|}
== Fragestellungen, Begriffe und Voraussetzungen ==


=== Fragestellungen ===
= 📖 Inhalt =
Bislang haben Sie sich umfangreich mit dem Sharp IR Abstandssensor beschäftigt. Sie haben analoge Spannungswerte digitalisiert, Störungen entfernt und mittels Kennlinie die Distanz berechnet. In dieser Lektion kommt der kalibrierte Sensor als Musikinstrument zur Anwendung.
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.
=== Eingeführte Begriffe und Konzepte ===
 
In den vorherigen Lektionen wurde der serielle Monitor und Plotter der Arduino IDE zu Datenvisualisierung verwendet. In dieser Lektion werden die Daten in eine Textdatei geschrieben und mit MATLAB visualisiert. Zusätzlich wird der passive Lautsprecher verwendet, um eine Melodie zu spielen. Als Musikinstrument wird ein Theremin gebaut, welches abhängig vom gemessenen Abstand die Tonfrequenz variiert.
Zunächst werden die Entwicklungsumgebung Wokwi und die grundlegende Programmstruktur mit den Funktionen <code>setup()</code> und <code>loop()</code> 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.


=== Vorausgesetzte Kenntnisse aus vorangegangenen Lektionen ===
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 (<code>Commit</code>) und den aktuellen Projektstand zu aktualisieren (<code>Update</code>).
* Messung der Entfernung mit einem IR-Sensor
* Ansteuerung des Piezo Lautsprechers


== MATLAB<sup>®</sup> ==
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.
MATLAB<sup>®</sup> ist Ihr Werkzeug, um im Studium zu Simulieren, Daten zu verarbeiten, Filter zu testen oder Hardware modellbasiert zu programmieren. Mit MATLAB<sup>®</sup> können Sie
* in Mathematik Gleichungen lösen, Ergebnisse berechnen und darstellen.
* in Physik Zusammenhänge simulieren, darstellen und auswerten.
* in der Informatik Messdaten visualisieren und analysieren.
* uvm.
Die Grundlagen der Software können Sie sich in Selbstlernkursen beibringen.


Ein Einstiegspunkt bietet der Artikel: [[Einf%C3%BChrung_in_MATLAB|'''Einführung in MATLAB<sup>®'''</sup>]]. Wir wünschen Ihn viel Spaß mit diesem mächtigen Simulationswerkzeug.
== 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:  
*<code>Checkout</code>
*<code>Commit</code>
*<code>Update</code>
*<code>Tag</code>
*<code>Branch</code>
*<code>Trunk</code>
*<code>Show Log</code>
*<code>Repro-browser</code>
*<code>Revert</code>
*<code>Clean up</code>
*<code>Get lock</code>
*<code>Merge</code>
*<code>Diff</code>


== Lernziele==
Neue Arduino-Begriffe sind: <code>Sketch</code>, <code>Serial.begin()</code>, <code>Serial.print()</code>, <code>Serial.println()</code>, <code>pinMode()</code>, <code>digitalWrite()</code>, <code>delay()</code>
Nach Durchführung dieser Lektion
* können Daten in eine Textdatei exportieren und mit MATLAB<sup>®</sup> visualisieren.
* können eine Melodie mit dem Arduino spielen.
* können Sie ein IR-Theremin bauen und entfernungsabhängig Töne spielen.


== Lernzielkontrolle ==
== Voraussetzungen ==
# Haben Sie Messdaten mit 115200 baud seriell ausgegeben?
Grundlagen der PC-Bedienung sind erforderlich.
# Haben Sie Messdaten mit Putty in ein Textdatei geschrieben und gespeichert?
# Haben Sie die Messdaten mit MATLAB<sup>®</sup> geladen und angezeigt?


'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_08.pdf</code>
== 🎯 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 <code>setup()</code> und <code>loop()</code> 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 (<code>if-else</code>) erstellen.
* zeitliche Abläufe mithilfe der Funktion <code>delay()</code> programmieren.
* analoge Eingangswerte mit analogRead() erfassen und deren Wertebereich interpretieren.
* PWM-Signale zur Einstellung der LED-Helligkeit mit <code>analogWrite()</code> 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.


== Tutorials ==
== 🚀 Getting Started ==
* [https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ Arduino Referenz: <code>analogRead()</code>]
Den Einstieg in die Welt des Arduino in der Programmierung finden Sie hier:
* [https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ Arduino Referenz: <code>map()</code> ]
https://funduino.com/blogs/anleitungen/tagged/arduino-erste-schritte
* [https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ Arduino Referenz: <code>tone()</code>]
=== [[Datei:SchrittfuerSchritt.jpg|frameless|40px|baseline]] Schritt für Schritt Anleitungen ===
* [https://www.arduino.cc/reference/en/language/functions/advanced-io/notone/ Arduino Referenz: <code>noTone()</code>]
# [https://funduino.com/blogs/anleitungen/nr-1-blinkende-led LED ansteuern]
* [[Sharp_GP2Y0A41SK0F| Wiki: SHARP IR Abstandsensor]]
# [https://funduino.com/blogs/anleitungen/nr-5-taster-am-arduino Ein Taster steuert eine LED]
* [[Einrichtung_von_PuTTY| Wiki: Anleitung für Putty]]
# [https://funduino.de/nr-2-wechselblinker Wechselblinker]
# [https://funduino.com/blogs/anleitungen/nr-7-potentiometer Helligkeit einstellen]


== Demos ==
= ✅ Vorbereitung =
*  [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoDebugTxt2MATLAB  DemoDebugTxt2MATLAB]
== Vorbereitung Aufgabe 1: Umgang mit SVN ==
== Vorbereitung ==
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor.  
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor.
# Studieren Sie folgenden Wiki-Artikel: [[Software Versionsverwaltung mit SVN]].
# Installieren Sie den seriellen Monitor <code>Putty</code> und machen Sie sich mit der Bedienung vertraut. Nutzen Sie den Artikel [[Einrichtung_von_PuTTY| Anleitung für Putty]].
# Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z.&thinsp;B. <code>D:\SVN\Gruppenordner</code>.
# Schreiben Sie ein Arduino Programm, welchen die <code>Zeit in ms</code> und <code>Distanz in cm</code> seriell ausgibt.
# Checken Sie mit <code>SVN/Checkout</code> eine Arbeitskopie des Arbeitsordners aus. URL: <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/WS2627</code>
# Visualisieren Sie Die Distanz über der Zeit in MATLAB. Nutzen Sie hierfür das [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoDebugTxt2MATLAB  DemoDebugTxt2MATLAB].
# Schreiben Sie eine Textdatei <code>Test.txt</code> mit beliebigem Inhalt.
# Planen Sie die Software via PAP.
# Sichern Sie Ihre Daten auf dem SVN Server mit <code>SVN/Commit</code>; Schreiben Sie einen passenden Log-Text.
# Beantworten Sie die Lernzielkontrollfragen.
# Checken Sie eine 2. Arbeitskopie aus.
# Sichern Sie Ihre Unterlagen in SVN.
# Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in unterschiedlichen Zeilen
# Sichern Sie beider Arbeitskopien auf dem SVN Server mit <code>SVN/Commit</code>; Schreiben Sie einen passenden Log-Text.
# Analysieren Sie die Differenz mit <code>SVN/Diff</code>.
# Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in GLEICHEN Zeilen
# Sichern Sie beider Arbeitskopien auf dem SVN Server mit <code>SVN/Commit</code>; Schreiben Sie einen passenden Log-Text.
# Lösen Sie den Konflikt mit:  <code>SVN/Merge</code>
# Legen Sie einen <code>SVN/Tag</code> an.


== Versuchsdurchführung ==
'''Arbeitsergebnisse''' in SVN:
=== Aufgabe 9.1: Besprechung der Versuchsvorbereitung ===
* <code>Test.txt</code> mit Historie (s.o.)
Diskutieren Sie mit Prof. Schneider die Ergebnis Ihrer Vorbereitung.
 
----
== Vorbereitung Aufgabe 2: Arduino Uno R3 ==
=== Aufgabe 9.2: Debugging ===
Befassen Sie sich mit der [[Arduino|Arduino-Uno Hardware]] und beantworten Sie die Fragen:
'''Arduino-Aufgabe'''
# Welches sind die technischen Daten eines Arduino UNO R3?
# Messen Sie die Zeit in Millisekunden mit dem Befehl <code>millis()</code>
## Mikrocontroller
# Messen Sie die Entfernung mit und ohne Median-Filter.
## Spannungsversorgung
# Geben Sie die Zeit und Messdaten im seriellen Monitor aus (Format: Zeit in ms;d in cm; Median-Filter in cm <LF></code>).
## Betriebsspannung
# Nutzen Sie Putty als seriellen Monitor und speichern Sie die Daten in der Datei <code>Debug.txt</code>.
## Digitale I/O
'''Nützliche Befehle''': <code>millis(), Serial.begin(), Serial.println(), analogRead()</code>  
## Analoge I/O
----
## Strom pro digitalem Pin
'''MATLAB-Aufgabe'''
## Flash Memory
# Nutzen Sie das Demo <code>startLeseDebug.m</code> und lesen Sie die Daten aus der Datei <code>Debug.txt</code>.
## SRAM
# Stellen Sie die Entfernung ohne Median Filter über der Zeit dar (<code>plot(Zeit,Messwerte,'r.-')</code>).
## EEPROM
# Stellen Sie die Entfernung mit Median Filter über der Zeit dar (<code>plot(Zeit,median,'b-')</code>).
## Taktfrequenz
# Ergänzen Sie eine Legende (<code>legend("Messwerte", "Median-Filter")</code>).
## Programmierschnittstelle
# Beschriften Sie die Achsen.
## ISCP-Schnittstelle
# Recherchieren und erläutern Sie diese Fachbegriffe.
# Untersuchen Sie die Steckplatine (Engl. breadboard). Wie ist es aufgebaut?
'''Arbeitsergebnis''': <code>ArduinoUnoSpec.pdf</code>
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp 1&thinsp;</strong>
|-
| Die Lösungen finden Sie in der [https://store.arduino.cc/products/arduino-uno-rev3 Arduino Dokumentation.]
|-
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp 2&thinsp;</strong>
|-
| Die Funktion der Steckplatine wird auf [https://de.wikipedia.org/wiki/Steckplatine Wikipedia] gut beschrieben.
|-
|}
 
== Vorbereitung Aufgabe 3: LED ansteuern ==
Erstellen Sie in [https://wokwi.com/ 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: <code>steureLED.ino</code>
 
'''Nützliche Befehle''': [https://www.arduino.cc/reference/de/language/functions/digital-io/pinmode/ <code>pinMode()</code>], [https://www.arduino.cc/reference/de/language/functions/digital-io/digitalwrite/ <code>digitalWrite()</code>], [https://www.arduino.cc/reference/de/language/functions/time/delay/ <code>delay()</code>]
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp&thinsp;</strong>
|-
|
* Verwenden Sie Pin 8.
* <code>pinMode()</code> legt fest, ob ein Pin Eingang oder Ausgang ist.
* <code>digitalWrite()</code> schaltet einen Pin ein oder aus.
* <code>delay()</code> erzeugt eine Wartezeit in Millisekunden.
|-
|}
 
== Vorbereitung Aufgabe 4: Ein Taster steuert eine LED ==
Erweitern Sie in [https://wokwi.com/ 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: <code>schalteLED.ino</code>
 
'''Nützlicher Befehl''': [https://docs.arduino.cc/language-reference/de/funktionen/digital-io/digitalread/ <code>digitalRead()</code>]
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp&thinsp;</strong>
|-
|
*Taster an Pin 2 anschließen.
*Verwenden Sie <code>INPUT_PULLUP</code>.
*Lesen Sie den Taster mit <code>digitalRead()</code> aus.
*Der Rückgabewert ist <code>HIGH</code> oder <code>LOW</code>.
|-
|}
 
== Vorbereitung Aufgabe 5: Helligkeit einstellen ==
# Simulieren Sie Ihre Schaltung mit [https://wokwi.com/ 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.


'''Nützliche Befehle''': <code>hold on, plot, yLabel, legend</code>
'''Arbeitsergebnis''' in SVN: <code>dimmeLED.ino</code>


'''Arbeitsergebnisse''' in SVN: <code>schreibeDebugDatei.ino, Debug.txt, leseDebugDatei.m</code>
'''Nützliche Befehle''': [https://docs.arduino.cc/language-reference/de/funktionen/analog-io/analogRead/ <code>analogRead()</code>], [https://docs.arduino.cc/language-reference/de/funktionen/analog-io/analogWrite/<code>analogWrite()</code>], [https://docs.arduino.cc/language-reference/de/funktionen/math/map/ <code>map()</code>], [https://docs.arduino.cc/language-reference/de/funktionen/time/delay/ <code>delay()</code>]
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tutorial & Demo&thinsp;</strong>
| <strong>Tipp&thinsp;</strong>
|-
|-
|  
|  
'''Tutorial:''' [[Einrichtung_von_PuTTY| Anleitung für Putty]]<br>
*Potentiometer an Analogpin A0 anschließen.
'''Demo:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoDebugTxt2MATLAB  DemoDebugTxt2MATLAB]
*LED an Pin 9 anschließen.
*Verwenden Sie <code>analogRead()</code> und <code>analogWrite()</code>.
*Der Analogwert liegt zwischen 0 und 1023.
*Der PWM-Wert liegt zwischen 0 und 255.
|-
|-
|}
|}
----


=== Aufgabe 9.3: Töne erzeugen ===
= 🛠️ Versuchsdurchführung =
# Folgen Sie der [https://funduino.de/nr-08-toene-erzeugen Anleitung zur Ausgaben von Tönen].
{| class="wikitable"
# Mit einem passiven Lautsprecher sollen unterschiedliche Töne und eine Melodie erzeugt werden.
|-
! Uhrzeit !! Aufgabe !! Dauer
|-
| 11:00 Uhr || Umgang mit SVN || 10&thinsp;min
|-
| 11:10 Uhr  || LED ansteuern || 15&thinsp;min
|-
| 11:25 Uhr  || Wechselblinker || 10&thinsp;min
|-
| 11:35 Uhr || Ein Taster steuert eine LED || 20&thinsp;min
|-
| 11:55 Uhr  || Helligkeit einstellen || 20&thinsp;min
|-
| 12:15 Uhr  || Programme in SVN sichern || 5&thinsp;min
|-
| 12:20 Uhr  || Laborplatz aufräumen || 10&thinsp;min
|-
| 12:30 Uhr  || Praktikumsende ||
|}
== Aufgaben 1: Umgang mit SVN ==
* Loggen Sie sich via [https://svn.hshl.de/usvn/login/ USVN] ein und ändern Sie Ihr Passwort
* Vorname.Nachname@stud.hshl.de::Kennwort1 (z.&thinsp;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 </code>D:\SVN</code> ein Repositorium "Inf1P" an.
* Machen Sie sich mit der Funktion von SVN bekannt.
* Sichern Sie alle Ihren Quelltext in Ihrem Gruppenordner.
 
{| class="wikitable"
|+ style = "text-align: left"| Tabelle 1: Nützliche Links für den Semesterstart
|-
| HSHL Wiki ||<code>https://wiki.hshl.de/</code>
|-
| uSVN Benutzeroberfläche ||<code>https://svn.hshl.de/</code>
|-
| SVN Checkout URL || <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk</code>
|-
| SVN-Anleitung || [[Software Versionsverwaltung mit SVN]]
|}
 
== Aufgaben 2: LED ansteuern ==
# Laden Sie aus SVN <code>steureLED.ino</code>.
# 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: <code>steureLED.ino</code>


'''Nützliche Befehle''': <code>tone(), delay(), noTone(), pinMode(), digitalRead(), if()</code>
'''Nützliche Befehle''': [https://www.arduino.cc/reference/de/language/functions/digital-io/pinmode/ <code>pinMode()</code>], [https://www.arduino.cc/reference/de/language/functions/digital-io/digitalwrite/ <code>digitalWrite()</code>], [https://www.arduino.cc/reference/de/language/functions/time/delay/ <code>delay()</code>]


'''Arbeitsergebnisse''' in SVN: <code>spieleMelodie.ino</code>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Lösung&thinsp;</strong>
| <strong>Tipp&thinsp;</strong>
|-
|-
|  
|  
'''Lösung:''' [https://funduino.de/nr-08-toene-erzeugen Nr.08 – Töne erzeugen]
* Die LED benötigt einen Vorwiderstand von 220&thinsp;Ω.
|}
== Aufgabe 3: Wechselblinker ==
Zwei Leuchtdioden sollen abwechselnd blinken.
 
'''Nützliche Befehle''': <code>pinmode(), digitalWrite(), delay</code>
 
'''Arbeitsergebnisse''' in SVN: <code>Wechselblinker.ino</code>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| [https://funduino.de/nr-2-wechselblinker Wechselblinker]
|-
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| [https://funduino.de/nr-2-wechselblinker Wechselblinker]
|-
|-
|}
|}


----
== Aufgabe 4: Ein Taster steuert eine LED ==
=== Aufgabe 9.4: IR-Theremin ===
Erweitern Sie die Schaltung um einen Taster.
Ein Theremin ist ein Instrument, das Töne abhängig von den Bewegungen des Musizierenden erzeugt. Die Titelmelodie von Star Treck wurde beispielsweise damit gespielt. Das Theremin detektiert die Hände im Verhältnis zu zwei Antennen. Diese Antennen sind mit einem analogen Schaltkreis verbunden und erzeugen die Musik. Eine Antenne regelt die Frequenz der Töne und die Andere die Lautstärke. Diese Aufgabe emuliert das Theremin indem die Funktion <code>tone()</code> verwendet wird und die vom IR-Sensor gemessenen Abstände die Tonfrequenzen manipulieren. Lesen Sie die Entfernung wie in den Aufgaben zuvor über <code>analogRead()</code> ein. Schließen Sie den aktiven Lautprecher (Piezo-Lautsprecher) an Pin 8 an.  
 
# Erzeugen Sie Töne abhängig von den Messwerten des Sharp IR-Entfernungssensors.  
#Die LED soll jedem Tastendruck ihren Zustand wechselt.  
# Kalibrieren Sie die Zuordnung von Entfernung zu Frequenzen mit dem Der <code>map()</code>-Befehl.
# Werten Sie Ihr Programm mit [[Header_Beispiel_für_C|Header]] und Kommentaren auf.
# Spielen Sie eine Melodie.
# Stellen Sie Ihr Programm Prof. Schneider vor.


'''Nützliche Befehle''': <code>tone(), delay(), noTone(), analogRead(), map()</code>
'''Arbeitsergebnis''' in SVN: <code>schalteLED.ino</code>


'''Arbeitsergebnisse''' in SVN: <code>IR_Theremin.ino</code>
'''Nützlicher Befehl''': [https://docs.arduino.cc/language-reference/de/funktionen/digital-io/digitalread/ <code>digitalRead()</code>]


{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
Zeile 124: Zeile 282:
|-
|-
|  
|  
[https://funduino.de/nr-08-toene-erzeugen Anleitung zur Ausgaben von Tönen]
*Taster an Pin 2 anschließen.
*Verwenden Sie <code>INPUT_PULLUP</code>.
*Lesen Sie den Taster mit <code>digitalRead()</code> aus.
*Der Rückgabewert ist <code>HIGH</code> oder <code>LOW</code>.
|-
|-
|}
|}


----
== Aufgaben 5: Helligkeit einstellen ==
#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_Beispiel_für_C|Header]] und Kommentaren auf.
# Stellen Sie Ihr Programm Prof. Schneider vor.
 
'''Arbeitsergebnis''' in SVN: <code>dimmeLED.ino</code>
 
'''Nützliche Befehle''': [https://docs.arduino.cc/language-reference/de/funktionen/analog-io/analogRead/ <code>analogRead()</code>], [https://docs.arduino.cc/language-reference/de/funktionen/analog-io/analogWrite/<code>analogWrite()</code>], [https://docs.arduino.cc/language-reference/de/funktionen/math/map/ <code>map()</code>], [https://docs.arduino.cc/language-reference/de/funktionen/time/delay/ <code>delay()</code>]
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp&thinsp;</strong>
|-
|
*Potentiometer an Analogpin A0 anschließen.
*LED an Pin 9 anschließen.
*Verwenden Sie <code>analogRead()</code> und <code>analogWrite()</code>.
*Der Analogwert liegt zwischen 0 und 1023.
*Der PWM-Wert liegt zwischen 0 und 255.
|-
|}


=== Aufgabe 9.5: Nachhaltige Doku ===
== Aufgabe 6: Nachhaltige Dokumentation ==
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Beachten Sie dabei die [[Software_Anforderungen|Software Anforderungen]].
* Beachten Sie dabei die [[Software_Anforderungen|Software Anforderungen]]
 
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code>
== 🔄 SVN-Repositorium ==
https://svn.hshl.de/svn/Informatikpraktikum_1/trunk


'''Arbeitsergebnisse''' in SVN: <code>SVN Log</code>, '''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_08.pdf</code>
== Tutorial und Dokumentationen ==
* [[Software Versionsverwaltung mit SVN]]
* [https://www.arduino.cc/reference/de/ Arduino Befehlsübersicht]
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Literatur/SVN/Versionskontrolle.pdf Komplexitätsbeherrschung durch Versionskontrolle Komplexitätsbeherrschung durch Versionskontrolle]
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Literatur/SVN/Source%20Control%20mit%20SVN%20vs.%20GIT.pdf Source Control mit SVN vs. GIT Source Control mit SVN vs. GIT]
* [https://osdn.net/projects/tortoisesvn/storage/1.14.3/Documentation/TortoiseSVN-1.14.3-de.pdf/ Handbuch Tortoise SVN (Deutsch)]
* [https://osdn.net/projects/tortoisesvn/storage/1.14.3/Documentation/TortoiseMerge-1.14.3-de.pdf/ Handbuch Tortoise Merge (Deutsch)]
* [[Medium:Programmierrichtlinie.pdf|Programmierrichtlinie für C]]


== Videos ==
Mit den folgenden Video Tutorial lernen Sie spielend leicht und kostenlos den Einstieg in die Versionskontrolle:
{{#ev:youtube|https://https://youtu.be/flB3BA-johE | 250 | | Was ist ein Theremin?|frame}}
* Christopher Janietz - Versionskontrolle mit Git und SVN bei [https://www.linkedin.com/learning/versionskontrolle-mit-git-und-svn/willkommen-zu-versionskontrolle-mit-git-und-svn?u=76882098 LinkedIn]
{{#ev:youtube|https://youtu.be/x0NVb25p1oU | 250 | | STAR TREK original theme performed on theremin |frame}}
* Julian Robichaux - SVN for Java Developers bei [https://www.linkedin.com/learning/svn-for-java-developers/tortoisesvn-on-windows?u=76882098 LinkedIn]
{{#ev:youtube|https://https://https://youtu.be/FqG7rlj6tVM | 250 | | Infrarotsensor Theremin|frame}}


== [[Datei:Lektionen.jpg|60px]] Ausblick zur nächsten Lektion ==
Mit den folgenden Video Tutorial lernen Sie spielend leicht und kostenlos den Einstieg in die Arduino-Welt:
In der nächsten Lektion werden Schrittmotor und Servo angesteuert.  
* Thomas Rode - Arduino Grundkurs bei [https://www.linkedin.com/learning-login/share?forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%2Farduino-grundkurs%3Ftrk%3Dshare_ent_url&account=76882098 LinkedIn]
* Thomas Rose - Arduino: Kleine Projekte spielerisch umsetzen bei [https://www.linkedin.com/learning/arduino-kleine-projekte-spielerisch-umsetzen/willkommen-zu-arduino-kleine-projekte-spielerisch-umsetzen?u=76882098 LinkedIn]
* Thomas Rose - Lichtsteuerung mit dem Arduino bei [https://www.linkedin.com/learning-login/share?forceAccount=false&redirect=https%3A%2F%2Fwww.linkedin.com%2Flearning%2Flichtsteuerung-mit-dem-arduino%3Ftrk%3Dshare_ent_url&account=76882098 LinkedIn]


Den '''kostenlosen Zugang''' zum LinkedIN Portal erhalten Sie über den [https://hshl.bsz-bw.de/cgi-bin/koha/opac-main.pl Bibliothekskatalog] im Bereich "Lizenzierte Datenbanken".


== Literatur ==
= [[Datei:Lektionen.jpg|60px]] Ausblick zur nächsten Lektion =
# 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]
Die nächste Lektion gibt eine Einführung in die Grundlagen der Programmierung:
# Brühlmann, T.: ''Sensoren im Einsatz mit Arduino''. Frechen: mitp Verlag, 1. Auflage 2017. ISBN: 9783958451520. URL: [https://hshl.bsz-bw.de/cgi-bin/koha/opac-detail.pl?biblionumber=130719&query_desc=kw%2Cwrdl%3A%20Br%C3%BChlmann HSHL-Bib], [https://learning.oreilly.com/library/view/sensoren-im-einsatz/9783958451520/?ar O'Reilly]
* Programmierrichtlinien
# Snieders, R.: ''ARDUINO lernen''. Nordhorn: 8. Auflage 2022. URL: [https://funduino.de/vorwort https://funduino.de/vorwort]
* Taster mittels Arduino auslesen, entprellen, Pull-Up/Pull-Down-Widerstand
# Schneider, U.: ''Programmierrichtlinie für für die Erstellung von Software in C.'' Lippstadt: 1. Auflage 2022. [[Medium:Programmierrichtlinie.pdf|PDF-Dokument (212&thinsp;kb)]]
* Zähler inkrementieren
# Sharp: ''GP2Y0A41SK0F''. URL: [https://de.farnell.com/sharp/gp2y0a41sk0f/distanzmesssensor/dp/1618431]. [[Medium:GP2Y0A41SK0F.pdf|Datenblatt (858&thinsp;kb)]]
* <code>switch..case</code>-Verzweigung
* Ansteuerung einer RGB-LED






----
----
→ Termine [[Einführungsveranstaltung Informatikpraktikum 1|1]] [[Einarbeitung_in_die_Versionsverwaltung_SVN|2]] [[Einstieg_in_die_Welt_des_Arduino|3]]  [[Arduino: Taster auswerten und LEDs ansteuern|4]] [[Arduino:_Sensoren_einlesen|5]]  [[Arduino:_Infrarotsensor_einlesen|6]] [[Arduino:_Infrarotsensor_entstören|7]] [[Arduino:_Programmier-Challenge_I_WS_WS_26/27|8]] [[Arduino:_IR-Theremin|9]] [[Arduino:_Aktoren|10]] [[Arduino:_LCD_Display_mit_I2C_Schnittstelle|11]] [[Arduino:_Ultraschall_Entfernungsmessung|12]] [[Arduino:_Ultraschallsensor_entstören|13]] [[Arduino:_Temperaturmessung_mit_NTC_und_PTC|14]] [[Arduino:_Programmier-Challenge_II_WS_26/27|15]]<br>
→ Termine von Gruppe B [[Einführungsveranstaltung Informatikpraktikum 1|1]] [[Einarbeitung_in_die_Versionsverwaltung_SVN|2]] [[Einstieg_in_die_Welt_des_Arduino|3]]  [[Arduino: Taster auswerten und LEDs ansteuern|4]] [[Arduino:_Sensoren_einlesen|5]]  [[Arduino:_Infrarotsensor_einlesen|6]] [[Erste Schritte mit dem Arduino Uno R3|7]] [[Ereignisgesteuerte_Programmierung|8]] [[Sensoren_einlesen_und_Messwerte_verarbeiten|9]] [[Arduino:_Aktoren|10]] [[Arduino:_LCD_Display_mit_I2C_Schnittstelle|11]] [[Arduino:_Ultraschall_Entfernungsmessung|12]] [[Arduino:_Ultraschallsensor_entstören|13]] [[Arduino:_Temperaturmessung_mit_NTC_und_PTC|14]] [[Arduino:_Programmier-Challenge_II_WS_25/26|15]]<br>
→ zurück zum Hauptartikel: [[Arduino_Praxiseinstieg_WS_26/27|Arduino Praxiseinstieg]]<br>
→ zurück zum Hauptartikel: [[Arduino_Praxiseinstieg_WS_26/27|Arduino Praxiseinstieg]]<br>
→ Haben Sie Fragen? [[Informatik Praktikum FAQ]]
→ Haben Sie Fragen? [[Informatik Praktikum FAQ]]

Version vom 13. November 2026, 06:10 Uhr

Abb. 1: Arduino Uno R3
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Gruppe: B
Lektion 7: Mechatronik, Informatikpraktikum, 1. Semester
SVN-URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk

📖 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.

🚀 Getting Started

Den Einstieg in die Welt des Arduino in der Programmierung finden Sie hier:

https://funduino.com/blogs/anleitungen/tagged/arduino-erste-schritte

Schritt für Schritt Anleitungen

  1. LED ansteuern
  2. Ein Taster steuert eine LED
  3. Wechselblinker
  4. Helligkeit einstellen

✅ 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. Schließen Sie ein Potentiometer und eine LED an.
  2. Drehen Sie am Potentiometer. Die Helligkeit der LED soll sich entsprechend verändern.
  3. Sorgen Sie dafür, dass die LED erst ab einem bestimmten Potentiometerwert leuchtet.
  4. Werten Sie Ihr Programm mit Header und Kommentaren auf.
  5. 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

🔄 SVN-Repositorium

https://svn.hshl.de/svn/Informatikpraktikum_1/trunk

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:

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



→ 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