Innholdsfortegnelse:
Video: Happy Hack Light Switch: 3 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
De siste 2 ukene har vi jobbet med et skoleprosjekt kalt "Happy hacking". Med dette prosjektet prøvde vi å lage en "Happy hack" for et offentlig rom. Vel, hva er en "Happy hack"? I vårt tilfelle måtte vi lage noe positivt basert på en frustrasjon. Bruken av Arduino var nødvendig for dette prosjektet. "Happy hack" vi bestemte oss for å gjøre var en installasjon for å fjernbryte lysbryteren.
Trinn 1: Materialer:
1x Arduino Uno
1x brødbrett
2x servo
1x infrarød sensor
11x ledning
1x infrarød sender (fjerning av tv)
teip
Trinn 2: Slik kobler du til:
Sett en Arduino infrarød mottaker i brødbrettet; forutsatt at forsiden av mottakeren er siden med sfæren på den:
- Koble en ledning fra det mest venstre ‘beinet’ til Arduino uno -porten ‘6’.
- Koble den ene ledningen fra det midterste "beinet" til "-"-raden i brødbrettet.
- Koble en ledning fra det høyeste "beinet" til "+" - raden i brødbrettet.
Sørg for at en ledning er mellom ‘-’ raden i brødbrettet og en ‘bakken’ port på Arduino uno og sørg for at en ledning er mellom ‘+’ raden i brødbrettet og ‘5V’ porten på Arduino uno.
Koble nå til de 2 servoene,
- Begge med en ledning fra den mørkeste ledningen på servoen til ‘-’ raden på brødbrettet.
- Begge med en ledning fra den midterste ledningen på servoen til ‘+’ -raden på brødbrettet.
Nå, for en av servoene, koble den gjenværende servotråden til Arduino uno -porten '9' og koble den andre servoen til Arduino uno -porten '10'.
Trinn 3: Kode:
#include //
#include //
#include //
IRrecv irrecv (6);
resultater for dekoderesultater;
Servo theServo1;
Servo theServo2;
bool lightOn = false;
bool disco = false;
ugyldig oppsett () {
theServo1.attach (10);
theServo2.attach (9);
pinMode (6, INNGANG);
Serial.begin (9600);
irrecv.enableIRIn (); // Start mottakeren
irrecv.blink13 (true);
}
void loop () {
if (irrecv.decode (& resultater)) {
Serial.println (resultater.verdi); // Du får et annet resultat for hver knapp. Så sjekk i seriell skjerm hva knappene er.
if (results.value == 3772793023) {// Dette er resultatet for av / på -knappen (3772793023). Dette er sannsynligvis annerledes med fjernkontrollen.
lightOn =! lightOn;
hvis (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
hvis (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
forsinkelse (1000);
}
if (results.value == 3772839943) {// Dette er vårt infoknappresultat (37728).
diskotek =! diskotek;
forsinkelse (1000);
}
Serial.println (resultater.verdi);
irrecv.resume (); // Motta neste verdi
}
hvis (diskotek) {
lightOn =! lightOn;
hvis (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
hvis (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
forsinkelse (2000);
}
}