Sisällysluettelo:
Video: Happy Hack -valokytkin: 3 vaihetta
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Viimeiset kaksi viikkoa olemme työskennelleet kouluprojektissa nimeltä "Hyvää hakkerointia". Tällä projektilla yritimme tehdä "onnellisen hakkerin" julkiselle tilalle. No, mikä on "onnellinen hakkerointi"? Meidän tapauksessamme meidän piti tehdä jotain positiivista turhautumisen perusteella. Tässä projektissa vaadittiin Arduinon käyttöä. "Happy hack", jonka päätimme tehdä, oli asennus valokytkimen kääntämiseksi etänä.
Vaihe 1: Materiaalit:
1x Arduino Uno
1x leipälauta
2x servo
1x infrapuna -anturi
11x johto
1x infrapunalähetin (television poisto)
nauha
Vaihe 2: Yhdistäminen:
Aseta Arduino -infrapunavastaanotin leipälautaan; olettaen, että vastaanottimen etupuoli on se puoli, jossa on pallo:
- Kytke yksi johto vasemmasta "jalasta" Arduinon uno -porttiin "6".
- Yhdistä yksi johto keskimmäisestä "jalasta" leipälaudan "-" riville.
- Yhdistä yksi johto oikeimmasta "jalasta" leipälaudan "+" -riville.
Varmista, että johto on leipälevyn "-" rivin ja Arduino uno -liittimen "maadoitusportin" välissä, ja varmista, että johto on leipälaudan "+" -rivin ja Arduino-unon "5 V" -portin välillä.
Yhdistä nyt 2 servoa,
- Molemmat langalla servon pimeimmästä langasta leipälevyn "-" riviin.
- Molemmat langalla servon keskimmäisestä langasta leipälaudan "+" -riville.
Nyt yhdelle servolle liitä jäljellä oleva servojohto Arduino uno -porttiin "9" ja toinen servo Arduino uno -porttiin "10".
Vaihe 3: Koodi:
#sisältää //
#sisältää //
#sisältää //
IRrecv irrecv (6);
decode_results tulokset;
Servo theServo1;
Servo theServo2;
bool lightOn = epätosi;
bool disco = epätosi;
void setup () {
theServo1.kiinnitys (10);
theServo2.attach (9);
pinMode (6, TULO);
Sarja.alku (9600);
irrecv.enableIRIn (); // Käynnistä vastaanotin
irrecv.blink13 (tosi);
}
void loop () {
if (irrecv.decode (& tulokset)) {
Sarja.println (tulokset.arvo); // Saat eri tuloksen jokaisesta painikkeesta. Tarkista siis sarjamonitorista, mikä on painikkeidesi arvo.
if (results.value == 3772793023) {// Tämä on virtapainikkeen tulos (3772793023). Tämä on luultavasti eri asia kaukosäätimen kanssa.
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
jos (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
viive (1000);
}
if (results.value == 3772839943) {// Tämä on tietopainikkeemme tulos (37728).
disko =! disko;
viive (1000);
}
Sarja.println (tulokset.arvo);
irrecv.resume (); // Vastaanota seuraava arvo
}
jos (disko) {
lightOn =! lightOn;
if (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
jos (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
viive (2000);
}
}