Z-Lab/Arduino_Grundlagen/04_Piepser/readme.md

89 lines
2.3 KiB
Markdown
Raw Normal View History

2024-12-30 21:42:53 +01:00
# Z-Lab Arduino-Grundkurs Übung 4: Piepser
2024-12-29 17:18:32 +01:00
In dieser Übung erzeugen wir Töne mit einem Piepser.
2024-12-29 17:18:32 +01:00
2024-12-31 17:44:15 +01:00
Zuerst öffnen wir die Übung über den gewohnten Weg. Der Name ist "04_Piepser"
2024-12-29 17:18:32 +01:00
2024-12-31 17:44:15 +01:00
![Übung öffnen](oeffnen.png)
2024-12-29 17:18:32 +01:00
## Verkabeln wir den Piepser mit dem Arduino mit dem Arduino
2024-12-29 17:18:32 +01:00
So muss da aussehen, wenn wir fertig sind:
2024-12-29 17:18:32 +01:00
<img src="Piepser.svg">
2024-12-29 17:18:32 +01:00
So und dann geht's wieder ans Programmieren.
2024-12-29 17:18:32 +01:00
In der Datei 04_Piepser.ino finden wir (ohne die ganzen Kommentare) folgenden Quellcode:
2024-12-29 17:18:32 +01:00
```c
#define PIEPSER 12
2024-12-29 17:18:32 +01:00
void setup() {
pinMode(PIEPSER, OUTPUT);
}
2024-12-29 17:18:32 +01:00
void loop() {
tone(PIEPSER, 1000);
delay(1000);
noTone(PIEPSER);
delay(1000);
}
```
2024-12-29 17:18:32 +01:00
Neu ist hier, dass wir schon vor der Setup-Funktion "etwas machen".
Dinge, die außerhalb der Funktionen gemacht werden stehen allen Funktionen zur Verfügung.
2024-12-29 17:18:32 +01:00
## define
2024-12-29 17:18:32 +01:00
```c
#define PIEPSER 12
```
2024-12-29 17:18:32 +01:00
Mit "#define" erstellen (definieren, wie define) wir eine sogenanntes Makro mit dem Namen "PIEPSER", das die 12 enthält.
Überall später im Quellcode wird "PIEPSER" mit 12 ersetzt.
Das macht es uns ein bisschen einfacher, denn:
* Wir müssen uns die 12 nicht merken, an der der Piepser hängt sondern können einfach immer "PIEPSER" schreiben, wenn wir mit dem Piepser etwas machen wollen
* Wir können den Anschluss, an dem der Piepser hängt ganz einfach ändern, in dem wir einfach nur die 12 durch etwas anderes ersetzen und müssen nicht im ganzen Code nach der 12 suchen
2024-12-29 17:18:32 +01:00
## tone() und noTone()
2024-12-29 17:18:32 +01:00
Wie der Name schon sagt ;)
Mit "tone()" erzeugen ir einen Ton.
Dabei ist der erste Parameter der Funktion der PIN (Anschluss), an dem der Piepser angeschlossen ist
der zweite Parameter ist die Frequenz, die der ton haben soll. In unserem Beispiel sin das 1000 Hz.
2024-12-29 17:18:32 +01:00
Und mit noTone() hört der Piepser wieder auf.
2024-12-29 17:18:32 +01:00
```c
tone(PIEPSER, 1000);
noTone(PIEPSER);
```
2024-12-29 17:18:32 +01:00
## Und wie könnte es weiter gehen?
* Kannst du auch eine Melodie abspielen?
2024-12-29 17:18:32 +01:00
<details>
<summary>Hier klicken für Lösungsvorschläge - aber bitte erst selbst probieren! </summary>
```c
#define PIEPSER 12
void setup() {
pinMode(PIEPSER, OUTPUT);
}
void loop() {
tone(PIEPSER, 1000);
delay(1000);
tone(PIEPSER, 500);
delay(1000);
tone(PIEPSER, 1000);
delay(1000);
tone(PIEPSER, 500);
delay(1000);
2024-12-29 17:18:32 +01:00
```
</details>
2024-12-31 17:46:50 +01:00
Hier gehts [weiter zur nächsten Übung](../05_Lichtsensor/)