KY-027 Magic Light Cup
Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Signal, wann die LED an ist, wird an einen Signalausgang gegeben welchen man dann auslesen kann.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit

Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Triggersignal, welches die LED steuert, wird zusätzlich an den Signalausgang weitergeleitet.
Vorwiderstand:
Je nach Eingangsspannung, werden Vorwiderstände benötigt.
Vorwiderstand (3,3 V) [Rot] | 120 Ω |
Vorwiderstand (5 V) [Rot] | 220 Ω |
Pin-Belegung
Codebeispiel Arduino
Anschlussbelegung Arduino
Arduino | Sensor |
---|---|
Pin 10 | Signal |
5V | +V |
GND | GND |
Pin 13 | LED |
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
digitalWrite(Sensor, HIGH); // Aktivierung interner Pull-Up Widerstand
}
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

Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Triggersignal, welches die LED steuert, wird zusätzlich an den Signalausgang weitergeleitet.
Vorwiderstand:
Je nach Eingangsspannung, werden Vorwiderstände benötigt.
Vorwiderstand (3,3 V) [Rot] | 120 Ω |
Vorwiderstand (5 V) [Rot] | 220 Ω |
Pin-Belegung
Codebeispiel Raspberry Pi
Anschlussbelegung Raspberry Pi
Raspberry Pi | Sensor |
---|---|
GPIO 23 [Pin 16] | Signal |
3,3V [Pin 1] | +V |
GND [Pin 6] | GND |
GPIO 24 [Pin 18] | LED |
Programmierbeispiel in der Programmiersprache Python.
# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
# Hier werden die beiden Pins deklariert, an dem der Sensor und die LED angeschlossen sind,
LED_PIN = 24
Sensor_PIN = 23
GPIO.setup(Sensor_PIN, GPIO.IN)
GPIO.setup(LED_PIN, GPIO.OUT)
print ("Sensor-Test [druecken Sie STRG+C, um den Test zu beenden]")
# Diese AusgabeFunktion wird bei Signaldetektion ausgefuehrt
def ausgabeFunktion(null):
GPIO.output(LED_PIN, True)
# Beim Detektieren eines Signals wird die Ausgabefunktion ausgeloest
GPIO.add_event_detect(Sensor_PIN, GPIO.FALLING, callback=ausgabeFunktion, bouncetime=10)
# Hauptprogrammschleife
try:
while True:
time.sleep(1)
#Ausgang wird wieder zurueckgesetzt, falls der Neigungschalter wieder auf die andere Seite geneigt wird
if GPIO.input(Sensor_PIN):
GPIO.output(LED_PIN,False)
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
GPIO.cleanup()
Beispielprogramm Download
Zu starten mit dem Befehl:
sudo python3 KY027-RPi.py

Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Triggersignal, welches die LED steuert, wird zusätzlich an den Signalausgang weitergeleitet.
Vorwiderstand:
Je nach Eingangsspannung, werden Vorwiderstände benötigt.
Vorwiderstand (3,3 V) [Rot] | 120 Ω |
Vorwiderstand (5 V) [Rot] | 220 Ω |
Pin-Belegung
Codebeispiel Micro:Bit
Anschlussbelegung Micro:Bit:
Micro:Bit | Sensor |
---|---|
Pin 2 | LED |
Pin 1 | Signal |
3 V | +V |
GND | GND |

Beispielprogramm Download

Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Triggersignal, welches die LED steuert, wird zusätzlich an den Signalausgang weitergeleitet.
Vorwiderstand:
Je nach Eingangsspannung, werden Vorwiderstände benötigt.
Vorwiderstand (3,3 V) [Rot] | 120 Ω |
Vorwiderstand (5 V) [Rot] | 220 Ω |
Pin-Belegung
Codebeispiel Raspberry Pi Pico
Anschlussbelegung Raspberry Pi Pico
Raspberry Pi Pico | Sensor |
---|---|
GPIO26 | Signal |
3.3V | +V |
GND | GND |
GPIO18 | LED |
# Bibliotheken laden
from machine import Pin, Timer
# Initialisierung von GPIO26 als Input | Initialisierung von GPIO18 als Output
sensor = Pin(26, Pin.IN, Pin.PULL_DOWN)
LED = Pin(18, Pin.OUT, Pin.PULL_DOWN)
# Timer Initialisierung
timer = Timer()
# Variablen Initialisierung
var = 0
# Funktion: LED wird EIN/AUS geschaltet
def step(timer):
global var
print("Erschütterung")
if var == 0:
LED.value(1)
var = 1
else:
LED.value(0)
var = 0
# Funktion: Nach auslösung des Interrupts wird der Timer getrigert um die step()-Funktion auszuführen
def shake(pin):
# Entprellfunktion: Timer setzen
timer.init(mode=Timer.ONE_SHOT, period=100, callback=step)
# Initialisierung Interrupt
sensor.irq(trigger=Pin.IRQ_FALLING, handler=shake)