สารบัญ:

Happy Hack Light Switch: 3 ขั้นตอน
Happy Hack Light Switch: 3 ขั้นตอน

วีดีโอ: Happy Hack Light Switch: 3 ขั้นตอน

วีดีโอ: Happy Hack Light Switch: 3 ขั้นตอน
วีดีโอ: 😨ЧТО?! МАКВИН в Кар Паркинг?! #carparkingmultiplayer #карпаркинг #карпаркингмультиплееробнова 2024, กรกฎาคม
Anonim
Happy Hack Light Switch
Happy Hack Light Switch

ในช่วง 2 สัปดาห์ที่ผ่านมา เราได้ทำงานในโครงการของโรงเรียนที่ชื่อว่า "Happy hacking" ด้วยโปรเจ็กต์นี้ เราพยายามสร้าง "แฮ็กแห่งความสุข" สำหรับพื้นที่สาธารณะ "แฮ็คแฮ็ปปี้" คืออะไร? ในกรณีของเรา เราจำเป็นต้องสร้างสิ่งที่เป็นบวกโดยอิงจากความคับข้องใจ จำเป็นต้องใช้ Arduino สำหรับโครงการนี้ "แฮ็กแฮ็ก" ที่เราตัดสินใจทำคือการติดตั้งเพื่อพลิกสวิตช์ไฟจากระยะไกล

ขั้นตอนที่ 1: วัสดุ:

1x Arduino Uno

1x เขียงหั่นขนม

เซอร์โว 2x

1x เซ็นเซอร์อินฟราเรด

สาย 11x

1x ผู้ส่งอินฟราเรด (ลบทีวี)

เทป

ขั้นตอนที่ 2: วิธีเชื่อมต่อ:

ใส่เครื่องรับอินฟราเรด Arduino ลงในเขียงหั่นขนม สมมติว่าด้านหน้าของเครื่องรับเป็นด้านที่มีทรงกลมอยู่:

  • ต่อสายหนึ่งเส้นจาก 'ขา' ซ้ายสุดกับพอร์ต Arduino uno '6'
  • ต่อสายหนึ่งเส้นจาก 'ขา' ตรงกลางกับแถว '-' ในเขียงหั่นขนม
  • ต่อสายหนึ่งเส้นจาก 'ขา' ขวาสุดไปยังแถว '+' ในเขียงหั่นขนม

ตรวจสอบให้แน่ใจว่าสายไฟอยู่ระหว่างแถว '-' ในเขียงหั่นขนมและพอร์ต 'กราวด์' บน Arduino uno และตรวจสอบให้แน่ใจว่าสายไฟอยู่ระหว่างแถว '+' ในเขียงหั่นขนมและพอร์ต '5V' บน Arduino uno

ตอนนี้เชื่อมต่อ 2 เซอร์โว

  • ทั้งสองมีลวดจากลวดที่มืดที่สุดบนเซอร์โวไปยังแถว '-' บนเขียงหั่นขนม
  • ทั้งสองมีลวดจากสายกลางบนเซอร์โวไปยังแถว '+' บนเขียงหั่นขนม

ตอนนี้สำหรับเซอร์โวตัวใดตัวหนึ่งให้เชื่อมต่อสายเซอร์โวที่เหลือกับพอร์ต Arduino uno '9' และเชื่อมต่อเซอร์โวตัวอื่นกับพอร์ต Arduino uno '10'

ขั้นตอนที่ 3: รหัส:

#รวม //

#รวม //

#รวม //

irrecv irrecv(6);

ผลลัพธ์ decode_results;

เซอร์โว theServo1;

เซอร์โว theServo2;

bool lightOn = เท็จ;

บูลดิสโก้ = เท็จ;

การตั้งค่าเป็นโมฆะ (){

theServo1.attach(10);

theServo2.attach(9);

โหมดพิน (6, อินพุต);

Serial.begin(9600);

irrecv.enableIRIn(); // เริ่มเครื่องรับ

irrecv.blink13(จริง);

}

วงเป็นโมฆะ (){

ถ้า (irrecv.decode (&ผลลัพธ์)) {

Serial.println(ผลลัพธ์.ค่า); // คุณได้รับผลลัพธ์ที่แตกต่างกันสำหรับทุกปุ่ม ดังนั้นตรวจสอบในมอนิเตอร์แบบอนุกรมว่าค่าปุ่มของคุณคืออะไร

if (results.value == 3772793023){ // นี่คือผลลัพธ์ของปุ่มเปิด/ปิดของเรา (3772793023) นี่อาจแตกต่างกับรีโมตของคุณ

lightOn = !lightOn;

ถ้า (เปิดไฟ){

theServo1.write(65);

theServo2.write(15);

}

ถ้า (!lightOn){

theServo1.write(95);

theServo2.write(95);

}

ล่าช้า (1000);

}

if (results.value == 3772839943){ // นี่คือผลลัพธ์ปุ่มข้อมูลของเรา (37728)

ดิสโก้ = !ดิสโก้;

ล่าช้า (1000);

}

Serial.println(ผลลัพธ์.ค่า);

irrecv.resume(); // รับค่าต่อไป

}

ถ้า (ดิสโก้) {

lightOn = !lightOn;

ถ้า (เปิดไฟ){

theServo1.write(65);

theServo2.write(15);

}

ถ้า (!lightOn){

theServo1.write(95);

theServo2.write(90);

}

ล่าช้า (2000);

}

}

แนะนำ: