Kód Arduina a video vysielač a laserový senzor
V tomto návode sa naučíme, ako použiť laserový vysielač a prijímač na detekciu laserového lúča a spustenie bzučiaka alebo inej akcie. Toto zapojenie možno využiť v rôznych aplikáciách, vrátane automatizácie a robotiky. Na konci návodu budete rozumieť, ako zapojiť komponenty a napísať kód pre Arduino, aby všetko fungovalo bez problémov.


V celom návode si rozoberieme kľúčové komponenty tohto projektu, vrátane toho, ako ich správne zapojiť a ako funguje kód. Pozrite si video pre podrobný postup (vo videu o 02:00).
Vysvetlenie hardvéru
Hlavné komponenty tohto projektu zahŕňajú laserový vysielač, laserový prijímač a bzučiak. Laserový vysielač vyžaruje svetelný lúč, zatiaľ čo prijímač tento lúč detekuje. Keď je lúč prerušený, prijímač pošle signál do Arduina, ktoré potom môže aktivovať bzučiak alebo vykonať inú akciu.
Vysielací modul pracuje pri 5 voltoch a obsahuje rezistor na obmedzenie prúdu. Prijímací modul možno pripojiť externým vodičom pre flexibilitu pri umiestnení. Bzučiak je tiež napájaný 5 voltmi a má dva kolíky: jeden pre kladný pól a jeden pre zem.
Podrobnosti z datasheetu
| Výrobca | Neznámy |
|---|---|
| Číslo dielu | Laserový vysielač/prijímač modul |
| Prevádzkové napätie | 5 V |
| Spotreba prúdu | 5 mA typ. |
| Typ výstupu | Digitálny signál |
| Detekčný rozsah | Líši sa podľa prostredia |
| Rozmery | Vysielač: 14,8 mm x 18,8 mm, Prijímač: 15,4 mm x 23,4 mm |
- Zabezpečte správne napájanie, aby nedošlo k poškodeniu.
- Používajte krátke vodiče na minimalizáciu straty signálu.
- Udržujte prijímač zarovnaný s vysielačom pre spoľahlivú detekciu.
- Otestujte zapojenie v rôznych svetelných podmienkach.
- Buďte opatrní pri odrazoch, ktoré môžu spôsobiť falošné detekcie.
Pokyny na zapojenie

Na zapojenie laserového vysielača pripojte jeho uzemňovací kolík na GND Arduina a kladný kolík na 5V Arduina. Stredný kolík vysielača sa nepoužíva. Pre laserový prijímač pripojte jeho uzemňovací kolík na GND, kladný kolík na 5V a výstupný kolík na pin 2 Arduina. Tento výstupný kolík bude čítať signál z laserového prijímača.
Ďalej pripojte bzučiak: jeho dlhší kolík (kladný) by mal byť pripojený na pin 8 Arduina, zatiaľ čo kratší kolík (uzemnenie) sa pripojí na GND. Uistite sa, že všetky spojenia sú pevné, aby sa predišlo občasným problémom počas prevádzky.
Príklady kódu a vysvetlenie
Kód Arduina začína definovaním pinov pre laserový senzor a akciu (bzučiak) pomocou identifikátorov DETECT a ACTION. Kód inicializuje sériovú komunikáciu na ladenie a nastavuje režimy pinov vo funkcii setup().
#define DETECT 2 // pin 2 pre senzor
#define ACTION 8 // pin 8 pre akciu na vykonanie niečoho
void setup() {
Serial.begin(9600);
pinMode(DETECT, INPUT); // definovať vstupný pin detekcie
pinMode(ACTION, OUTPUT); // definovať výstupný pin ACTION
}
Tento úryvok ukazuje, ako nakonfigurovať piny pre vstup a výstup, čo je kľúčové pre funkčnosť zapojenia. Príkaz Serial.begin(9600) umožňuje komunikáciu so sériovým monitorom, čo nám umožňuje vidieť ladené správy.
Vo funkcii loop() kód nepretržite kontroluje stav laserového senzora. Ak je laserový lúč detekovaný, aktivuje bzučiak a vytlačí „Detected!" do sériového monitora.
void loop() {
int detected = digitalRead(DETECT); // čítať laserový senzor
if(detected == HIGH) {
digitalWrite(ACTION, HIGH); // zapnúť bzučiak
Serial.println("Detected!");
} else {
digitalWrite(ACTION, LOW); // vypnúť bzučiak
Serial.println("No laser");
}
delay(200); // čakať 200 milisekúnd
}
Tento úryvok demonštruje základnú logiku programu. Premenná detected ukladá výstup funkcie digitalRead(), ktorá kontroluje, či je laserový lúč prítomný. V závislosti od stavu sa bzučiak zapne alebo vypne.
Demonštrácia / Čo očakávať
Keď je zapojenie správne a kód je nahraný, systém by mal fungovať podľa očakávania. Sériový monitor bude indikovať „Detected!", keď laserový lúč zasiahne prijímač, a bzučiak bude zvoniť. Ak je lúč prerušený alebo nie je detekovaný, zobrazí sa „No laser" a bzučiak sa vypne.
Je nevyhnutné zabezpečiť, aby bol laserový lúč správne zarovnaný s prijímačom pre spoľahlivú prevádzku. Buďte si vedomí potenciálnych odrazov, ktoré môžu spôsobiť falošné pozitívne výsledky, ako je diskutované vo videu (vo videu o 08:00).
Časové značky videa
- 00:00 - Úvod
- 02:00 - Vysvetlenie hardvéru
- 04:30 - Pokyny na zapojenie
- 06:15 - Vysvetlenie kódu
- 08:00 - Demonštrácia
++
/*
* 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);
}
Veci, ktoré by ste mohli potrebovať
-
Amazon
Zdroje a referencie
Zatiaľ žiadne zdroje.
Súbory📁
Žiadne súbory nie sú k dispozícii.