Mundarija:

Happy Hack Light Switch: 3 qadam
Happy Hack Light Switch: 3 qadam

Video: Happy Hack Light Switch: 3 qadam

Video: Happy Hack Light Switch: 3 qadam
Video: no battery led light / free energy from speaker / science project 2024, Iyul
Anonim
Happy Hack Light Switch
Happy Hack Light Switch

Oxirgi 2 hafta davomida biz "Happy hacking" nomli maktab loyihasi ustida ishladik. Ushbu loyiha yordamida biz jamoat joylari uchun "Baxtli hack" ni yaratishga harakat qildik. Xo'sh, "baxtli hack" nima? Bizning holatimizda, umidsizlikka asoslanib, biror narsani ijobiy qilishimiz kerak edi. Ushbu loyiha uchun Arduino -dan foydalanish kerak edi. Biz qaror qildik "Baxtli hack" - bu yorug'lik tugmachasini masofadan aylantirish uchun o'rnatish.

1 -qadam: Materiallar:

1 marta Arduino Uno

1x non paneli

2x servo

1x infraqizil sensor

11x sim

1x infraqizil uzatuvchi (televizorni olib tashlash)

lenta

2 -qadam: Qanday ulanish kerak:

Non paneliga Arduino infraqizil qabul qilgichini qo'ying; qabul qiluvchining old tomoni sharning yon tomoni deb hisoblasak:

  • Eng chap "oyog'idan" bitta simni Arduino uno "6" portiga ulang.
  • O'rta "oyog'idan" bitta simni non panelidagi "-" qatoriga ulang.
  • Eng to'g'ri "oyog'idan" bitta simni non panelidagi "+" qatoriga ulang.

Simning non panelidagi "-" qatori va Arduino uno-dagi "er" porti o'rtasida ekanligiga ishonch hosil qiling va simning "+" qatori bilan Arduino unoidagi "5V" porti o'rtasida ekanligiga ishonch hosil qiling.

Endi ikkita servo ulang,

  • Har ikkalasi ham servo ustidagi eng quyuq simdan non taxtasidagi '-' qatoriga.
  • Ikkalasi ham servo ustidagi o'rta simdan non panelidagi "+" qatoriga.

Endi servolardan biri uchun qolgan servo simni Arduino uno portiga "9" ga ulang, qolgan servoni Arduino uno portiga "10" ga ulang.

3 -qadam: Kod:

#qo'shing //

#qo'shing //

#qo'shing //

IRrecv irrecv (6);

decode_results natijalari;

Servo xizmatlari 1;

Servo theServo2;

bool lightOn = noto'g'ri;

bool diskoteka = noto'g'ri;

bo'sh o'rnatish () {

theServo1.attach (10);

theServo2.attach (9);

pinMode (6, INPUT);

Serial.begin (9600);

irrecv.enableIRIn (); // Qabul qilgichni ishga tushiring

irrecv.blink13 (to'g'ri);

}

void loop () {

agar (irrecv.decode (& natijalar)) {

Serial.println (natijalar qiymati); // Siz har bir tugma uchun har xil natija olasiz. Shunday qilib, ketma -ket monitorda tugmalaringiz qanday ekanligini tekshiring.

if (results.value == 3772793023) {// Bu bizning kuch tugmasi natijasi (3772793023). Bu, ehtimol, masofadan boshqarish pultidan farq qiladi.

lightOn =! lightOn;

agar (lightOn) {

theServo1.write (65);

theServo2.write (15);

}

agar (! lightOn) {

theServo1.write (95);

theServo2.write (95);

}

kechikish (1000);

}

if (results.value == 3772839943) {// Bu bizning ma'lumot tugmasi natijasi (37728).

diskoteka =! diskoteka;

kechikish (1000);

}

Serial.println (natijalar qiymati);

irrecv.resume (); // Keyingi qiymatni oling

}

agar (diskoteka) {

lightOn =! lightOn;

agar (lightOn) {

theServo1.write (65);

theServo2.write (15);

}

agar (! lightOn) {

theServo1.write (95);

theServo2.write (90);

}

kechikish (2000);

}

}

Tavsiya: