Alarmă cu laser

10.01.2026

Fotorezistorii sunt componente simple, dar extrem de eficiente, capabile să transforme variațiile de lumină în semnale electrice, fiind ideali pentru proiecte de securitate precum o alarmă cu laser. Este un prooiect foarte simplu de realizat, și nu este costisitor. 

Componente necesare:

  • Arduino Nano (sau orice microcontroller compatibil)

  • Breadboard

  • Modul fotorezistor (LDR) sau fotorezistor simplu

  • Rezistor de 10 kΩ (necesar dacă nu se folosește modul LDR)

  • Modul laser (5V)

  • Buzzer activ

  • LED verde

  • LED roșu

  • 2 rezistențe de 220 Ω – 330 Ω

  • Fire jumper (male–male)

Conexiuni:

  • Fotorezistor (modul LDR)

    • VCC → 5V (Arduino Nano)

    • GND → GND

    • OUT → A0

    Dacă se folosește fotorezistor simplu:

    • Un pin → 5V

    • Celălalt pin → A0

    • Rezistor de 10 kΩ între A0 și GND

  • Laser

      • → 5V

    • − → GND

  • Buzzer activ

      • → D8

    • − → GND

  • LED verde

    • Anod (+) → D6

    • Catod (−) → rezistor 220 Ω → GND

  • LED roșu

    • Anod (+) → D7

    • Catod (−) → rezistor 220 Ω → GND

    Cod:

    const int ldrPin = A0;

    const int buzzerPin = 8;

    const int ledVerde = 6;

    const int ledRosu = 7;

    int prag = 100; // între 30 și 200

    bool alarma = false;

    unsigned long startAlarma = 0;

    unsigned long ultimulBip = 0;

    bool stareBip = false;

    void setup() {

    pinMode(buzzerPin, OUTPUT);

    pinMode(ledVerde, OUTPUT);

    pinMode(ledRosu, OUTPUT);

    digitalWrite(buzzerPin, LOW);

    digitalWrite(ledVerde, HIGH); // verde aprins inițial

    digitalWrite(ledRosu, LOW);

    Serial.begin(9600);

    }

    void loop() {

    int valoare = analogRead(ldrPin);

    Serial.println(valoare);

    unsigned long acum = millis();

    // declanșare alarmă

    if (valoare > prag && !alarma) {

    alarma = true;

    startAlarma = acum;

    ultimulBip = acum;

    stareBip = false;

    }

    if (alarma) {

    // bip-bip-bip

    if (acum - ultimulBip >= 300) {

    stareBip = !stareBip;

    digitalWrite(buzzerPin, stareBip);

    ultimulBip = acum;

    }

    // LED-uri pentru alarmă

    digitalWrite(ledRosu, HIGH);

    digitalWrite(ledVerde, LOW);

    // oprire alarmă după 5 secunde

    if (acum - startAlarma >= 5000) {

    alarma = false;

    digitalWrite(buzzerPin, LOW);

    digitalWrite(ledRosu, LOW);

    digitalWrite(ledVerde, HIGH);

    }

    }

    else {

    // stare normală (laser prezent)

    digitalWrite(buzzerPin, LOW);

    digitalWrite(ledVerde, HIGH);

    digitalWrite(ledRosu, LOW);

    }

    }