KY-031 Klopfsensor
Wird der Sensor einem Klopfen oder einer Erschütterung ausgesetzt, so werden die beiden Ausgangspins kurzgeschlossen.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit

Wird der Sensor einem Klopfen oder einer Erschütterung ausgesetzt, so werden die beiden Ausgangspins kurzgeschlossen.
Pin-Belegung
Codebeispiel Arduino
Anschlussbelegung Arduino
Arduino | Sensor |
---|---|
Pin 10 | Signal |
5 V | +V |
GND | GND |
Arduino | Sensor |
---|---|
Pin 13 | LED+ |
GND | LED- |
Hierbei handelt es sich um ein Beispielprogramm, welches eine LED zum Leuchten bringt, wenn am Sensor ein Signal detektiert wurde. Als LED können z.B. auch unter anderem die Module KY-011, KY-016 oder KY-029 verwendet werden.
int Led = 13 ;// Deklaration des LED-Ausgangspin
int Sensor = 10; // Deklaration des Sensor-Eingangspin
int val; // Temporaere Variable
void setup ()
{
pinMode (Led, OUTPUT) ; // Initialisierung Ausgangspin
pinMode (Sensor, INPUT) ; // Initialisierung Sensorpin
}
void loop ()
{
val = digitalRead (Sensor) ; // Das gegenwärtige Signal am Sensor wird ausgelesen
if (val == HIGH) // Falls ein Signal erkannt werden konnte, wird die LED eingeschaltet.
{
digitalWrite (Led, LOW);
}
else
{
digitalWrite (Led, HIGH);
}
}
Beispielprogramm Download

Wird der Sensor einem Klopfen oder einer Erschütterung ausgesetzt, so werden die beiden Ausgangspins kurzgeschlossen.
Pin-Belegung
Codebeispiel Raspberry Pi
Anschlussbelegung Raspberry Pi
Raspberry Pi | Sensor |
---|---|
GPIO 24 [Pin 18] | Signal |
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
Hierbei handelt es sich um ein ähnliches Beispielprogramm mit dem Unterschied das hier keine LED zum Leuchten gebracht wird, sondern eine Konsolenausgabe generiert wird, sobald ein Signal detektiert wird.
# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
# Hier wird der Eingangs-Pin deklariert, an dem der Sensor angeschlossen ist. Zusaetzlich wird auch der PullUP Widerstand am Eingang aktiviert
GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.IN)
print("Sensor-Test [druecken Sie STRG+C, um den Test zu beenden]")
# Diese AusgabeFunktion wird bei Signaldetektion ausgefuehrt
def ausgabeFunktion(null):
print("Signal erkannt")
# Beim Detektieren eines Signals (fallende Signalflanke) wird die Ausgabefunktion ausgeloest
GPIO.add_event_detect(GPIO_PIN, GPIO.FALLING, callback=ausgabeFunktion, bouncetime=100)
# Hauptprogrammschleife
try:
while True:
time.sleep(1)
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
GPIO.cleanup()
Beispielprogramm Download
Zu starten mit dem Befehl:
sudo python3 KY031-RPi.py

Wird der Sensor einem Klopfen oder einer Erschütterung ausgesetzt, so werden die beiden Ausgangspins kurzgeschlossen.
Pin-Belegung
Codebeispiel Micro:Bit
Anschlussbelegung Micro:Bit:
Micro:Bit | Sensor |
---|---|
Pin 1 | Signal |
3 V | +V |
GND | GND |
Hierbei handelt es sich um ein Beispielprogramm, welches Text Seriell ausgibt, wenn am Sensor ein Signal detektiert wurde.

Beispielprogramm Download

Wird der Sensor einem Klopfen oder einer Erschütterung ausgesetzt, so werden die beiden Ausgangspins kurzgeschlossen.
Pin-Belegung
Codebeispiel Raspberry Pi Pico
Anschlussbelegung Raspberry Pi Pico
Raspberry Pi Pico | Sensor |
---|---|
GPIO18 | Signal |
3.3V | +V |
GND | GND |
Hierbei handelt es sich um ein Beispielprogramm, welches hoch zählt und Text Seriell ausgibt, wenn am Sensor ein Signal detektiert wurde.
# Bibliotheken laden
from machine import Pin, Timer
import time
# Initialisierung von GPIO18 als Input
button = Pin(18, Pin.IN, Pin.PULL_DOWN)
# Timer Initialisierung
timer = Timer()
# Variablen Initialisierung
i = 0
# Funktion: Variable wird hoch gezählt
def func(pin):
global i
i = i + 1
print(i)
if button.value() == 1:
# Initialisierung Interrupt
button.irq(handler=func, trigger=button.IRQ_FALLING)
# Serielle Ausgabe
print("Klopfe auf den Sensor, um Hoch zu zählen")
print("-------------------------------------")