INHOUDSOPGAWE:
Video: Happy Hack Light Switch: 3 stappe
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Ons werk die afgelope 2 weke aan 'n skoolprojek genaamd "Happy hacking". Met hierdie projek het ons probeer om 'n 'Happy hack' vir 'n openbare ruimte te maak. Wel, wat is 'n 'Happy hack'? In ons geval moes ons iets positiefs maak op grond van frustrasie. Die gebruik van Arduino was nodig vir hierdie projek. Die 'Happy hack' wat ons besluit het, was 'n installasie om die ligskakelaar op afstand te draai.
Stap 1: materiaal:
1x Arduino Uno
1x broodbord
2x servo
1x infrarooi sensor
11x draad
1x infrarooi sender (TV verwyder)
band
Stap 2: Hoe om aan te sluit:
Plaas 'n Arduino infrarooi ontvanger in die broodbord; as die voorkant van die ontvanger die kant is met die bol daarop:
- Koppel een draad van die linkerkantste been tot die Arduino uno -poort '6'.
- Verbind een draad van die middelste 'been' met die '-' ry in die broodbord.
- Koppel een draad van die regterste 'been' aan die '+' ry in die broodbord.
Maak seker dat daar 'n draad tussen die '-' ry in die broodbord en 'n 'grond' poort op die Arduino uno is en maak seker dat daar 'n draad tussen die '+' ry in die broodbord en die '5V' poort op die Arduino uno is.
Koppel nou die 2 servo's,
- Beide met 'n draad van die donkerste draad op die servo na die '-' ry op die broodbord.
- Beide met 'n draad van die middelste draad op die servo na die '+' ry op die broodbord.
Koppel die oorblywende servodraad vir een van die servo's aan die Arduino uno -poort '9' en koppel die ander servo aan die Arduino uno -poort '10'.
Stap 3: Kode:
#insluit //
#insluit //
#insluit //
IRrecv irrecv (6);
resultate van dekode_resultate;
Servo theServo1;
Servo theServo2;
bool lightOn = vals;
bool disco = vals;
ongeldige opstelling () {
theServo1.aanheg (10);
dieServo2.aanheg (9);
pinMode (6, INVOER);
Serial.begin (9600);
irrecv.enableIRIn (); // Begin die ontvanger
irrecv.blink13 (waar);
}
leemte -lus () {
if (irrecv.decode (& resultate)) {
Serial.println (resultate.waarde); // U kry 'n ander resultaat vir elke knoppie. Kyk dus na die seriële monitor wat die waarde van u knoppies is.
if (results.value == 3772793023) {// Dit is ons kragknoppie (3772793023). Dit is waarskynlik anders met u afstandsbediening.
lightOn =! lightOn;
as (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
as (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
vertraging (1000);
}
if (results.value == 3772839943) {// Dit is die resultaat van ons infoknoppie (37728).
disco =! disco;
vertraging (1000);
}
Serial.println (resultate.waarde);
irrecv.resume (); // Ontvang die volgende waarde
}
as (disko) {
lightOn =! lightOn;
as (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
as (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
vertraging (2000);
}
}