Alarmă cu laser
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);
}
}
