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

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

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

Zum PicoTalk Mehr Informationen Am Online-Workshop teilnehmen

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

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

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen