ESP32 si KY-008 650nm Laser Sensor Module 6mm 5V
ESP32 si KY-008 650nm Laser Sensor Module 6mm 5V

KY-008 Laser 650nm (5V) – test cu ESP32 + idei de proiecte

KY-008 este unul dintre cele mai simple module laser „de maker”: un cap laser roșu (~650nm) montat pe o plăcuță mică, cu un rezistor (și, în multe variante, un tranzistor/etaj simplu de comandă) și 3 pini: VCC, GND, S (signal). Deși este adesea numit „sensor”, în realitate este un emitor laser (transmițător), nu un receptor.

KY-008 650nm Laser sensor Module 6mm 5V
KY-008 650nm Laser sensor Module 6mm 5V

1) Specificații  și observații importante

  • Lungime de undă: ~650 nm (laser roșu)
  • Tensiune alimentare: 5V (uzual)
  • Putere optică: ~5 mW (depinde de lot)
  • Curent tipic: sub ~40 mA (în practică se raportează frecvent ~30 mA)
  • Bornele modului :
    • GND (-)
    • VCC (5V)
    • Signal (S)
Notă critică: există module KY-008 cu marcaje/pinout inconsistene (silkscreen greșit sau variante diferite). Verifică de două ori care pin este VCC/GND/S înainte de alimentare.

2) Siguranță (te rog să nu sari peste asta)

  • Nu îndrepta fasciculul spre ochi (nici direct, nici prin reflexii pe oglinzi/sticlă).
  • Evita suprafețe foarte reflectorizante la aliniere (inox polisat, oglinzi).
  • Nu îl lăsa la îndemâna copiilor; folosește-l în mediu controlat.

3) Conectare la ESP32

ESP32 lucrează pe logică de 3.3V, dar asta este de regulă suficient pentru pinul S al KY-008 (care comandă etajul de pe placă). Alimentarea modulului se face de obicei la 5V.

Schema minimă (recomandată)

  • KY-008 GNDGND
  • KY-008 VCC5V (VIN/5V de pe placa ESP32 DevKit, dacă ai 5V disponibil)
  • KY-008 S → un GPIO de pe ESP32 (ex: GPIO 18 cu PWM)
ESP32 si KY-008 650nm Laser Sensor Module 6mm 5V
ESP32 si KY-008 650nm Laser Sensor Module 6mm 5V

Dacă placa ta ESP32 nu oferă 5V stabil (sau ai alimentare separată), folosește o sursă 5V externă și leagă masele la comun (GND comun).

4) Test 1: ON/OFF (blink) – confirmare pinout + funcționare

Acesta este testul „sanity check”: aprinzi/stingi laserul la intervale de 500 ms. Dacă nu vezi punctul laser,
oprește alimentarea și reverifică pinout-ul (mai ales la modulele cu marcaje confuze).


// ESP32 + Arduino IDE
// KY-008: VCC=5V, GND=GND, S=GPIO 18 (exemplu)

constexpr int LASER_PIN = 18;

void setup() {
  pinMode(LASER_PIN, OUTPUT);
  digitalWrite(LASER_PIN, LOW);
}

void loop() {
  digitalWrite(LASER_PIN, HIGH);
  delay(500);
  digitalWrite(LASER_PIN, LOW);
  delay(500);
}
  

5) Test 2: control cu PWM (dimming perceptual / modulare)

KY-008 nu este un LED clasic, dar poți face „dimming” perceptual prin PWM (frecvență suficient de mare ca să nu pâlpâie vizibil). Pentru ESP32, metoda corectă este perifericul LEDC (PWM hardware).


// ESP32 LEDC PWM - fade-in/fade-out
// Observație: unele module laser răspund excelent la PWM, altele mai puțin (depinde de etajul de pe placă).

constexpr int LASER_PIN = 18;
constexpr int PWM_CH    = 0;
constexpr int PWM_FREQ  = 5000;  // 5 kHz (uzual ok)
constexpr int PWM_RES   = 8;     // 0..255

void setup() {
  ledcSetup(PWM_CH, PWM_FREQ, PWM_RES);
  ledcAttachPin(LASER_PIN, PWM_CH);
}

void loop() {
  for (int duty = 0; duty <= 255; duty++) {
    ledcWrite(PWM_CH, duty);
    delay(5);
  }
  for (int duty = 255; duty >= 0; duty--) {
    ledcWrite(PWM_CH, duty);
    delay(5);
  }
}
  

6) Test 3: „laser ping” – modulare pentru detectare robustă (anti-lumină ambientală)

Dacă vrei să folosești laserul ca sursă într-un sistem cu receptor (fotodiodă / fototranzistor / modul TSOP adaptat optic),un truc foarte util este să modulezi laserul la o frecvență fixă (de ex. 1–10 kHz) și să faci detecție pe acea frecvență. Asta reduce masiv influența luminii ambientale.

7) Idei de utilizare  (practice și realizabile)

7.1. Barieră optică „inteligentă” cu auto-aliniere

Varianta clasică e tripwire (laser + LDR). Varianta neconvențională: pui receptorul pe un mic suport cu două servouriși rulezi o procedură de auto-aliniere (scanezi un „grid” cu punctul laser până maximizezi semnalul pe fotodiodă).Rezultatul: barieră stabilă chiar dacă suportul se mișcă puțin în timp.

7.2. Tachometru optic pentru ax/turbină (cu bandă reflectorizantă)

Lipești un mic petic reflectorizant pe rotor (sau folosești vopsea albă) și folosești laserul ca iluminator punctual.Receptorul (fotodiodă/fototranzistor) vede „flash”-ul la fiecare rotație. ESP32 numără impulsurile și calculează RPM.Este foarte util în proiecte de vibrații/rotative (inclusiv turbine) pentru sincronizare.

7.3. „Laser pointer metrologic” pentru aliniere CNC / imprimantă 3D

Montezi KY-008 pe capul unei imprimante 3D/CNC ca să proiectezi punctul pe masă și să verifici:
(1) originea, (2) abaterea la mișcări repetate, (3) jocuri mecanice (backlash) observând deviația punctului la schimbări de direcție.Este surprinzător de eficient ca unealtă de diagnostic rapid.

7.4. Densitometru de fum / praf (măsurare atenuare)

Construiești un „tunel” (tub negru mat) cu laserul la un capăt și un receptor la celălalt.Măsori câtă lumină ajunge la receptor. Când apare fum/praf, intensitatea scade.Aplicații: testare filtre, monitorizare praf în atelier, detecție fum în prototipuri (nu ca produs de siguranță, ci experimental).

7.5. Comunicație optică punctuală (laser „data link”)

Cu PWM/On-Off Keying poți transmite date de la un ESP32 la altul printr-un fascicul îngust, pe distanțe mai mari decât un LED obișnuit. Ca idee: telemetrie între două puncte în curte/atelier, fără RF (când vrei să eviți interferențele sau să testezi un canal optic).

7.6. „Scanner” simplu cu oglindă vibrată (pseudo-LiDAR 2D de hobby)

Nu vei obține performanță de LiDAR real doar cu KY-008, dar poți face un demo interesant: pui o oglindă mică pe un actuator (servo, difuzor, motor cu excentric) și scanezi punctul pe o suprafață.
Cu un receptor sincronizat poți măsura variații de reflexie și să reconstruiești o hartă foarte brută (de tip „reflectance map”). Este util pentru demonstrații educaționale și pentru calibrare/înțelegere.

8) Recomandări practice de test

  • Măsoară curentul modulului la 5V (ar trebui să fie în zona zecilor de mA).
  • Verifică pinout-ul pe modulele cu silkscreen suspect (există loturi cu marcaj greșit).
  • Nu alimenta direct dintr-un GPIO ca „power pin”; folosește 5V/VIN și GND corespunzător.
  • Pentru PWM, începe cu 2–10 kHz și 8 biți rezoluție; apoi ajustează în funcție de stabilitate/efect vizual.

9) Concluzie

KY-008 este un modul ieftin, simplu și surprinzător de util ca „sursă opticǎ punctuală”.
Combinat cu ESP32 (PWM, numărare impulsuri, Wi-Fi), devine o unealtă bună pentru prototipuri:
bariere inteligente, măsurători pe sisteme rotative, comunicație optică sau instrumente de calibrare/diagnostic.

10) Miniproiect

1. Control Hardware:

  • Controlează un modul laser KY-008 conectat pe pinul GPIO 18
  • Folosește PWM (Pulse Width Modulation) pentru a varia intensitatea laserului
  • Rezoluție PWM: 8 biți (valori 0-255)
  • Frecvență PWM: 5 kHz
ESP32
ESP32

2. Server Web WiFi:

  • ESP32-ul se conectează la rețeaua WiFi 
  • Creează un server web pe portul 80
  • Afișează adresa IP în Serial Monitor la pornire

3. Interfață Web (HTML/CSS/JavaScript):
Pagina web oferă 3 moduri de control:

  • Slider Manual: Poți seta duty cycle-ul PWM la orice valoare între 0-255

    • 0 = laser complet oprit
    • 255 = laser la putere maximă
    • Valori intermediare = intensitate variabilă
  • Mod Sweep (Baleiaj): Activează o animație automată

    • Crește treptat PWM-ul de la 0 la 255
    • Apoi scade înapoi de la 255 la 0
    • Se repetă continuu (efect de pulsare)
    • Increment la fiecare 5ms
  • Stop: Oprește complet laserul (PWM = 0) și dezactivează sweep-ul

4. Comunicare:

  • Browser-ul trimite comenzi HTTP GET către ESP32
  • ESP32 procesează cererile și actualizează PWM-ul în timp real
  • Status-ul se actualizează pe pagină după fiecare comandă

PWM (Pulse Width Modulation)

PWM (Pulse Width Modulation) este o metodă de a controla „puterea medie” livrată unei sarcini (LED, motor, încălzitor, uneori și modul laser) folosind un semnal digital care comută rapid între 0 și 1.

PWM (Pulse Width Modulation)
PWM (Pulse Width Modulation)

Ideea de bază

Semnalul PWM este o succesiune de impulsuri repetate cu o perioadă constantă:

  • Perioada (T): timpul unui ciclu complet.

  • Frecvența (f): de câte ori se repetă ciclul pe secundă.
    f=1/Tf = 1 / T

  • Duty cycle (D): procentul din perioadă în care semnalul este „ON” (HIGH).
    D=tON/TD = t_{ON} / T (de obicei exprimat în %)

Exemplu:

  • 1 kHz înseamnă 1000 cicluri/s ⇒ perioada este 1 ms.

  • Dacă duty cycle = 25%, atunci semnalul e HIGH 0.25 ms și LOW 0.75 ms în fiecare 1 ms.

De ce funcționează ca „dimmer” sau „control de putere”

Deși semnalul e doar 0/1, dacă comuți suficient de rapid:

  • sarcina „vede” o valoare medie,

  • iar energia livrată este aproximativ proporțională cu duty cycle.

Pentru o sarcină rezistivă sau un LED cu driver simplu, o aproximație utilă este:

  • Tensiune medie echivalentă (conceptual): Vavg≈D⋅VmaxV_{avg} \approx D \cdot V_{max}

  • Putere medie (în multe cazuri): crește cu duty cycle (nu întotdeauna perfect liniar, depinde de driver și sarcină).

Exemplu la 5V:

  • D=10% ⇒ „ca și cum” ai livra în medie 0.5V (conceptual, nu ca tensiune DC reală).

  • D=50% ⇒ echivalent ~2.5V mediu.

Important: sarcina primește de fapt impulsuri de 5V, nu 2.5V DC. Diferența e că impulsurile sunt scurte și repetate rapid.

Parametrii care contează în practică

1) Frecvența

  • LED vizibil: dacă e prea mică (ex. 50–100 Hz), vezi pâlpâire.

  • Pentru LED/laser „dimming”: tipic 1–20 kHz (depinde de modul/driver).

  • Pentru motoare DC: adesea 15–25 kHz ca să eviți zgomotul audibil.

2) Rezoluția

Rezoluția îți spune în câți pași poți seta duty cycle-ul.

  • 8 biți ⇒ valori 0…255 ⇒ pas ~0.39%

  • 10 biți ⇒ 0…1023 ⇒ pas ~0.098%

Cu rezoluție mai mare ai control mai fin, dar la unele controlere există un compromis cu frecvența (nu poți avea mereu și frecvență mare și rezoluție foarte mare simultan).

3) Inerția sarcinii

PWM funcționează bine când sarcina are „inerție”:

  • LED: ochiul uman integrează lumina în timp.

  • motor: inerție mecanică + inductanță.

  • încălzitor: inerție termică.

PWM pe ESP32 (pe scurt)

ESP32 are PWM hardware (LEDC). Avantaj:

  • semnal stabil, fără jitter,

  • consum mic de CPU,

  • poți seta frecvență și rezoluție.

În Arduino-ESP32, ideea e:

  • configurezi canalul (frecvență + rezoluție),

  • atașezi pinul,

  • scrii duty cycle.

(În contextul KY-008, PWM merge de obicei pentru „dimming” sau modulare, dar depinde de cum e implementat etajul de comandă pe modul.)

Un exemplu numeric simplu

Să zicem:

  • f = 5 kHz ⇒ T = 0.2 ms

  • D = 30% ⇒ tON = 0.06 ms, tOFF = 0.14 ms

Deci laser/LED primește impulsuri de 5V timp de 60 µs, apoi e oprit 140 µs, repetat de 5000 ori pe secundă.

Greșeli frecvente

  • Frecvență prea mică ⇒ pâlpâire.

  • PWM aplicat direct pe o sarcină care cere curent mare fără tranzistor/driver ⇒ risc pentru GPIO.

  • Confuzie între „tensiune medie” și „tensiune reală”: PWM rămâne 0/5V, doar timpul ON se schimbă.

Susține acest blog

Cumpărând de pe https://mag.automatic-house.ro/ro/ susții blogul meu, iar 10% din vânzări vor fi direcționate către Fundația Dăruiește Viață. Îți mulțumesc!Susține acest blog

Mulțumesc pentru atenție! 

Pentru întrebări și/sau consultanță tehnică vă stau la dispoziție pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro.

O zi plăcută tuturor !

De Florin Simedru

Autor

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *


Perioada de verificare reCAPTCHA a expirat. Vă rugăm să reîncărcați pagina.