Raspberry Pi Pico: Lärmampel programmieren (mit KY-037)

Geräusche zu erkennen ist mit einem Geräuschsensor vom Typ KY-037 oder KY-038 nicht schwer. Dank eines analogen Ausgangs kann sogar die Lautstärke eines Geräuschs zahlenmäßig erfasst und ausgewertet werden. So ist es möglich, zu definieren, was zu laut ist. Und dann kann man sich das anzeigen lassen.

Einen Geräuschsensor vom Typ KY-037 oder KY-038 könnte man zum Beispiel einsetzen um eine Lärmampel zu programmieren. Dazu verwenden wir ein herkömmliche Ampel aus drei LEDs in den Farben Rot, Gelb und Grün.

  • Wenn die grüne LED leuchtet, dann ist die Lautstärke in Ordnung (OK).
  • Wenn die gelbe LED leuchtet, dann herrscht eine erhebliche Lautstärke, die aber noch in Ordnung ist (OK).
  • Wenn die rote LED leuchtet, dann herrscht eine Lautstärke, die nicht mehr in Ordnung ist (NOK). Zusätzlich geht hier noch ein Summer an.

Aufbau und Bauteile

Raspberry Pi Pico: Lärmampel programmieren (mit KY-037)

  • Leuchtdiode, rot
  • Leuchtdiode, gelb
  • Leuchtdiode, grün
  • Widerstände: 470 Ohm (Gelb-Violett-Braun-Gold)
  • Aktiver Summer (optional)
Raspberry Pi Pico KY-037
Pin 36 3V3 +3,3V +
Pin 38 GND G
Pin 31 GPIO 26 A0

Programmcode

Im Programmcode ermitteln wir mit Hilfe eines ADC-Eingangs die aktuelle Lautstärke. Innerhalb des Programmcodes sind zwei Schwellwerte definiert, die individuell eingestellt werden müssen. Der Schwellwert „value_ok“ ist der Wert bis zu dem die Lautstärke in Ordnung ist (OK). Es leuchtet die grüne LED. Über diesem Wert kommt die Lautstärke in einen Grenzbereich, der noch in Ordnung ist. Hier leuchtet die gelbe LED. Über dem Schwellwert „value_nok“ ist es dann zu laut, weshalb dann die rote LED leuchtet.

# Bibliotheken laden
from machine import Pin, ADC
from time import sleep

# Lautstärke-Werte (0 - 65535)
value_ok = 34000
value_nok = 36000

# Initialiserung der GPIOs für die Ampel
red = Pin(13, Pin.OUT, value=0)
yellow = Pin(14, Pin.OUT, value=0)
green = Pin(15, Pin.OUT, value=0)

# Initialiserung der GPIOs für den Summer
buz = Pin(8, Pin.OUT, value=0)

# Initialisierung des ADC0 (GPIO26)
sensor = ADC(0)

# Funktion, wenn Lautstärke OK
def sound_ok():
    red.off()
    yellow.off()
    green.on()

# Funktion, wenn Lautstärke nicht OK
def sound_nok():
    red.off()
    yellow.on()
    green.off()

# Funktion, wenn Lautstärke zu laut
def sound_alarm():
    red.on()
    yellow.off()
    green.off()
    buz.on()
    sleep(1)
    buz.off()

# Wiederholung (Endlos-Schleife)
while True:
    value = sensor.read_u16()
    print(value)
    if (value < value_ok):
        sound_ok()
    elif (value < value_nok):
        sound_nok()
    else:
        sound_alarm()
    sleep(1)

Die im Programmcode verwendeten Schwellwerte, ab wann welche Lärmstufe gilt, sind willkürlich gewählt. Sie gelten nur für einen bestimmten Testfall. Für einen konkreten Anwendungsfall muss der Geräuschsensor kalibriert und die Schwellwerte für eine bestimmte Lärmstufe ermittelt werden. Die ermittelten Schwellwerte müssen dann im Programmcode hinterlegt werden.

Kalibrierung der Geräuscherkennung

Auf dem Geräuschsensor befindet sich ein Potentiometer mit dem man die Empfindlichkeit für die digitale Geräuscherkennung einstellen kann. Dieses Potentiometer hat allerdings auch Einfluss auf das analoge Signal.
Wie das Potentiometer stehen muss, muss in der Praxis ermittelt werden. Nach der Ermittlung der Schwellwerte darf die Stellung des Potentiometers nicht mehr verändert werden. Wenn doch, dann müssen die Schwellwerte erneut ermittelt werden.

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk

 

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython

Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Pico WLAN Edition
Elektronik-Set Pico WLAN Edition

Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT

Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Sensor Edition
Elektronik-Set Sensor Edition

Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition

Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Eingabe Ausgabe Edition
Elektronik-Set Eingabe Ausgabe Edition

Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition

Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.

Elektronik-Set jetzt bestellen