Video: Happy Hack Stikalo za luč: 3 koraki
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Zadnja 2 tedna smo delali na šolskem projektu, imenovanem "Happy hacking". S tem projektom smo poskušali narediti "Happy hack" za javni prostor. No, kaj je "Happy hack"? V našem primeru smo morali narediti nekaj pozitivnega na podlagi frustracije. Za ta projekt je bila potrebna uporaba Arduina. "Happy hack", za katerega smo se odločili, je bila namestitev daljinskega obračanja stikala za luč.
1. korak: Materiali:
1x Arduino Uno
1x deska
2x servo
1x infrardeči senzor
11x žica
1x infrardeči pošiljatelj (odstranite televizor)
trak
2. korak: Kako se povezati:
Infrardeči sprejemnik Arduino vstavite v ploščo; ob predpostavki, da je sprednja stran sprejemnika stran s kroglo na njem:
- Priključite eno žico z najbolj leve "noge" na vrata Arduino uno "6".
- Priključite eno žico iz srednje 'noge' v vrstico '-' na plošči.
- Priključite eno žico iz najbolj desne "noge" v vrstico "+" na plošči.
Prepričajte se, da je žica med vrstico "-" na plošči in "ozemljitvenim" vhodom na Arduino uno in se prepričajte, da je žica med vrstico "+" na plošči in vhodom "5V" na Arduino uno.
Zdaj priključite 2 servomotorja,
- Oboje z žico od najtemnejše žice na servo do vrstice '-' na plošči.
- Oba z žico od srednje žice na servo servo do vrstice '+' na plošči.
Zdaj za enega od servomotorjev priključite preostalo servo žico na vrata Arduino uno '9', drugi servo pa priključite na vrata Arduino uno '10'.
3. korak: Koda:
#vključi //
#vključi //
#vključi //
IRrecv unrecv (6);
decode_results rezultati;
Servo theServo1;
ServoServo2;
bool lightOn = false;
bool disco = false;
void setup () {
theServo1.attach (10);
priključek Servo2. (9);
pinMode (6, VHOD);
Serial.begin (9600);
unrecv.enableIRIn (); // Zaženite sprejemnik
unrecv.blink13 (res);
}
void loop () {
if (unrecv.decode (& rezultati)) {
Serial.println (results.value); // Za vsak gumb dobite drugačen rezultat. Zato v serijskem monitorju preverite, kakšna je vrednost vaših gumbov.
if (results.value == 3772793023) {// To je rezultat gumba za vklop (3772793023). Verjetno je z vašim daljincem drugače.
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
if (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
zamuda (1000);
}
if (results.value == 3772839943) {// To je rezultat našega gumba z informacijami (37728).
disco =! disco;
zamuda (1000);
}
Serial.println (results.value);
unrecv.resume (); // Prejemamo naslednjo vrednost
}
if (disko) {
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
if (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
zamuda (2000);
}
}