Video: Happy Hack Light Switch: 3 pași
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În ultimele 2 săptămâni am lucrat la un proiect școlar numit „Happy hacking”. Cu acest proiect am încercat să facem un „hack fericit” pentru un spațiu public. Ei bine, ce este un „hack fericit”? În cazul nostru, trebuia să facem ceva pozitiv pe baza unei frustrări. Pentru acest proiect a fost necesară utilizarea Arduino. „Hackul fericit” pe care am decis să îl facem a fost o instalare pentru a răsturna de la distanță comutatorul de lumină.
Pasul 1: Materiale:
1x Arduino Uno
1x placă de pâine
2x servo
1x senzor infraroșu
11x sârmă
1x expeditor cu infraroșu (eliminarea televizorului)
bandă
Pasul 2: Cum să vă conectați:
Introduceți un receptor infraroșu Arduino în panoul de control; presupunând că partea frontală a receptorului este partea cu sfera pe ea:
- Conectați un fir de la „piciorul” cel mai stâng la portul Arduino uno „6”.
- Conectați un fir de la „piciorul” mijlociu la rândul „-” din panou.
- Conectați un fir de la „piciorul” cel mai drept la rândul „+” din panou.
Asigurați-vă că un fir este între rândul ‘-’ din panou și un port ‘la sol’ de pe Arduino uno și asigurați-vă că un fir este între rândul ‘+’ din panou și portul ‘5V’ de pe Arduino uno.
Acum conectați cele 2 servouri,
- Ambele cu un fir de la cel mai întunecat fir de pe servo la rândul „-” de pe panou.
- Ambele cu un fir de la firul de mijloc de pe servo la rândul „+” de pe panou.
Acum, pentru unul dintre servo conectați firul servo rămas la portul Arduino uno ‘9’ și conectați celălalt servo la portul Arduino uno ‘10’.
Pasul 3: Cod:
#include //
#include //
#include //
IRrecv irrecv (6);
rezultate decode_results;
ServoServo1;
ServoServo2;
bool lightOn = false;
discoteca bool = fals;
configurare nulă () {
theServo1.attach (10);
theServo2.attach (9);
pinMode (6, INPUT);
Serial.begin (9600);
irrecv.enableIRIn (); // Porniți receptorul
irrecv.blink13 (adevărat);
}
bucla nulă () {
if (irrecv.decode (& rezultate)) {
Serial.println (results.value); // Obțineți un rezultat diferit pentru fiecare buton. Deci, verificați în monitorul serial care este valoarea butoanelor dvs.
if (results.value == 3772793023) {// Acesta este rezultatul butonului nostru de pornire (3772793023). Acest lucru este probabil diferit cu telecomanda dvs.
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
if (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
întârziere (1000);
}
if (results.value == 3772839943) {// Acesta este rezultatul butonului nostru de informații (37728).
disco =! disco;
întârziere (1000);
}
Serial.println (results.value);
irrecv.resume (); // Primiți următoarea valoare
}
dacă (discotecă) {
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
if (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
întârziere (2000);
}
}