KY-027 Magic Light Cup Modul: Unterschied zwischen den Versionen
Aus Linkerkit.de
Zeile 4: | Zeile 4: | ||
==Technische Daten / Kurzbeschreibung== | ==Technische Daten / Kurzbeschreibung== | ||
Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Signal, wann die LED an ist, wird an einen Signalausgang gegeben. Je nach Eingangsspannung, werden Vorwiderstände benötigt | Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Signal, wann die LED an ist, wird an einen Signalausgang gegeben. Je nach Eingangsspannung, werden Vorwiderstände benötigt | ||
+ | |||
+ | '''<u>Vorwiderstand:</u>''' | ||
+ | |||
+ | '''Rf (3,3V) [<span style="color: #ff0000;">Rot</span>]= 120Ω''' | ||
+ | |||
+ | ''[z.B. beim Einsatz mit ARM CPU-Kern basierten Mikrokontrollern wie <u>Raspberry-Pi</u>]'' | ||
+ | |||
+ | |||
+ | '''Rf (5V) [<span style="color: #ff0000;">Rot</span>] = 220Ω''' | ||
+ | |||
+ | ''[z.B. beim Einsatz mit Atmel Atmega basierten Mikrokontrollern wie <u>Arduino</u>]'' | ||
==Pin-Belegung== | ==Pin-Belegung== | ||
Zeile 9: | Zeile 20: | ||
==Codebeispiel Arduino== | ==Codebeispiel Arduino== | ||
− | <pre class="brush:cpp">int | + | Hier bei handelt es sich um ein Beispielprogramm, welches die LED vom Magic-LightCup-Modul zum Leuchten bringt, wenn am Sensor eine Neigung detektiert wurde. |
− | int | + | |
− | int | + | <pre class="brush:cpp">int Led = 13 ;// Deklaration des LED-Ausgangspin |
− | + | int Sensor = 10; // Deklaration des Sensor-Eingangspin | |
− | + | int val; // Temporaere Variable | |
− | + | ||
− | + | ||
void setup () | void setup () | ||
{ | { | ||
− | pinMode ( | + | pinMode (Led, OUTPUT) ; // Initialisierung Ausgangspin |
− | pinMode ( | + | pinMode (Sensor, INPUT) ; // Initialisierung Sensorpin |
− | + | digitalWrite(Sensor, HIGH); // Aktivierung interner Pull-Up Widerstand | |
− | + | ||
} | } | ||
+ | |||
void loop () | void loop () | ||
{ | { | ||
− | + | val = digitalRead (Sensor) ; // Das gegenwärtige Signal am Sensor wird ausgelesen | |
− | if ( | + | |
− | { | + | if (val == HIGH) // Falls ein Signal erkannt werden konnte, wird die LED eingeschaltet. |
− | + | { | |
− | } | + | digitalWrite (Led, LOW); |
− | + | } | |
− | + | else | |
− | { | + | { |
− | + | digitalWrite (Led, HIGH); | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | '''Anschlussbelegung Arduino:''' | ||
+ | |||
+ | {| style="height: 58px; padding-left: 30px;" width="228" | ||
+ | |- | ||
+ | ||LED + | ||
+ | ||= | ||
+ | ||[Pin 13] | ||
+ | |- | ||
+ | ||LED - | ||
+ | ||= | ||
+ | ||[Pin GND] | ||
+ | |- | ||
+ | ||Sensor Signal | ||
+ | ||= | ||
+ | ||[Pin 10] | ||
+ | |- | ||
+ | ||Sensor +V | ||
+ | ||= | ||
+ | ||[Pin 5V] | ||
+ | |- | ||
+ | ||Sensor - | ||
+ | ||= | ||
+ | ||[Pin GND] | ||
+ | |} | ||
+ | |||
+ | '''Beispielprogramm Download''' | ||
+ | |||
+ | [[Medium:SensorTest_Arduino.zip|SensorTest_Arduino.zip]] | ||
==Codebeispiel Raspberry Pi== | ==Codebeispiel Raspberry Pi== | ||
Zeile 47: | Zeile 83: | ||
import RPi.GPIO as GPIO | import RPi.GPIO as GPIO | ||
import time | import time | ||
− | + | ||
GPIO.setmode(GPIO.BCM) | GPIO.setmode(GPIO.BCM) | ||
− | + | ||
− | # Hier wird der Eingangs-Pin deklariert, an dem der Sensor angeschlossen ist | + | # 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_PIN = 24 | ||
− | GPIO.setup(GPIO_PIN, GPIO.IN) | + | GPIO.setup(GPIO_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP) |
− | + | ||
− | print " | + | print "Sensor-Test [druecken Sie STRG+C, um den Test zu beenden]" |
− | + | ||
# Diese AusgabeFunktion wird bei Signaldetektion ausgefuehrt | # Diese AusgabeFunktion wird bei Signaldetektion ausgefuehrt | ||
def ausgabeFunktion(null): | def ausgabeFunktion(null): | ||
print("Signal erkannt") | print("Signal erkannt") | ||
− | + | ||
# Beim Detektieren eines Signals (fallende Signalflanke) wird die Ausgabefunktion ausgeloest | # Beim Detektieren eines Signals (fallende Signalflanke) wird die Ausgabefunktion ausgeloest | ||
GPIO.add_event_detect(GPIO_PIN, GPIO.FALLING, callback=ausgabeFunktion, bouncetime=100) | GPIO.add_event_detect(GPIO_PIN, GPIO.FALLING, callback=ausgabeFunktion, bouncetime=100) | ||
− | + | ||
# Hauptprogrammschleife | # Hauptprogrammschleife | ||
try: | try: | ||
while True: | while True: | ||
time.sleep(1) | time.sleep(1) | ||
− | + | ||
# Aufraeumarbeiten nachdem das Programm beendet wurde | # Aufraeumarbeiten nachdem das Programm beendet wurde | ||
except KeyboardInterrupt: | except KeyboardInterrupt: | ||
Zeile 92: | Zeile 128: | ||
||[Pin 6] | ||[Pin 6] | ||
|} | |} | ||
− | |||
'''Beispielprogramm Download''' | '''Beispielprogramm Download''' | ||
− | + | [[Medium:SensorTest_RPi.zip|SensorTest_RPi.zip]] | |
Zu starten mit dem Befehl: | Zu starten mit dem Befehl: | ||
− | <pre class="brush:bash">sudo python | + | <pre class="brush:bash">sudo python SensorTest_RPi.py |
</pre> | </pre> |
Version vom 22. März 2016, 16:10 Uhr
Inhaltsverzeichnis
Bild
Technische Daten / Kurzbeschreibung
Die LED wird bei Erschütterung an– oder ausgeschaltet. Das Signal, wann die LED an ist, wird an einen Signalausgang gegeben. Je nach Eingangsspannung, werden Vorwiderstände benötigt
Vorwiderstand:
Rf (3,3V) [Rot]= 120Ω
[z.B. beim Einsatz mit ARM CPU-Kern basierten Mikrokontrollern wie Raspberry-Pi]
Rf (5V) [Rot] = 220Ω
[z.B. beim Einsatz mit Atmel Atmega basierten Mikrokontrollern wie Arduino]
Pin-Belegung
Codebeispiel Arduino
Hier bei handelt es sich um ein Beispielprogramm, welches die LED vom Magic-LightCup-Modul zum Leuchten bringt, wenn am Sensor eine Neigung detektiert wurde.
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); } }
Anschlussbelegung Arduino:
LED + | = | [Pin 13] |
LED - | = | [Pin GND] |
Sensor Signal | = | [Pin 10] |
Sensor +V | = | [Pin 5V] |
Sensor - | = | [Pin GND] |
Beispielprogramm Download
Codebeispiel Raspberry Pi
Programmierbeispiel in der Programmiersprache Python
# 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, pull_up_down = GPIO.PUD_UP) 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()
Anschlussbelegung Raspberry Pi:
Signal | = | GPIO24 | [Pin 18] |
+V | = | 3,3V | [Pin 1] |
GND | = | Masse | [Pin 6] |
Beispielprogramm Download
Zu starten mit dem Befehl:
sudo python SensorTest_RPi.py