Zum Inhalt

Sound Pressure Level Bricklet

Sound Pressure Bricklet

Sound Pressure Level Bricklet

Misst den Schalldruckpegel zwischen 30 dB uns 120 dB mit einer Genauigkeit von 5 dB.

Initialisierung

Code um das Bricklet anzusteuern

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Adressierung
# Diese beiden Zeilen nur 1x pro Programm nutzen:
HOST = "localhost"
PORT = 4223

# UID des Bricklets
soundPressureBrickletUID = "xxx" # UID aus dem Brick Viewer

# Import der wichtigen Funktionen
from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_sound_pressure_level import BrickletSoundPressureLevel

# Verbindung herstellen
ipcon = IPConnection() # Create IP connection
soundPressureBricklet = BrickletSoundPressureLevel(soundPressureBrickletUID, ipcon)
ipcon.connect(HOST, PORT) # Connect to brickd

Funktionen im Hauptprogramm

Funktionen des Sound-Pressure-Bricklet

decibel = soundPressureBricklet.get_decibel()
gibt den aktuellen Schallpegel in der Einheit 1/10 dB zurück. Ein Wert von 500 enspricht also 50.0 dB.

Callback-Funktionen

Callback-Funktion registrieren

soundPressureBricklet.register_callback(soundPressureBricklet.CALLBACK_DECIBEL, soundCallback)
wobei soundCallback der Name der gewünschten Funktion ist, welche aufgerufen werden soll. soundCallback sollte dann so definiert werden: def soundCallback(decibel): da der jeweilige Messwert als decibel übergeben wird.

Callback-Funktion konfigurieren

soundPressureBricklet.set_decibel_callback_configuration(period, value_has_to_change, option, min, max)
  • period: Wert in ms in der der Schallpegel überprüft werden soll. Standardwert 0.
  • value_has_to_change: True oder False. Falls True, dann wird die Callbackfunktion nur aufgerufen, wenn sich der Pegel geändert hat. Standardwert False
  • option: "x", "o", "i", "<" oder ">". Standardwert: "x"
    • "x" Threshold ist abgeschaltet
    • "o" Threshold wird ausgelöst, wenn der Wert außerhalb der Min und Max Werte sind
    • "i" Threshold wird ausgelöst, wenn der Wert innerhalb der Min und Max Werte sind
    • "<" Threshold wird ausgelöst, wenn der Wert kleiner ist wie der Min Wert (Max wird ignoriert)
    • ">" Threshold wird ausgelöst, wenn der Wert größer ist wie der Min Wert (Max wird ignoriert)
  • min: Schallpegel in 1/10 dB. Standardwert: 0
  • max: Schallpegel in 1/10 dB. Standardwert: 0

Anbei ein paar Beispiele für mögliche Konfigurationen:

  • soundPressureBricklet.set_decibel_callback_configuration(1000, False, "x", 0, 0) ruft die Callback-Funktion jede Sekunde auf.
  • soundPressureBricklet.set_decibel_callback_configuration(1000, True, "x", 0, 0) ruft die Callback-Funktion jede Sekunde auf. Aber nur wenn sich der Schallpegel zwischenzeitlich geändert hat.
  • soundPressureBricklet.set_decibel_callback_configuration(1000, False, ">", 80*10, 0) überprüft den Pegel jede Sekunde und ruft die Callback-Funktion auf, falls der Pegel von 80 dB überschritten hat.

Beispiel für soundCallback

def soundCallback(decibel):
    print("Decibel: " + str(decibel/10.0) + " dB(A)")