Arduino Lektion 41: KY - 008 Laser Pointer Sender & Empfänger
Der Laserpointer KY - 008 und der passende Empfänger dient zum Aufbau einer einfachen Lichtschranke, mit welcher man Bsp. Zählen kann oder einen Durchgang überwachen kann. In Verbindung mit einem Wemos D1 mini (WLAN fähig) kann man hier eine Online Überwachung aufbauen.
Technische Daten
- Betriebsspannung - 5V
- Leistungs - 5mW
- Wellenlänge - 650 nm
- Laser Klasse - 1
Bezug
Der Laserpointer KY - 008 kann zbsp. über ebay.de, amazon.de oder wish.com bezogen werden. Hier darf man sich jedoch nicht von der teils, irreführenden Bezeichnung der Laserleistung verleiten lassen.
Amazon Produktbeschreibung KY-008
Der Laser hat eine Leistung von 5mW (milliWatt) und nicht 5MW (MegaWatt).
Aufbau
Der Laserpointer KY - 008 verfügt über 3 Anschlüsse, von denen 2 jeweils mit "-" und "S" markiert sind.
Das "-" steht hier für GND (Ground) und "S" für Signal, es verbleibt somit der mittlere Pin für "+" 5V VCC.
Laserpointer KY - 008
Der Aufbau ist mit 3 Breadboardkabeln schnell erledigt.
Quellcode
Wenn man den Laser Pointer an den Microcontroller anschließt dann leuchtet dieser ganz leicht auf. Man darf hier nicht vergessen den PIN an welchem dieser Angeschlossen ist auf "HIGH" zu setzten. Damit der Laser Pointer seine volle "kraft" entfalten kann.
//digitaler PIN 6 an welchem der Laserpointer angeschlossen ist
int laserPin = 6;
void setup() {
pinMode(laserPin, OUTPUT); //Laserpointer als Ausgangssignal setzen
digitalWrite(laserPin, HIGH); //Laserpointer aktivieren (Ausgangssignal auf HIGH setzen)
}
void loop() {
//Hier geschieht nix.
}
Das Beispiel in diesem Tutorial wird eine Lichtschranke mit einem Laser, dafür wird noch das "Gegenstück" nämlich der Detektor benötigt. Hier möchte ich also noch den Laser Sensor Modul kurz beschreiben.
Technische Daten
- Betriebsspannung - 5V
Aufbau
Der Laser Sensor Modul verfügt wie der Laserpointer auch über 3 Pins welche wie folgt, beschriftet sind
- GND - Ground
- OUT - Signal
- VCC - 5V
Der Laser Sensor Modul verwendet einen nicht modularen Lasersensor. Dieser sollte im Gebäude verwendet werden und abgeschirmt von Tageslicht und sonstigen störenden Lichtquellen.
In einem kleinen Versuchsaufbau war schon das Licht der Schreibtischlampe störend daher empfehle ich den Sensor in einem Gehäuse zu betreiben.
Laser Sensor Modul
Quellcode
Hier nun ein kleines Beispiel wie man den Laserpointer und den Laser Sensor Modul zusammen bringt.
//digitaler PIN 6 an welchem der Laserpointer angeschlossen ist
int laserPin = 6;
//digitaler PIN 7 an welchem der Laser Detector angeschlossen ist
int detectorPin = 7;
void setup() {
//Beginn der seriellen Kommunikation
Serial.begin(9600);
pinMode(laserPin, OUTPUT); //Laserpointer als Ausgangssignal setzen
pinMode(detectorPin, INPUT); //Laser Detector als Eingangssignal setzen
digitalWrite(laserPin, HIGH); //Laserpointer aktivieren (Ausgangssignal auf HIGH setzen)
}
void loop() {
//Ausgabe des Wertes des Laser Detectors auf den seriellen Ausgang (1 oder 0)
Serial.println(digitalRead(detectorPin));
}
Beispiel - "Objektüberwachung"
Im folgenden Beispiel möchte ich mit zwei Spiegeln die Lichtschranke um ein beliebiges Objekt leiten.
Dazu baue ich mit einer Sperrholzplatte zwei Taschenspiegel und dem Laserpointer Modul und Laser Sensor. Der Lasersensor ist in einem eigenen Gehäuse verpackt und lässt das Licht nur durch eine 8 mm große Öffnung an der Vorderseite durch.
Aufbau - Objektüberwachung mit dem Laserpointer Modul KY-008
Quellcode
//digitaler PIN 6 an welchem der Laserpointer angeschlossen ist
int laserPin = 6;
//digitaler PIN 7 an welchem der Laser Detector angeschlossen ist
int detectorPin = 7;
//digitaler PIN 8 an welchem der Buzzer angeschlossen ist
int buzzerPin = 8;
void setup() {
//Beginn der seriellen Kommunikation
Serial.begin(9600);
pinMode(laserPin, OUTPUT); //Laser Pointer als Ausgangssignal setzen
pinMode(detectorPin, INPUT); //Laser Detector als Eingangssignal setzen
digitalWrite(laserPin, HIGH); //Laser Pointer aktivieren (Ausgangssignal auf HIGH setzen)
}
void loop() {
boolean val = digitalRead(detectorPin);
//Wenn der Wert 0 ist also die Lichtschranke ist durchbrochen dann
//soll der Buzzer ertönen.
if(val == 0){
tone(buzzerPin, 500);
delay(300);
noTone(buzzerPin);
}
}
Video
Eine Alternative zu dem Laser Sensor / Detektor ist ein Fotowiderstand.
Fotowiderstand auf einem 170 PIN Breadboard
Den Fotowiderstand habe ich bereits im Tutorial Arduino Lektion 4: LED mit Fotowiderstand behandelt.
Dieses Bauelement reagiert auf Licht mit einem unterschiedlichen Pegel am analogen Eingang des Arduinos.
Aufbau
Aufbau Laserpointer KY-008 und Fotowiderstand am Arduino Leonardo
Quellcode
int fotoZellePin = 2; //Fotowiderstand am Analogen PIN A2
int ledPin = 13; //interne / onBoard LED am digitalen PIN 13
int laserPin = 6; //Laser Pointer KY-008 am digitalen PIN 6
int value = 0;
void setup() {
pinMode(ledPin, OUTPUT); //Setzt den Ausgang für die LED
pinMode(laserPin, OUTPUT); //Laser Pointer als Ausgangssignal setzen
digitalWrite(laserPin, HIGH); //Laser Pointer aktivieren (Ausgangssignal auf HIGH setzen)
}
void loop() {
//Mappen der Werte des analogen Eingangs.
//Die möglichen Werte liegen hier zwischen 0 und 1023 dieses wird
//gemappt auf Werte zwischen 0 und 20.
value = map(analogRead(fotoZellePin),0,1023,0,20);
//Wenn der Wert kleiner gleich 16 ist dann soll die interne / onBoard LED aufleuchten.
if(value
Read the full article