• Arduino
  • Raspberry Pi
  • Raspberry Pi Pico
  • Micro:Bit

Dieser Sensor gibt ein Signal aus, falls das des Sensors ein Geräusch wahrnimmt. Die Empfindlichkeit des Sensors kann mittels Regler justiert werden.

Benutzungshinweis

Dieser Sensor ist ideal für die Schwellenwertmessung geeignet. Das bedeutet, dass der Sensor ein digitales High-Signal abgibt, sobald ein vom Anwender eingestellter Schwellenwert überschritten wird. Das bedeutet aber auch, dass die analogen Messwerte nicht für Umrechnungen geeignet sind, da auch das analoge Signal durch den Drehpotentiometer beeinflusst wird.

Digitaler Ausgang: Triggersignal des Sensors

Analoger Ausgang: Direktes Mikrofon-Signal als Spannungspegel

LED1: Zeigt an, dass der Sensor mit Spannung versorgt ist

LED2: Zeigt an, dass ein Geräusch detektiert wurde

Funktionsweise des Sensors

Dieser Sensor besitzt auf seiner Platine drei funktionelle Bestandteile: Die vordere Sensoreinheit, welche das Umfeld physikalisch misst und als analoges Signal auf die zweite Einheit, dem Verstärker, ausgibt. Dieser verstärkt das Signal abhängig vom eingestellten Widerstand am Drehpotentiometer und leitet es auf den analogen Ausgang des Moduls.

Hierbei ist zu beachten: Das Signal ist invertiert. Wird ein hoher Wert gemessen, so resultiert dies in einen niedrigeren Spannungswert am analogen Ausgang.

Die dritte Einheit stellt einen Komparator dar, welcher den digitalen Ausgang und die LED schaltet, wenn das Signal unter einen bestimmten Wert fällt. Dieser Wert (und damit die Empfindlichkeit des Moduls) kann über das Drehpotentiometer eingestellt werden:

Pin-Belegung

Codebeispiel Arduino

Anschlussbelegung Arduino

Arduino Sensor
5 V +V
GND GND
Pin 3 Digitales Signal
Pin A0 Analoges Signal

Das Programm liest den aktuellen Spannungswert aus, der am analogen Ausgang gemessen werden kann, und gibt diesen auf der seriellen Schnittstelle aus. Zudem wird ebenfalls der Zustand des digitalen Pins in der Konsole angegeben. Dieser gibt an, ob der Grenzwert überschritten wurde.

// Deklaration und Initialisierung der Eingang-Pins
int Analog_Eingang = A0; // Analoger Ausgang des Sensors
int Digital_Eingang = 3; // Digitaler Ausgang des Sensors
  
void setup ()
{
  pinMode (Analog_Eingang, INPUT);
  pinMode (Digital_Eingang, INPUT);
       
  Serial.begin (9600); // Serielle Ausgabe mit 9600 bps
}
  
// Das Programm liest die aktuellen Werte der Eingang-Pins
// und gibt diese auf der seriellen Ausgabe aus
void loop ()
{
  float Analog;
  int Digital;
    
  //Aktuelle Werte werden ausgelesen, auf den Spannungswert konvertiert...
  Analog = analogRead (Analog_Eingang) * (5.0 / 1023.0); 
  Digital = digitalRead (Digital_Eingang);
    
  //... und an dieser Stelle ausgegeben
  Serial.print ("Analoger Spannungswert:"); Serial.print (Analog, 4);  Serial.print ("V, ");
  Serial.print ("Grenzwert:");
  
  if(Digital==1)
  {
      Serial.println (" erreicht");
  }
  else
  {
      Serial.println (" noch nicht erreicht");
  }
  Serial.println ("----------------------------------------------------------------");
  delay (200);
}

Beispielprogramm Download

KY037-Arduino.zip

Dieser Sensor gibt ein Signal aus, falls das des Sensors ein Geräusch wahrnimmt. Die Empfindlichkeit des Sensors kann mittels Regler justiert werden.

Benutzungshinweis

Dieser Sensor ist ideal für die Schwellenwertmessung geeignet. Das bedeutet, dass der Sensor ein digitales High-Signal abgibt, sobald ein vom Anwender eingestellter Schwellenwert überschritten wird. Das bedeutet aber auch, dass die analogen Messwerte nicht für Umrechnungen geeignet sind, da auch das analoge Signal durch den Drehpotentiometer beeinflusst wird.

Digitaler Ausgang: Triggersignal des Sensors

Analoger Ausgang: Direktes Mikrofon-Signal als Spannungspegel

LED1: Zeigt an, dass der Sensor mit Spannung versorgt ist

LED2: Zeigt an, dass ein Geräusch detektiert wurde

Funktionsweise des Sensors

Dieser Sensor besitzt auf seiner Platine drei funktionelle Bestandteile: Die vordere Sensoreinheit, welche das Umfeld physikalisch misst und als analoges Signal auf die zweite Einheit, dem Verstärker, ausgibt. Dieser verstärkt das Signal abhängig vom eingestellten Widerstand am Drehpotentiometer und leitet es auf den analogen Ausgang des Moduls.

Hierbei ist zu beachten: Das Signal ist invertiert. Wird ein hoher Wert gemessen, so resultiert dies in einen niedrigeren Spannungswert am analogen Ausgang.

Die dritte Einheit stellt einen Komparator dar, welcher den digitalen Ausgang und die LED schaltet, wenn das Signal unter einen bestimmten Wert fällt. Dieser Wert (und damit die Empfindlichkeit des Moduls) kann über das Drehpotentiometer eingestellt werden:

Pin-Belegung

Codebeispiel Raspberry Pi

Anschlussbelegung Raspberry Pi

Raspberry Pi Sensor
GPIO 24 [Pin 18] Digitales Signal
3,3 V [Pin 1] +V
GND [Pin 6] GND
- Analoges Signal
Sensor KY-053
Analoges Signal A0
Digitales Signal -
+V -
GND -
Raspberry Pi KY-053
GPIO 3 [Pin 5] SCL
GPIO 2 [Pin 3] SDA
3,3 V [Pin 1] VDD
GND [Pin 6] GND

Analoger Sensor, daher muss folgendes beachtet werden: Der Raspberry Pi besitzt, im Gegensatz zum Arduino, keine analogen Eingänge bzw. es ist kein ADC (analog digital Converter) im Chip des Raspberry Pi's integriert. Dies schränkt den Raspberry Pi ein, insofern man Sensoren einsetzen möchte, bei denen keine digitalen Werte ausgegeben werden, sondern es sich um einen kontinuierlich veränderlichen Wert handelt (Beispiel: Potentiometer -> Andere Position = Anderer Spannungswert).

Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Raspberry nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Raspberry Pi angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Raspberry Pi.

Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem erwähnten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter KY-053 Analog Digital Converter.

Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechenden ADS1x15 und I2C Python-Libraries von Adafruit. Diese wurden unter dem folgenden Link https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15 unter der MIT-Lizenz veröffentlicht. Die benötigten Libraries sind nicht im unteren Download-Paket enthalten.

Bitte beachten Sie, dass Sie vor der Benutzung dieses Beispiels I2C auf Ihrem Raspberry Pi aktivieren müssen.

#!/usr/bin/python
# coding=utf-8
import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# Create the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)

# Create the ADC object using the I2C bus
ads = ADS.ADS1115(i2c)

# Create single-ended input on channels
chan0 = AnalogIn(ads, ADS.P0)
chan1 = AnalogIn(ads, ADS.P1)
chan2 = AnalogIn(ads, ADS.P2)
chan3 = AnalogIn(ads, ADS.P3)

delayTime = 1
Digital_PIN = 24

GPIO.setup(Digital_PIN, GPIO.IN, pull_up_down = GPIO.PUD_OFF)

while True:
    analog = '%.2f' % chan0.voltage
 
    # Ausgabe auf die Konsole
    if GPIO.input(Digital_PIN) == False:
        print ("Analoger Spannungswert:", analog,"V, ","Grenzwert: noch nicht erreicht")
    else:
        print ("Analoger Spannungswert:", analog, "V, ", "Grenzwert: erreicht")
        print ("---------------------------------------")
 
        # Reset + Delay
        button_pressed = False
        time.sleep(delayTime)

Beispielprogramm Download

KY037-RPi.zip

Zu starten mit dem Befehl:

sudo python3 KY037-RPi.py

Dieser Sensor gibt ein Signal aus, falls das des Sensors ein Geräusch wahrnimmt. Die Empfindlichkeit des Sensors kann mittels Regler justiert werden.

Benutzungshinweis

Dieser Sensor ist ideal für die Schwellenwertmessung geeignet. Das bedeutet, dass der Sensor ein digitales High-Signal abgibt, sobald ein vom Anwender eingestellter Schwellenwert überschritten wird. Das bedeutet aber auch, dass die analogen Messwerte nicht für Umrechnungen geeignet sind, da auch das analoge Signal durch den Drehpotentiometer beeinflusst wird.

Digitaler Ausgang: Triggersignal des Sensors

Analoger Ausgang: Direktes Mikrofon-Signal als Spannungspegel

LED1: Zeigt an, dass der Sensor mit Spannung versorgt ist

LED2: Zeigt an, dass ein Geräusch detektiert wurde

Funktionsweise des Sensors

Dieser Sensor besitzt auf seiner Platine drei funktionelle Bestandteile: Die vordere Sensoreinheit, welche das Umfeld physikalisch misst und als analoges Signal auf die zweite Einheit, dem Verstärker, ausgibt. Dieser verstärkt das Signal abhängig vom eingestellten Widerstand am Drehpotentiometer und leitet es auf den analogen Ausgang des Moduls.

Hierbei ist zu beachten: Das Signal ist invertiert. Wird ein hoher Wert gemessen, so resultiert dies in einen niedrigeren Spannungswert am analogen Ausgang.

Die dritte Einheit stellt einen Komparator dar, welcher den digitalen Ausgang und die LED schaltet, wenn das Signal unter einen bestimmten Wert fällt. Dieser Wert (und damit die Empfindlichkeit des Moduls) kann über das Drehpotentiometer eingestellt werden:

Pin-Belegung

Anschlussbelegung Micro:Bit:

Micro:Bit Sensor
Pin 1 Digitales Signal
3,3 V +V
GND GND
- Analoges Signal
Sensor KY-053
Analoges Signal A0
Digitales Signal -
+V -
GND -
Micro:Bit KY-053
Pin 19 SCL
Pin 20 SDA
3,3 V VDD
GND GND

Analoger Sensor, daher muss folgendes beachtet werden: Der Micro:Bit besitzt analoge Eingänge bzw. es ist ein ADC (analog digital Converter) im Chip des Micro:Bits integriert. Diese sind jedoch nur auf 10-Bit beschränkt und bieten daher nur eine recht geringe Genauigkeit für analoge Messungen.

Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Micro:Bit nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Micro:Bit angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Micro:Bit.

Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem erwähnten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter KY-053 Analog Digital Converter.

Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechende Bibliothek von uns. Diese wurde unter dem folgenden Link pxt-ads1115 unter der MIT-Lizenz veröffentlicht.

Beispielprogramm Download

microbit-KY-037

Dieser Sensor gibt ein Signal aus, falls das des Sensors ein Geräusch wahrnimmt. Die Empfindlichkeit des Sensors kann mittels Regler justiert werden.

Benutzungshinweis

Dieser Sensor ist ideal für die Schwellenwertmessung geeignet. Das bedeutet, dass der Sensor ein digitales High-Signal abgibt, sobald ein vom Anwender eingestellter Schwellenwert überschritten wird. Das bedeutet aber auch, dass die analogen Messwerte nicht für Umrechnungen geeignet sind, da auch das analoge Signal durch den Drehpotentiometer beeinflusst wird.

Digitaler Ausgang: Triggersignal des Sensors

Analoger Ausgang: Direktes Mikrofon-Signal als Spannungspegel

LED1: Zeigt an, dass der Sensor mit Spannung versorgt ist

LED2: Zeigt an, dass ein Geräusch detektiert wurde

Funktionsweise des Sensors

Dieser Sensor besitzt auf seiner Platine drei funktionelle Bestandteile: Die vordere Sensoreinheit, welche das Umfeld physikalisch misst und als analoges Signal auf die zweite Einheit, dem Verstärker, ausgibt. Dieser verstärkt das Signal abhängig vom eingestellten Widerstand am Drehpotentiometer und leitet es auf den analogen Ausgang des Moduls.

Hierbei ist zu beachten: Das Signal ist invertiert. Wird ein hoher Wert gemessen, so resultiert dies in einen niedrigeren Spannungswert am analogen Ausgang.

Die dritte Einheit stellt einen Komparator dar, welcher den digitalen Ausgang und die LED schaltet, wenn das Signal unter einen bestimmten Wert fällt. Dieser Wert (und damit die Empfindlichkeit des Moduls) kann über das Drehpotentiometer eingestellt werden:

Pin-Belegung

Codebeispiel Raspberry Pi Pico

Anschlussbelegung Raspberry Pi Pico

Raspberry Pi Pico Sensor
- Analoges Signal
GND GND
3 V +V
GPIO18 Digitales Signal
Sensor KY-053
Analoges Signal A0
GND -
+V -
Digitales Signal -
Raspberry Pi Pico KY-053
GPIO1 SCL
GPIO0 SDA
3 V VDD
GND GND

Analog sensor, therefore the following must be observed

The Raspberry Pi Pico has analog inputs for the internal ADC (analog digital converter) in the chip of the Raspberry Pi Pico, but this ADC has only a resolution of 12-bit.

To bypass this 12-bit ADC, our sensor kit X40 with the KY-053 has a module with 16-bit accurate ADC, which you can use on the Raspberry Pi Pico to expand it with 4 analog inputs. This module is connected to the Raspberry Pi Pico via I2C, takes over the analog measurement and passes the value digitally to the Raspberry Pi Pico.

Therefore we recommend to connect the KY-053 module with the mentioned ADC in between for analog sensors of this set. More information can be found on the information page for the KY-053 Analog Digital Converter.

The program uses the corresponding ADS1115-Micropython library from Joy-IT to control the ADS1115 ADC. This has been published under the following linkhttps://github.com/joy-it/ADS1115-Micropython under the MIT License. The required library is included in the download package below.

Das Programm liest den aktuellen Spannungswert aus, der durch das Auslesen des analogen Ausgangs berechnet werden kann, und gibt diesen auf der seriellen Schnittstelle aus.

Zudem wird ebenfalls der Zustand des digitalen Pins in der Konsole angegeben. Dieser gibt an, ob der Grenzwert überschritten wurde.

# Bibliotheken laden
from machine import Pin
from time import sleep
import ADS1115

# Initialisierung des ADC
ADS1115.init(0x48, 1, 4, False)
# Initialisierung von GPIO18 als Input
digital = Pin(18,Pin.IN, Pin.PULL_UP)

# Endlosschleife zum Auslesen des ADC
while True:
    Analog = ADS1115.read(0)
    # Umrechnung von Analogwert zu Spannung
    Volt = ADS1115.raw_to_v(ADS1115.read(0))
    Dig = digital.value()

    #Serielle Ausgabe des Analogwertes und der errechneten Spannung
    print("Analogerwert: " + str(Analog))
    print("Analoger Spannungswert: " + str(Volt) + " V")

    # Abfrage ob der Digitale Wert sich geändert hat mit Serieller Ausgabe
    if Dig == 1:
        print("Grenzwert: erreicht.")
        print("----------------------------------------")
    else:
        print("Grenzwert: noch nicht erreicht.")
        print("----------------------------------------")
    sleep(2)

Beispielprogramm Download

KY037-Pico.zip