Përmbajtje:
Video: Happy Hack Light Switch: 3 Hapa
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Për 2 javët e fundit ne kemi punuar në një projekt shkollor të quajtur "Happy hacking". Me këtë projekt ne u përpoqëm të bënim një "Happy hack" për një hapësirë publike. Epo, çfarë është një "Happy hack"? Në rastin tonë ne kishim nevojë të bënim diçka pozitive bazuar në një zhgënjim. Përdorimi i Arduino ishte i nevojshëm për këtë projekt. "Hack i lumtur" që vendosëm të bënim ishte një instalim për të rrokullisur nga distanca ndërprerësin e dritës.
Hapi 1: Materialet:
1x Arduino Uno
1x Breadboard
2x servo
1x sensor infra të kuqe
Tel 11x
1x dërgues infra të kuqe (hiqni televizorin)
kasetë
Hapi 2: Si të lidheni:
Vendosni një marrës infra të kuqe Arduino në pjatën e bukës; duke supozuar se ana e përparme e marrësit është ana me sferën në të:
- Lidhni një tel nga ‘këmba’ më e majtë me portën uno Arduino ‘6’.
- Lidhni një tel nga 'këmba' e mesme në rreshtin '-' në tabelën e bukës.
- Lidhni një tel nga ‘këmba’ më e djathtë në rreshtin ‘+’ në tabelën e bukës.
Sigurohuni që një tel të jetë midis rreshtit "-" në pjatën e bukës dhe një porti "të bluar" në Arduino uno dhe sigurohuni që një tel të jetë midis rreshtit "+" në pjatën e bukës dhe portës "5V" në Arduino uno.
Tani lidhni 2 servos,
- Të dy me një tel nga tela më e errët në servo në rreshtin '-' në pjatën e bukës.
- Të dy me një tel nga tela e mesme në servo në rreshtin "+" në pjatën e bukës.
Tani, për njërën nga servot lidhni servo -telin e mbetur me portën Arduino uno '9' dhe lidhni servo -n tjetër me portën uno Arduino '10'.
Hapi 3: Kodi:
#përfshi //
#përfshi //
#përfshi //
IRrecv irrecv (6);
rezultatet e deshifrimit_rezultateve;
Servo theServo1;
Servo theServo2;
bool lightOn = false;
bool disco = false;
void setup () {
theServo1.tach (10);
theServo2.tach (9);
pinMode (6, INPUT);
Serial.filloj (9600);
irrecv.enableIRIn (); // Nisni marrësin
irrecv.blink13 (e vërtetë);
}
lak void () {
nëse (irreq.decode (& rezultatet)) {
Serial.println (rezultatet.vlera); // Ju merrni një rezultat të ndryshëm për çdo buton. Pra, kontrolloni në monitorin serik sa është vlera e butonave tuaj.
nëse (results.value == 3772793023) {// Ky është rezultati ynë i butonit të energjisë (3772793023). Kjo ndoshta është e ndryshme me telekomandën tuaj.
lightOn =! lightOn;
nëse (drita në) {
theServo1.shkruaj (65);
theServo2.shkruaj (15);
}
nëse (! lightOn) {
theServo1.shkruaj (95);
theServo2.shkruaj (95);
}
vonesa (1000);
}
nëse (results.value == 3772839943) {// Ky është rezultati i butonit tonë të informacionit (37728).
disko =! disko;
vonesa (1000);
}
Serial.println (rezultatet.vlera);
irrecv.resume (); // Merr vlerën tjetër
}
nëse (disko) {
lightOn =! lightOn;
nëse (drita në) {
theServo1.shkruaj (65);
theServo2.shkruaj (15);
}
nëse (! lightOn) {
theServo1.shkruaj (95);
theServo2.shkruaj (90);
}
vonesa (2000);
}
}