Schritt 2: Ansteuerung der Akustikmelder über einen Eingang des Mikrocontrollers
Aufbau der Schaltung
Nachdem Sie nun alles Wichtige über die zur Verfügung stehenden Bauteile wissen, können Sie die Schaltung für den Mikrocontroller aufbauen. Dabei sind die Schaltung für die verschiedenen Akustikmelder identisch, lediglich das zugehörige Programm unterscheidet sich.
Benötigte Materialien
- Mikrocontroller (z.B. ESP32, Arduino)
- Breadboard
- Jumper Kabel
- 10 kΩ Widerstand
- Taster
- Aktiver Summer
- Passiver Summer
- Micro-USB Kabel zur Spannungsversorgung und Programmierung des Mikrocontrollers

Abbildung: Ansteuerung der Akustikmelders
Quelle: BBS2 Wolfsburg
Verdrahtung der Schaltung
Im Ordner "Schaltpläne" ist der passende Schaltplan für den Anschluss an einen ESP32 als Fritzing-Datei enthalten. Weiter unten können Sie sich den Schaltplan auch als Bild ansehen. Analog hierzu kann der Schaltplan für andere Mikrocontroller aufgebaut werden. Dabei müssen Sie dann auf die veränderte Pin-Belegung achten.

Abbildungen: Ansteuerung der Akustikmelders Steckplatine und Schaltplan
Quelle: BBS2 Wolfsburg
Der 10k Ohm Widerstand dient dazu, dass im nicht geschalteten Zustand des Tasters die rechte Seite auf Masse gezogen wird, sodass nur im geschalteten Zustand der Signal-Pin des Mikrocontrollers ein HIGH-Signal bekommt.
Ab hier ist es Ihnen überlassen, ob Sie es selber versuchen, sich eine Schaltung auszudenken und diese im Anschluss mit der vorhandenen Beispielschaltung zu vergleichen oder von Anfang an sich an dieser orientieren.
Wichtige Hinweise
- Die Schaltung sollte im spannungsfreien Zustand aufgebaut werden
- Wenn Veränderungen durchgeführt werden, sollte die Schaltung auch spannungsfrei, also nicht über das USB-Kabel mit dem PC verbunden sein
Programmieren des Mikrocontrollers
Es ist hier wieder Ihnen überlassen, ob Sie selber versuchen das Programm zu erstellen oder das Beispiel-Programm probieren nachzuvollziehen. Alle Programme sind in dem Ordner "Programme" abgelegt. Sie basieren auf einem ESP32.
Allgemeine Hinweise
Bei der Programmierung können verschiedene Programme verwendet werden. In diesem Kurs beschränken wir uns auf Ardublockly und die Arduino IDE. Ardublockly arbeitet bausteinorientiert. Es gibt dabei vorgefertigte Programmzeilen, die in Blöcken dargestellt werden und von dem Programmierer nur per drag & drop in das Programm eingefügt werden müssen. Anschließend kann man sich das erstellte Programm in richtigen Programmzeilen, wie es bei Arduino IDE programmiert werden würde, anzeigen lassen. Es eignet sich also sehr gut für Anfänger.
Funktionsbeschreibung des Programms
Die Programme, welche Sie selber erstellen oder im Ordner "Programme" finden können, sind sehr analog. In den Programmen für den aktiven und den passiven Summer sind jeweils einer von beiden, ein Taster und der Mikrocontroller vorhanden. Der Taster ist
mit der einen Seite an die Versorgungsspannung von 3,3 V und mit der anderen Seite an einen Pin des Mikrocontrollers (im Beispiel G23) angeschlossen. Wird der Taster betätigt, so entsteht eine leitende Verbindung zwischen beiden Seiten und der Mikrocontroller
erkennt an seinem Pin (im Beispiel G23) ein HIGH-Signal. Durch das Erkennen dieses HIGH-Signales wird der Pin des aktiven bzw. passiven Buzzers auf HIGH gesetzt, was dazu führt, dass er einen Ton erzeugt. Beim passiven Summer kommt noch hinzu, dass
die erzeugte Tonhöhe über eine separate Funktion variiert und somit z.B. auch eine Sirene erzeugt werden kann.
Wird der Taster wieder losgelassen, erhält der Pin des Mikrocontrollers (im Beispiel G23) wieder ein LOW-Signal und der Akustikmelder
hört auf, einen Ton zu erzeugen.
Programmieren mit Ardublockly - Aktiver Summer
Zuerst wird hier ein neues Projekt erstellt. Anschließend müssen Sie unter Edit -> Preferences den verwendeten Mikrocontroller auswählen. Bei unserm Beispiel wäre das der ESP32. Das würde dann folgender Maßen aussehen:

Abbildung: Ardublockly Einstellungen
Quelle: BBS2 Wolfsburg
Nun können Sie über die Reiter auf der linken Seite die gewünschten Blöcke auswählen und rechts im Fenster den dazugehörigen Quelltext sehen. Das fertige Programm für den aktiven Summer können Sie unten nochmal sehen. Das Programm ist zusätzlich im Ordner "Programme" hinterlegt.

Abbildung: Ardublockly Aktiver Summer
Quelle: BBS2 Wolfsburg
Programmieren mit Ardublockly - Passiver Summer
Die Konfiguration Ihres neuen Projektes läuft analog zum aktiven Summer. Hier kann nun jedoch die Frequenz des Summers und somit die Tonhöhe, wie in der Informationsphase beschrieben, variiert werden. Daher ist der Programmieraufwand ein wenig höher. Um die Tonhöhe einzustellen wird der Reiter "Audio" verwendet. Für die Übersichtlichkeit wurde der Teil zum Einstellen der Frequenz, also des Tones, in einer separaten Funktion ausgelagert, die dann nur aufgerufen wird. Diese Funktion trägt im Beispiel den Titel "Hupe".
Das Ergebnis kann dann wie folgt aussehen:

Abbildung: Ardublockly Passiver Summer
Quelle: BBS2 Wolfsburg
Programmierung mit Arduino IDE - Aktiver Summer
Wenn Sie direkt in Arduino IDE programmieren wollen, müssen Sie zuerst wieder den richtigen Mikrocontroller auswählen. Hierzu müssen Sie unter dem Reiter "Werkzeuge" das richtige Board auswählen. Gegebenenfalls müssen Sie eine neue Bibliothek herunterladen.
Anschließend können Sie mit der Programmierung beginnen. Zuerst sollten Sie wieder die richtigen Pins deklarieren, sprich die Pins an denen Ihr aktiver Summer und Ihr Taster angeschlossen sind. Nun können Sie die einzelnen Funktionen nach der Funktionsbeschreibung programmieren. Das Ergebnis kann dann wie folgt aussehen:
//Pin-Deklaration
int tasterPin = 4;
int aktivSummerPin = 2;
int statusTaster;
void setup()
{
Serial.begin(9600);
//Definition für die Pins
pinMode(tasterPin, INPUT);
pinMode(aktivSummerPin, OUTPUT);
}
void loop()
{
statusTaster = digitalRead(tasterPin);
if(statusTaster == HIGH)
{
Serial.println("Hupe aktiv");
digitalWrite(aktivSummerPin, HIGH); //Die Hupe wird aktiviert, also ein Dauerton gespielt.
}
else
{
Serial.println("Hupe inaktiv");
digitalWrite(aktivSummerPin, LOW); //Die Hupe is deaktiviert.
}
}
Programmierung mit Arduino IDE - Passiver Summer
Bei dem Programmieren des passiven Summers mit der Arduino IDE unterscheidet sich das Programm ein wenig stärker von dem, welches mit Ardublockly erstellt werden würde. Das liegt daran, dass beim direkten Programmieren in Arduino IDE nicht der Umweg über zwei neu geschriebene Funktionen ("tone" und "notone") gegangen werden muss, sondern man den Befehl "ledcWriteTone()" direkt verwenden kann. Das verkürzt das Programm ein wenig. Ansonsten ist die Funktionsweise identisch und die Programmierung verläuft analog dazu. Das fertige Programm kann dann wie folgt aussehen:#include <SPI.h>
//Pin-Deklaration
int tasterPin = 4;
int passivSummerPin = 2;
int waitTime = 200; //Wartezeit in ms
int statusTaster;
void setup() {
Serial.begin(9600);
ledcSetup(0, 5000, 8);
ledcAttachPin(passivSummerPin, 0);
//Definition für die Pins
pinMode(tasterPin, INPUT);
pinMode(passivSummerPin, OUTPUT);
}
//Hier wird die Melodie festgelegt, in diesem Fall wird immer ein
//bestimmter Ton gespielt und dazwischen eine Pause von 200 ms gemacht.
//Der Teil kann beliebig variiert werden.
void hupe(float note)
{
ledcWriteTone(0, note);
delay(waitTime);
ledcWriteTone(0, 0);
delay(waitTime);
}
void loop() {
statusTaster = digitalRead(tasterPin);
if(statusTaster == HIGH)
{
Serial.println("Hupe aktiv");
hupe(293.0); //Die Hupe wird aktiviert und die entsprechende Funktion aufgerufen.
}
else
{
Serial.println("Hupe inaktiv");
digitalWrite(passivSummerPin, LOW); //Die Hupe wird deaktiviert.
}
}