Talaan ng mga Nilalaman:
Video: Happy Hack Light Switch: 3 Mga Hakbang
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Sa huling 2 linggo nagtrabaho kami sa isang proyekto sa paaralan na tinatawag na "Maligayang pag-hack". Sa proyektong ito sinubukan naming gumawa ng isang "Maligayang pag-hack" para sa isang pampublikong puwang. Kaya, ano ang isang "Maligayang pag-hack"? Sa aming kaso kailangan namin upang gumawa ng isang bagay na positibo batay sa isang pagkabigo. Ang paggamit ng Arduino ay kinakailangan para sa proyektong ito. Ang "Maligayang pag-hack" na nagpasya kaming gawin ay isang pag-install upang malayuan na i-flip ang ilaw switch.
Hakbang 1: Mga Kagamitan:
1x Arduino Uno
1x Breadboard
2x servo
1x infrared sensor
11x wire
1x na nagpadala ng infrared (alisin sa tv)
tape
Hakbang 2: Paano Kumonekta:
Maglagay ng isang Arduino infrared receiver sa breadboard; Ipagpalagay na ang harap na bahagi ng tatanggap ay ang gilid na may sphere dito:
- Ikonekta ang isang kawad mula sa pinaka kaliwang 'binti' patungo sa Arduino uno port na '6'.
- Ikonekta ang isang kawad mula sa gitnang 'binti' sa hilera na '-' sa breadboard.
- Ikonekta ang isang kawad mula sa pinaka kanang ‘binti’ patungo sa row na ‘+’ sa breadboard.
Tiyaking ang isang kawad ay nasa pagitan ng row na ‘-’ sa breadboard at isang port na ‘ground’ sa Arduino uno at tiyaking ang isang kawad ay nasa pagitan ng row na ‘+’ sa breadboard at ang port na ‘5V’ sa Arduino uno.
Ikonekta ngayon ang 2 servo,
- Parehong may kawad mula sa pinakamadilim na kawad sa servo hanggang sa row na ‘-’ sa breadboard.
- Parehong may kawad mula sa gitnang wire sa servo hanggang sa row na ‘+’ sa breadboard.
Ngayon, para sa isa sa mga servos ikonekta ang natitirang wire ng servo sa Arduino uno port na '9' at ikonekta ang iba pang servo sa Arduino uno port na '10'.
Hakbang 3: Code:
# isama //
# isama //
# isama //
IRrecv irrecv (6);
mga resulta sa pag-decode_resulta;
Servo theServo1;
Servo theServo2;
bool lightOn = false;
bool disco = false;
walang bisa ang pag-setup () {
theServo1.attach (10);
theServo2.attach (9);
pinMode (6, INPUT);
Serial.begin (9600);
irrecv.enableIRIn (); // Simulan ang tatanggap
irrecv.blink13 (totoo);
}
void loop () {
kung (irrecv.decode (& mga resulta)) {
Serial.println (resulta.value); // Nakakakuha ka ng ibang resulta para sa bawat pindutan. Kaya suriin sa serial monitor kung ano ang halaga ng iyong mga pindutan.
kung (results.value == 3772793023) {// Ito ang aming resulta ng power button (3772793023). Marahil ay naiiba ito sa iyong remote.
lightOn =! lightOn;
kung (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
kung (! lightOn) {
theServo1.write (95);
theServo2.write (95);
}
pagkaantala (1000);
}
kung (results.value == 3772839943) {// Ito ang resulta ng aming pindutan ng impormasyon (37728).
disco =! disco;
pagkaantala (1000);
}
Serial.println (resulta.value);
irrecv.resume (); // Tanggapin ang susunod na halaga
}
kung (disco) {
lightOn =! lightOn;
kung (lightOn) {
theServo1.write (65);
theServo2.write (15);
}
kung (! lightOn) {
theServo1.write (95);
theServo2.write (90);
}
pagkaantala (2000);
}
}