Compare commits

..

2 Commits

Author SHA1 Message Date
10457e5906 test für pandoc 2024-12-31 17:15:56 +01:00
7773c82258 Link to readme.md 2024-12-31 16:39:11 +01:00
18 changed files with 66 additions and 113 deletions

View File

@ -1,10 +1,10 @@
# Z-Lab Arduino-Grundkurs Übung 1: Nichts tun... # Z-Lab Arduino-Grundkurs Projekt 1: Nichts tun...
## Dafür lernen wir, wie ein Arduino-Programm (der sog. Sketch) aufgebaut ist ## Dafür lernen wir, wie ein Arduino-Programm (der sog. Sketch) aufgebaut ist
Öffne zuerst den Sketch für diese Übung über die Arduino-IDE. Öffne zuerst den Sketch für dieses Projekt über die Arduino-IDE.
Das geht über Datei-> Sketchbook -> Z-Lab -> Arduino_Grundlagen -> 01_Grundstruktur: Das geht über Datei-> Sketchbook -> Z-Lab -> Arduino_Grundlagen -> 01_Grundstruktur:
![Übung öffnen](oeffnen.png) ![Projekt öffnen](oeffnen.png)
Nun siehst du den Quellcode eines Programmes für den Arduino, das absolut gar nichts machen wird. Nun siehst du den Quellcode eines Programmes für den Arduino, das absolut gar nichts machen wird.
Dazwischen sind auch ein paar Kommentare, damit du auch nachvollziehen kannst, was alles bedeutet, wenn du diese Seite nicht offen hast. Dazwischen sind auch ein paar Kommentare, damit du auch nachvollziehen kannst, was alles bedeutet, wenn du diese Seite nicht offen hast.
@ -39,12 +39,12 @@ Also im Falle der Wasserflasche die Wasserflasche.
> Und sicher ist dir in dem Beispiel schon aufgefallen, dass Funktionsnamen kein Umlaute haben dürfen. > Und sicher ist dir in dem Beispiel schon aufgefallen, dass Funktionsnamen kein Umlaute haben dürfen.
Ganz wichtig sind die Klammern "()" am Ende der Funktion. Erst dadurch wird die Funkion auch zur Funktion und kann nicht mit einer Variable (kommen wir in der nächsten Übung dazu) oder anderen Elementen verwechselt werden. Ganz wichtig sind die Klammern "()" am Ende der Funktion. Erst dadurch wird die Funkion auch zur Funktion und kann nicht mit einer Variable (kommen wir im Nächsten Projekt dazu) oder anderen Elementen verwechselt werden.
### Die Funktion "setup" ### Die Funktion "setup"
Die Funktion "setup" ist eine ganz spezielle Funktion. "Setup" ist englisch und heißt auf Deutsch so viel wie "Aufbau" oder "Einrichtung". Diese Funktion wird einmal ausgeführt, nachdem der Arduino mit Strom versorgt (also eingeschaltet) wird. Alles, was nur einmal gemacht werden muss, um die Aufgabe zu erledigen, die unser Programm erleidgen muss, muss hier rein. Die Funktion "setup" ist eine ganz spezielle Funktion. "Setup" ist englisch und heißt auf Deutsch so viel wie "Aufbau" oder "Einrichtung". Diese Funktion wird einmal ausgeführt, nachdem der Arduino mit Strom versorgt (also eingeschaltet) wird. Alles, was nur einmal gemacht werden muss, um die Aufgabe zu erledigen, die unser Programm erleidgen muss, muss hier rein.
Das ist wie wenn du mit deinem Lego spielst: Zuerst musst du das Lego holen, dich irgendwo hinsetzen und dann das Lego auspacken. Wenn du dann mit dem Lego z.B. ein Haus baust hast du das Lego schon da und musst nur immer wieder in die Kiste greifen. Und hier kommt die zweite Funktion aus dieser Übung ins Spiel Das ist wie wenn du mit deinem Lego spielst: Zuerst musst du das Lego holen, dich irgendwo hinsetzen und dann das Lego auspacken. Wenn du dann mit dem Lego z.B. ein Haus baust hast du das Lego schon da und musst nur immer wieder in die Kiste greifen. Und hier kommt die zweite Funktion aus diesem Projekt ins Spiel
### Die Funktion Loop ### Die Funktion Loop
Die Funktion "loop" ist das zweite wirklich relevante in diesem Beispiel: Die Funktion "loop" ist das zweite wirklich relevante in diesem Beispiel:
@ -105,4 +105,4 @@ Du hast gerade dein erstes Programm in Maschinencode übersetzt und auf den Ardu
Auch wenn das Programm noch nichts tut so weißt du jetzt, was die Funktionen setup und loop machen und wie du ein Programm so übersetzt, dass der Arduino weiß, was er zu tun hat und wie du es hochlädst. Auch wenn das Programm noch nichts tut so weißt du jetzt, was die Funktionen setup und loop machen und wie du ein Programm so übersetzt, dass der Arduino weiß, was er zu tun hat und wie du es hochlädst.
Also schnell [weiter zur nächsten Übung](../02_Blinken/) denn da bekommt der Arduino jetzt auch etwas zu tun :) Also schnell weiter zum nächsten Projekt denn da bekommt der Arduino jetzt auch etwas zu tun :)

View File

@ -1,13 +1,13 @@
# Z-Lab Arduino-Grundkurs Übung 2: Blinken # Z-Lab Arduino-Grundkurs Projekt 2: Blinken
In dieser Übung lassen wir eine LED blinken. In diesem Projekt lassen wir eine LED blinken.
Das gute an diesem Beispiel ist, dass wir hierfür auch wieder nichts brauchen außer den Arduino, einen Computer, das passende Kabel und die Arduino-IDE, die wir ja ohnehin schon installiert haben. Das gute an diesem Beispiel ist, dass wir hierfür auch wieder nichts brauchen außer den Arduino, einen Computer, das passende Kabel und die Arduino-IDE, die wir ja ohnehin schon installiert haben.
Denn die meisten Arduinos haben eine eingebaute LED, die man programmieren kann. Denn die meisten Arduinos haben eine eingebaute LED, die man programmieren kann.
Zuerst öffnen wir doe Übung 02_Blinken über "Datei" -> "Sketchbook" -> "Z-Lab" -> "Arduino_Grundlagen" -> 02_Blinken: Zuerst öffnen wir das Projekt 02_Blinken über "Datei" -> "Sketchbook" -> "Z-Lab" -> "Arduino_Grundlagen" -> 02_Blinken:
![Übung öffnen](oeffnen.png) ![Projekt öffnen](oeffnen.png)
In der Datei 02_Blinken.ino finden wir folgenden Quellcode: In der Datei 02_Blinken.ino finden wir folgenden Quellcode:
@ -34,11 +34,11 @@ void setup() {
} }
``` ```
In der letzten Übung haben wir gelernt, dass die setup-Funktion nur einmal ausgeführt wird, wenn der Arduino gestartet wird. Im letzten Projekt haben wir gelernt, dass die setup-Funktion nur einmal ausgeführt wird, wenn der Arduino gestartet wird.
In dieser setup-Funktion befindet sich nur ein Befehl. Dieser lautet "pinMode". In dieser setup-Funktion befindet sich nur ein Befehl. Dieser lautet "pinMode".
Die pinMode-Funktion wird nicht wie die setup-Funktion einfach mit Klammern geschrieben sondern in den Klammern stehen noch weitere Zeichen. Diese nennen sich Parameter, Argumente oder Optionen. Gemeint ist damit das gleiche. Die pinMode-Funktion wird nicht wie die setup-Funktion einfach mit Klammern geschrieben sondern in den Klammern stehen noch weitere Zeichen. Diese nennen sich Parameter, Argumente oder Optionen. Gemeint ist damit das gleiche.
Nehmen wir noch mal das Beispiel mit der Wasserflasche im Kühlschrank aus der letzten Übung. Nehmen wir noch mal das Beispiel mit der Wasserflasche im Kühlschrank aus dem letzten Projekt.
Wenn ihr manchmal nicht nur die Wasserflasche aus dem Kühlschrank braucht sondern vielleicht auch mal eine Karotte oder irgendwas anderes dann wäre es doch praktisch, ihr müsstet nicht für alles, was sich im Kühlschrank befindet eine neue Funktion schreiben. Wenn ihr manchmal nicht nur die Wasserflasche aus dem Kühlschrank braucht sondern vielleicht auch mal eine Karotte oder irgendwas anderes dann wäre es doch praktisch, ihr müsstet nicht für alles, was sich im Kühlschrank befindet eine neue Funktion schreiben.
So wie ihr eure Eltern fragt, ob sie euch die Wasserflasche geben können könnt ihr sie ja auch fragen, ob sie euch eine Karotte geben können. So wie ihr eure Eltern fragt, ob sie euch die Wasserflasche geben können könnt ihr sie ja auch fragen, ob sie euch eine Karotte geben können.
Wir könnten also sagen, wir machen eine Funktion, die heißt: Wir könnten also sagen, wir machen eine Funktion, die heißt:
@ -57,7 +57,7 @@ Ein PIN ist ein Anschluss am Arduino. Wenn du auf den Arduino schaust dann hat d
Dann haben wir hier noch etwas neues, das nennt sich "Makro". Dann haben wir hier noch etwas neues, das nennt sich "Makro".
Ein Makro ist wie ein Platzhalter, der aber nicht mehr veränderbar ist. Ein Makro ist wie ein Platzhalter, der aber nicht mehr veränderbar ist.
Ein Makro wird einmal definiert und dann bleibt es wie es ist, anders als Variablen (kommen wir in einer späteren Übung dazu), die später noch veränderbar sind. Ein Makro wird einmal definiert und dann bleibt es wie es ist, anders als Variablen (kommen wir in einem späteren Projekt dazu), die später noch veränderbar sind.
Ein Makro, das wir hier haben hat den Namen "LED_BUILTIN". Ein Makro, das wir hier haben hat den Namen "LED_BUILTIN".
Dahinter steht eine Zahl, und zwar die PIN, an der die im Arduino eingebaute LED angebracht ist. Dahinter steht eine Zahl, und zwar die PIN, an der die im Arduino eingebaute LED angebracht ist.
@ -101,7 +101,7 @@ Hier steht "HIGH" (wieder ein Makro) für "An" in Form einer 1 und "LOW" für "A
![Marko Wert LOW](image-6.png) ![Marko Wert LOW](image-6.png)
*Marko-Wert von LOW* *Marko-Wert von LOW*
Dann gibt es noch eine weitere Funktion in unserer Übung: Dann gibt es noch eine weitere Funktion in unserem Projekt:
```c ```c
void loop() { void loop() {
@ -135,5 +135,3 @@ Jetzt können wir das Programm wieder kompilieren und hochladen. Es reicht sogar
Ob alles funktioniert siehst du, wenn die LED auf dem Arduino regelmäßig im Sekundentakt ein- und ausgeschaltet wird: Ob alles funktioniert siehst du, wenn die LED auf dem Arduino regelmäßig im Sekundentakt ein- und ausgeschaltet wird:
![Arduino blinkt](02_Blinken.gif) ![Arduino blinkt](02_Blinken.gif)
Hier gehts [weiter zur nächsten Übung](../03_Externe_LED/)

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,15 +1,15 @@
# Z-Lab Arduino-Grundkurs Übung 3: Externe LED # Z-Lab Arduino-Grundkurs Projekt 3: Externe LED und mehrere LEDs
In dieser Übung lassen wir wieder eine LED blinken. In diesem Projekt lassen wir wieder LEDs blinken.
Allerdings dieses Mal eine externe. Allerdings dieses Mal eine externe.
Zuerst öffnen wir die Übung über den gewohnten Weg. Der Name ist "03_Externe_LED" Zuerst öffnen wir das Projekt über den gewohnten Weg. Der Name ist "03_Externe_LED"
![Übung öffnen](oeffnen.png) ![Projekt öffnen](projekt_oeffnen.png)
Wenn du diese Übung öffnest wunderst du dich bestimmt. Das sieht ja genau so aus wie beim letzten Mal. Wenn du dieses Projekt öffnest wunderst du dich bestimmt. Das sieht ja genau so aus wie beim letzten Mal.
Genau! Um die externe (vorsicht, Spoiler) sogar beide LEDs anzusteuern reicht unser C-Wissen aus den letzten beiden Übungen völlig aus. Wir müssen nur das gelernte neu kombinieren und schon können wir externe LEDs und auch mehrere LEDs anschließen und unterschiedlich blinken lassen. Genau! Um mehrere LEDs und auch externe LEDs anzusteuern reicht unser C-Wissen aus den letzten beiden Projekten völlig aus. Wir müssen nur das gelernte neu kombinieren und schon können wir externe LEDs und auch mehrere LEDs anschließen und unterschiedlich blinken lassen.
Und wir müssen lernen, was ein Breadboard ist :) Und wir müssen lernen, was ein Breadboard ist :)
@ -31,7 +31,7 @@ So muss da aussehen, wenn wir fertig sind:
Für den Aufbau gehen wir wie folgt vor: Für den Aufbau gehen wir wie folgt vor:
* Die LED kommt in ein Breadboard * Die LED kommt in ein Breadboard
Die beiden Beinchen in zwei verschiedene Spalten stecken Die beiden Beinchen in zwei verschiedene Spalten stecken
* an die längere Seite der LED schließen wir den 220 Ohm Widerstand an. * an die längere Seite der LED schließen wir den Widerstand an.
Dazu stecken wir den Widerstand in die gleiche Spalte wie die LED Dazu stecken wir den Widerstand in die gleiche Spalte wie die LED
* Das andere Ende des Widerstands verbinden wir mit dem Ausgang 12 des Arduino * Das andere Ende des Widerstands verbinden wir mit dem Ausgang 12 des Arduino
Dazu stecken wir ein rotes Kabel in die Spalte dem Widerstand und mit dem anderen Ende auf den Pin 12 des Arduino. Dazu stecken wir ein rotes Kabel in die Spalte dem Widerstand und mit dem anderen Ende auf den Pin 12 des Arduino.
@ -44,10 +44,8 @@ Wenn alles fertig ist sieht das in etwa so aus:
![Externe LED Breadboard](externe_led_breadboard.png) ![Externe LED Breadboard](externe_led_breadboard.png)
So und dann geht's wieder ans Programmieren. So und dann geht's wieder ans Programmieren.
Und damit es ein bisschen spannender wird gibt es hier keinen fertigen Code.
Genaugenommen weißt du schon alles, was du wissen musst, damit die externe LED, die an PIN 12 angeschlossen ist, blinkt.
Wenn du gar nicht weiter kommst kannst du hier drücken, um Lösungsvorschläge zu sehen: * Wie müssen wir den Code anpassen, damit die externe LED blinkt?
<details> <details>
<summary>hier klicken für (zwei mögliche) Lösungen</summary> <summary>hier klicken für (zwei mögliche) Lösungen</summary>
@ -84,6 +82,8 @@ Wenn du gar nicht weiter kommst kannst du hier drücken, um Lösungsvorschläge
``` ```
</details> </details>
## Und wie könnte es weiter gehen? ## Und wie könnte es weiter gehen?
* Was müssten wir denn tun, wenn wir beide LEDs (die interne und die externe) abwechselnd blinken lassen wollten? * Was müssten wir denn tun, wenn wir beide LEDs (die interne und die externe) abwechselnd blinken lassen wollten?
* Und wir müssten wir vorgehen, wenn wir 3 LEDs nacheinander blinken lassen wollen? * Und wir müssten wir vorgehen, wenn wir 3 LEDs nacheinander blinken lassen wollen?
@ -96,25 +96,9 @@ Wenn du gar nicht weiter kommst kannst du hier drücken, um Lösungsvorschläge
### Lösung mit #define ### Lösung mit #define
```c ```c
#define LED1 12
#define LED2 13
void setup() { TODO: hier Lösungsvorschläge
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
}
void loop() {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
delay(1000);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
delay(1000);
}
``` ```
</details>
</details> </details>
</details>
Hier gehts [weiter zur nächsten Übung](../04_Piepser/)

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -1,10 +1,12 @@
TODO: Überarbeiten
# Z-Lab Arduino-Grundkurs Übung 4: Piepser # Z-Lab Arduino-Grundkurs Übung 4: Piepser
In dieser Übung erzeugen wir Töne mit einem Piepser. In dieser Übung erzeugen wir Töne mit einem Piepser.
Zuerst öffnen wir die Übung über den gewohnten Weg. Der Name ist "04_Piepser" Zuerst öffnen wir das Projekt über den gewohnten Weg. Der Name ist "04_Piepser"
![Übung öffnen](oeffnen.png) ![Projekt öffnen](projekt_oeffnen.png)
## Verkabeln wir den Piepser mit dem Arduino mit dem Arduino ## Verkabeln wir den Piepser mit dem Arduino mit dem Arduino
@ -82,8 +84,5 @@ void loop() {
delay(1000); delay(1000);
tone(PIEPSER, 500); tone(PIEPSER, 500);
delay(1000); delay(1000);
}
``` ```
</details> </details>
Hier gehts [weiter zur nächsten Übung](../05_Lichtsensor/)

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 363 KiB

After

Width:  |  Height:  |  Size: 358 KiB

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

@ -1,25 +1,22 @@
TODO: Überarbeiten
# Z-Lab Arduino-Grundkurs Übung 5: Lichtsensor (analoger Sensor) # Z-Lab Arduino-Grundkurs Übung 5: Lichtsensor (analoger Sensor)
In dieser Übung lesen wir einen Lichtsensor, einen sog. analogen Sensor aus. In dieser Übung lesen wir einen Lichtsensor, einen sog. analogen Sensor aus.
Zuerst öffnen wir die Übung über den gewohnten Weg. Der Name ist "05_Lichtsensor" Zuerst öffnen wir das Projekt über den gewohnten Weg. Der Name ist "05_Lichtsensor"
![Übung öffnen](oeffnen.png) ![Projekt öffnen](projekt_oeffnen.png)
## Verkabeln wir den Lichtsensor mit dem Arduino ## Verkabeln wir den Piepser mit dem Arduino mit dem Arduino
* zuerst verbinden wir ein Beinchen des Lichsensors mit dem 5V-Anschluss des Arduino
* An das zweite Beinchen schließen wir einen 10k-Ohm Widerstand an
* Das zweite Beinchen des 10k-Ohm Widerstands verbinden wir mit GND auf dem Arduino
* Da, wo sich der Lichtsensor und das 10k-Ohm Widerstand "berühren" stecken wir noch ein Kabel zum Eingang A0 des Arduino
So muss da aussehen, wenn wir fertig sind: So muss da aussehen, wenn wir fertig sind:
<img src="05_Lichtsensor.svg"> <img src="04_Lichtsensor.svg">
So und dann geht's wieder ans Programmieren. So und dann geht's wieder ans Programmieren.
In der Datei 05_Lichtsensor.ino finden wir (ohne die ganzen Kommentare) folgenden Quellcode: In der Datei 05_Piepser.ino finden wir (ohne die ganzen Kommentare) folgenden Quellcode:
```c ```c
int sensorPin = A0; int sensorPin = A0;
@ -68,6 +65,7 @@ Jetzt nehmen wir den Wert, den uns der Lichtsensor gegeben hat und sagen der del
```c ```c
//TODO: Lösungsvorschlag anpassen
#define PIEPSER 12 #define PIEPSER 12
int ledPin = LED_BUILTIN; int ledPin = LED_BUILTIN;
int sensorPin = A0; int sensorPin = A0;
@ -93,6 +91,7 @@ void loop() {
```c ```c
//TODO: Lösungsvorschlag anpassen
int sensorPin = A0; int sensorPin = A0;
int ledPin = LED_BUILTIN; int ledPin = LED_BUILTIN;
@ -111,4 +110,3 @@ void loop() {
``` ```
</details> </details>
Hier gehts [weiter zur nächsten Übung](../06_Schalter/)

View File

@ -17,13 +17,9 @@ void setup() {
void loop() { void loop() {
buttonState = digitalRead(buttonPin); buttonState = digitalRead(buttonPin);
// Wenn (if) der Schalter gedrückt ist (HIGH steht für 1, also Strom fließt)...
if (buttonState == HIGH) { if (buttonState == HIGH) {
// DAnn mach das hier (LED an)
digitalWrite(ledPin, HIGH); digitalWrite(ledPin, HIGH);
// Ansonsten (else)
} else { } else {
// mach das hier (LED aus)
digitalWrite(ledPin, LOW); digitalWrite(ledPin, LOW);
} }
} }

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -1,10 +1,12 @@
TODO: Überarbeiten
# Z-Lab Arduino-Grundkurs Übung 6: Ein Schalter (ein digitaler Sensor) # Z-Lab Arduino-Grundkurs Übung 6: Ein Schalter (ein digitaler Sensor)
In dieser Übung verwenden wir einen Schalter. In dieser Übung verwenden wir einen Schalter.
Zuerst öffnen wir die Übung über den gewohnten Weg. Der Name ist "06_Schalter" Zuerst öffnen wir das Projekt über den gewohnten Weg. Der Name ist "05_Schalter"
![Übung öffnen](oeffnen.png) ![Projekt öffnen](projekt_oeffnen.png)
## Verkabeln wir den Piepser mit dem Arduino mit dem Arduino ## Verkabeln wir den Piepser mit dem Arduino mit dem Arduino

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -29,12 +29,13 @@ Wir benötigen dazu folgendes:
* 1x passiver Piepser * 1x passiver Piepser
* Einen Satz Jumper-Kabel mit PINs auf beiden Seiten * Einen Satz Jumper-Kabel mit PINs auf beiden Seiten
## Vorbereitungen ## Die Übungen
Damit du in der Arduino-IDE die Programme einfach öffnen kannst wie es in den Screenshots beschrieben ist musst du dieses Repository auf deinen Computer herunterladen. Und hier gehts dann zu den einzelnen Übungen:
Die Dateien müssen in deinem Dokumentenverzeichnis ins Verzeichnis "Arduino" kopiert werden. * [Übung 1: Grundstruktur](01_Grundstruktur/)
Das sieht dann so aus: * [Übung 2: Blinken](02_Blinken/)
![Kurs herunterladen](kurs_herunterladen.png) * [Übung 3: Externe LED](03_Externe_LED/)
* [Übung 4: Piepser](04_Piepser/)
* [Übung 3: Lichtsensor](05_Lichtsensor/)
* [Übung 3: Schalter](06_Schalter/)
Danach kannst du in der Arduino-IDE die Übungen öffnen.
Wie das geht siehst du in den einzelnen Übungen.

5
pandoc/links-to-html.lua Normal file
View File

@ -0,0 +1,5 @@
-- links-to-html.lua
function Link(el)
el.target = string.gsub(el.target, "%/", "/readme.html")
return el
end