Arduino-code en videotransmitter en lasersensor
In deze tutorial leren we hoe we een laserzender en -ontvanger kunnen gebruiken om een laserstraal te detecteren en een zoemer of een andere actie te activeren. Deze opstelling kan worden gebruikt in verschillende toepassingen, waaronder automatisering en robotica. Aan het einde van de tutorial begrijp je hoe je de componenten moet bedraden en de Arduino-code moet schrijven om alles naadloos te laten werken.


Gedurende de tutorial bespreken we de belangrijkste componenten die bij dit project betrokken zijn, inclusief hoe je ze correct bedraadt en hoe de code werkt. Bekijk de video voor een gedetailleerde uitleg (in video op 02:00).
Hardware Uitgelegd
De belangrijkste componenten van dit project zijn een laserzender, een laserontvanger en een zoemer. De laserzender zendt een lichtstraal uit, terwijl de ontvanger deze straal detecteert. Wanneer de straal wordt onderbroken, stuurt de ontvanger een signaal naar de Arduino, die vervolgens de zoemer kan activeren of een andere actie kan uitvoeren.
De zendermodule werkt op 5 volt en bevat een weerstand om de stroom te beperken. De ontvangermodule kan worden aangesloten op een externe draad voor flexibiliteit in plaatsing. De zoemer wordt ook gevoed met 5 volt en heeft twee pinnen: één voor positief en één voor aarde.
Datasheet Details
| Fabrikant | Onbekend |
|---|---|
| Onderdeelnummer | Laserzender/-ontvangermodule |
| Bedrijfsspanning | 5 V |
| Stroomverbruik | 5 mA typ. |
| Uitgangstype | Digitaal signaal |
| Detectiebereik | Varieert met de omgeving |
| Afmetingen | Zender: 14,8 mm x 18,8 mm, Ontvanger: 15,4 mm x 23,4 mm |
- Zorg voor een juiste voedingsspanning om schade te voorkomen.
- Gebruik korte draden om signaalverlies te minimaliseren.
- Houd de ontvanger uitgelijnd met de zender voor betrouwbare detectie.
- Test de opstelling in verschillende lichtomstandigheden.
- Wees voorzichtig met reflecties die valse detecties kunnen veroorzaken.
Bedradingsinstructies

Om de laserzender te bedraden, verbind je de aardpin met de Arduino GND en de positieve pin met de Arduino 5V. De middelste pin van de zender wordt niet gebruikt. Voor de laserontvanger verbind je de aardpin met GND, de positieve pin met 5V en de uitgangspin met Arduino-pin 2. Deze uitgangspin leest het signaal van de laserontvanger.
Verbind vervolgens de zoemer: de langere pin (positief) moet worden aangesloten op Arduino-pin 8, terwijl de kortere pin (aarde) wordt verbonden met GND. Zorg ervoor dat alle verbindingen stevig zijn om onderbrekingsproblemen tijdens de werking te voorkomen.
Codevoorbeelden en Uitleg
De Arduino-code begint met het definiëren van de pinnen voor de lasersensor en de actie (zoemer) met behulp van de identificaties DETECT en ACTION. De code initialiseert de seriële communicatie voor debugging en stelt de pinmodi in de setup()-functie in.
#define DETECT 2 // pin 2 voor sensor
#define ACTION 8 // pin 8 voor actie om iets te doen
void setup() {
Serial.begin(9600);
pinMode(DETECT, INPUT); // definieer detectie-ingangspin
pinMode(ACTION, OUTPUT); // definieer ACTION-uitgangspin
}
Dit fragment laat zien hoe je de pinnen configureert voor invoer en uitvoer, wat cruciaal is voor de functionaliteit van de opstelling. Het Serial.begin(9600)-commando maakt communicatie met de seriële monitor mogelijk, zodat we debugberichten kunnen zien.
In de loop()-functie controleert de code continu de status van de lasersensor. Als de laserstraal wordt gedetecteerd, activeert het de zoemer en print "Gedetecteerd!" naar de seriële monitor.
void loop() {
int detected = digitalRead(DETECT); // lees lasersensor
if(detected == HIGH) {
digitalWrite(ACTION, HIGH); // zet de zoemer AAN
Serial.println("Gedetecteerd!");
} else {
digitalWrite(ACTION, LOW); // zet de zoemer UIT
Serial.println("Geen laser");
}
delay(200); // wacht 200 milliseconden
}
Dit fragment demonstreert de kernlogica van het programma. De variabele detected slaat de uitvoer op van de digitalRead()-functie, die controleert of de laserstraal aanwezig is. Afhankelijk van de status wordt de zoemer aan of uit gezet.
Demonstratie / Wat te Verwachten
Wanneer de opstelling correct is bedraad en de code is geüpload, zou het systeem naar verwachting moeten functioneren. De seriële monitor geeft "Gedetecteerd!" aan wanneer de laserstraal de ontvanger raakt, en de zoemer zal klinken. Als de straal wordt onderbroken of niet wordt gedetecteerd, wordt "Geen laser" weergegeven en gaat de zoemer uit.
Het is essentieel om ervoor te zorgen dat de laserstraal goed is uitgelijnd met de ontvanger voor betrouwbare werking. Wees je bewust van mogelijke reflecties die valse positieven kunnen veroorzaken, zoals besproken in de video (in video op 08:00).
Videotijdstempels
- 00:00 - Introductie
- 02:00 - Hardware-uitleg
- 04:30 - Bedradingsinstructies
- 06:15 - Code-uitleg
- 08:00 - Demonstratie
++
/*
* Laser Sensor module for Arduino
* Turns ON a buzzer or you can control a motor or servo or any other action.
* Watch the video https://youtu.be/h_y1y6eUvIY
* *
Laser Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on Feb 02, 2018 at 18:24 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
/*
/*
*/
// Laser Sensor code for Robojax.com
#define DETECT 2 // pin 2 for sensor
#define ACTION 8 // pin 8 for action to do something
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Laser Module Test");
pinMode(DETECT, INPUT);//define detect input pin
pinMode(ACTION, OUTPUT);//define ACTION output pin
// Laser sensor code for Robojax.com
}
void loop() {
// Laser Sensor code for Robojax.com
int detected = digitalRead(DETECT);// read Laser sensor
if( detected == HIGH)
{
digitalWrite(ACTION,HIGH);// set the buzzer ON
Serial.println("Detected!");
}else{
digitalWrite(ACTION,LOW); // Set the buzzer OFF
Serial.println("No laser");
// Laser Sensor code for Robojax.com
}
delay(200);
}
Dingen die je misschien nodig hebt
-
Amazon
Hulpmiddelen en referenties
Nog geen middelen.
Bestanden📁
Geen bestanden beschikbaar.