KY-027 Magic Light Cup Modul: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
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 LedPinA = 5;
+
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 LedPinB = 6;
+
 
int ButtonPinA = 7;
+
<pre class="brush:cpp">int Led = 13 ;// Deklaration des LED-Ausgangspin
int ButtonPinB = 4;
+
int Sensor = 10; // Deklaration des Sensor-Eingangspin
int buttonStateA = 0;
+
int val; // Temporaere Variable
int buttonStateB = 0;
+
int brightness = 0;
+
 
void setup ()
 
void setup ()
 
{
 
{
pinMode (LedPinA, OUTPUT);
+
  pinMode (Led, OUTPUT) ; // Initialisierung Ausgangspin
pinMode (LedPinB, OUTPUT);
+
  pinMode (Sensor, INPUT) ; // Initialisierung Sensorpin
pinMode (ButtonPinA, INPUT);
+
  digitalWrite(Sensor, HIGH); // Aktivierung interner Pull-Up Widerstand
pinMode (ButtonPinB, INPUT);
+
 
}
 
}
 +
 
void loop ()
 
void loop ()
 
{
 
{
buttonStateA = digitalRead (ButtonPinA);
+
  val = digitalRead (Sensor) ; // Das gegenwärtige Signal am Sensor wird ausgelesen
if (buttonStateA == HIGH && brightness! = 255)
+
{
+
  if (val == HIGH) // Falls ein Signal erkannt werden konnte, wird die LED eingeschaltet.
brightness + +;
+
  {
}
+
    digitalWrite (Led, LOW);
buttonStateB = digitalRead (ButtonPinB);
+
  }
if (buttonStateB == HIGH && brightness! = 0)
+
  else
{
+
  {
brightness -;
+
    digitalWrite (Led, HIGH);
}
+
  }
analogWrite (LedPinA, brightness); / / A few Guan Yuan (ii)? analogWrite (LedPinB, 255 - brightness);
+
/ / B Yuan (ii) a few Bang?
+
Delay (25);
+
 
}
 
}
 
</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 "KY-003 Test [druecken Sie STRG+C, um den Test zu beenden]"
+
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:KY-003.zip|KY-003.zip]]'''
+
[[Medium:SensorTest_RPi.zip|SensorTest_RPi.zip]]
  
 
Zu starten mit dem Befehl:
 
Zu starten mit dem Befehl:
  
<pre class="brush:bash">sudo python KY-003.py
+
<pre class="brush:bash">sudo python SensorTest_RPi.py
 
</pre>
 
</pre>

Version vom 22. März 2016, 16:10 Uhr

Bild

ky-027.jpg

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

4 Pin-LightCup.png

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

SensorTest_Arduino.zip

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

SensorTest_RPi.zip

Zu starten mit dem Befehl:

sudo python SensorTest_RPi.py