Arduino: Lärmampel (Teil 2) – einfache Lärmampel

Das Projekt „Lärmampel“ besteht aus drei Teilen. Jeder Teil kann als eigenständiges Projekt umgesetzt werden, ohne alle drei Teile in einem Workshop umsetzen zu müssen.
Wir beschäftigen uns heute mit dem Arduino. Der Arduino ist ein kleiner Micro Controller, der sich gut dazu eignet, um in der Gruppenstunde kleine Prototypen zu basteln.

Zielgruppe

Pfadfinderinnen und Pfadfinder

Ziel von Teil 2

Mit einem Mikrofon wollen wir den Schallpegel messen und in drei verschiedenen Stufen durch farbige LEDs darstellen.

Zeitaufwand

ca. 45 Minuten

Material

  • Arduino Uno
  • Breadboard
  • Audio-Sensor
  • 1 Leuchtdiode (rot)
  • 1 Leuchtdiode (gelb)
  • 1 Leuchtdiode (grün)
  • 3 Widerstände – 220 Ω
  • Jumper-Kabel
  • Trillerpfeife (um den Schallpegel-Wert zu überschreiten)

Material2

Aufbau

Der Aufbau ist relativ einfach. LED’s leuchten nur, wenn der Strom in die richtige Richtung fließt. Deswegen macht es Sinn, unterschiedliche Kabelfarben zu verwenden. Am besten Schwarz (- oder GND) für das kürze Bein und Grün für das längere Bein.

Jetzt kann die LED mit dem Arduino verbunden werden. Das schwarze Kabel muss mit einem der GND Pin’s auf dem Arduino verbunden werden. Das andere Kabel muss mit jeweils einem Digital out Pin verbunden werden (hier Pin 8, Pin 7 und Pin 6). Damit die LED nicht zu viel Strom bekommt und durchbrennt haben wir zwischen LED und Pin noch einen Widerstand geschaltet.

Für das Experiment wird eine fertiger Audio-Sensor verwendet.
Damit können wir das Mikrofon wie einen analogen Sensor einlesen. Der Sensor hat vier
Anschlüsse, zwei für die Stromversorgung und einen analogen und einen digitalen für das Mikrofon-Signal.
Für das Experiment nutzen wir nur den analogen Ausgang.

Anschlüsse auf dem Audio-Sensor

Anschlüsse auf dem Audio-Sensor

Für den Versuch ist es wichtig, dass die Anschlüsse auf dem Audio-Sensor richtig verdrahtet werden!

  • AO – weißes Kabel
  • G (auch GND) – schwarzes Kabel
  • + – rotes Kabel
  • (DO – digitaler Ausgang, wird nicht benötigt!)

Laerampel-teil2 einfach_Steckplatine

Mikrofon

 

Auf dem dem Audio-Sensor befindet sich ein Kondensatormikrofon. Die interne Kapazität des Kondensatormikrofons ändert sich bei Bewegung der Membran durch Schallwellen. Dabei entstehen minimale Spannungsänderung, die man messen kann. Auf dem Senor wird das Signal um das hundertfach verstärkt, damit die Spannungsänderungen mit einem Arduino gemessen werden kann.

 

Kondensatormikrofon By Kevin [GFDL, CC-BY-SA-3.0 or CC BY-SA 2.5-2.0-1.0], via Wikimedia Commons

Jetzt kann es mit der Programmierung losgehen. Der Arduino liefert eine eigene Entwicklungsumgebung mit. Ihr könnt sie für euren Laptop unter arduino.cc herunterladen. Nach der Installation könnt ihr das Programm öffnen und den Code für die einfache Lärmampel in den Editor kopieren.

const int mikrofon = A0;      //Analog-Eingang für das Mikrofon
const int grenze_rot = 700;   //Grenze für Rot-Anzeige
const int grenze_gelb = 550;  //Grenze für Gelb-Anzeige
const int led_rot = 8;        //Digital-Ausgang für rote LED
const int led_gelb = 7;       //Digital-Ausgang für gelbe LED
const int led_gruen = 6;     //Digital-Ausgang für grüne LED
const int dauer = 500;        //Anschaltdauer

void setup() {
Serial.begin(9600);          //Baudrate für serielle Schnittstelle
pinMode(led_rot, OUTPUT);    //LED als Ausgabe definieren
pinMode(led_gelb, OUTPUT);   //LED als Ausgabe definieren
pinMode(led_gruen, OUTPUT);  //LED als Ausgabe definieren
}

void loop() {
int lautstaerke = analogRead(mikrofon); // Lautstärke einlesen
float wert = lautstaerke;
Serial.println(wert); // Wert ausgeben
if (wert>grenze_rot) {           // Für hohe Lautstärke
  Serial.println("Rot!");               //Meldung ausgeben
  digitalWrite(led_gruen, LOW);         //Grün ausschalten
  digitalWrite(led_gelb, LOW);          //Gelb ausschalten
  digitalWrite(led_rot, HIGH);          //Rot anschalten
  delay(dauer);                         //Warten
}
else if (wert>grenze_gelb){      //Für mittlere Lautstärke ...
  Serial.println("Gelb!");
  digitalWrite(led_gruen, LOW);
  digitalWrite(led_rot, LOW);
  digitalWrite(led_gelb, HIGH);
  delay(dauer);
}
else {
  digitalWrite(led_rot, LOW);           //Rot ausschalten
  digitalWrite(led_gelb, LOW);          //Gelb ausschalten
  digitalWrite(led_gruen, HIGH);        //sonst Grün anschalten
}
}

Der Programmcode aus Teil 1 wurde um die Ansteuerung der farbigen LEDs erweitert.
Die Abfragen für die verschiedenen Schwellwerte für die einzelnen Schallpegel definieren und entsprechende Abfragen in das Programm einbauen. Jedes Mal werden alle LEDs ausgeschaltet, bevor eine neue angeschaltet wird. Geht man etwas nachlässiger vor, kann es vorkommen, dass mehrere LEDs gleichzeitig leuchten.

Für die Übertragung muss zunächst der angeschlossenen Arduino ausgewählt werden. Hierzu unter Tools -> Board das verwendete Board auswählen. (z.B. Arduino UNO)

Board auswählen

Board auswählen. Der Boardname steht auf der Platine

 

Anschließend sucht ihr den Port, an dem der Arduino angeschlossen ist aus.

Port auswählen

Port auswählen

 

Jetzt kann das Programm in ein maschinenlesbares Format übersetzt und an den Arduino übertragen werden. Hierzu drücke wir einfach auf Upload.

Der Prozess kann im Bereich Statusmeldungen überprüft werden. Wenn etwas nicht funktioniert, reicht es in der Regel, wenn man die Fehlermeldung bei Google sucht. Irgendjemand hatte bestimmt schon mal das gleiche Problem.

Nach ein paar Sekunden sollten die einfache Lärmampel auf lautes Pfeifen oder die Trillerpfeife reagieren.
Die farbigen LED’s leuchten in der Farbe auf, deren Schallpegel-Wert überschritten wurde!

Kommentare sind geschlossen.