สารบัญ:

Arduino Nano ไฟ LED RGB แบบควบคุมด้วย IR แบบนาโน: 5 ขั้นตอน
Arduino Nano ไฟ LED RGB แบบควบคุมด้วย IR แบบนาโน: 5 ขั้นตอน

วีดีโอ: Arduino Nano ไฟ LED RGB แบบควบคุมด้วย IR แบบนาโน: 5 ขั้นตอน

วีดีโอ: Arduino Nano ไฟ LED RGB แบบควบคุมด้วย IR แบบนาโน: 5 ขั้นตอน
วีดีโอ: [ ARDUINO NANO ] IR Sensor + Servo Motor + LED " DIY Project " 2024, กรกฎาคม
Anonim
Arduino Nano ควบคุมด้วย IR RGB LED
Arduino Nano ควบคุมด้วย IR RGB LED

ในโครงการขนาดเล็กนี้ ฉันต้องการแสดงให้คุณเห็นว่าฉันสร้าง LED RGB แบบ Arduino ที่ควบคุมโดยรีโมท IR และขับเคลื่อนด้วยสาย USB ได้อย่างไร

เสบียง

1. RGB LED

2. ตัวรับสัญญาณ IR

3. สาย USB

4. Arduino nano

5. IR รีโมท

6. สายบางๆ

7. ตัวต้านทาน 50-100 โอห์ม (กำลังใช้ตัวต้านทาน 47 โอห์มแต่ไม่ต่างกันมาก)

ขั้นตอนที่ 1: เลือกรีโมทของคุณ

เลือกรีโมทของคุณ
เลือกรีโมทของคุณ

ดังนั้นการใช้รีโมตตัวใดจึงเป็นการตัดสินใจของคุณ แต่รีโมตของคุณควรมี 6 ปุ่มที่คุณต้องการใช้ 2 ในนั้นสำหรับสีแดง 2 ในนั้นสำหรับสีเขียวและ 2 สำหรับสีน้ำเงิน

ขั้นตอนที่ 2: สร้างมันบน Bread Board ก่อน (ไม่จำเป็น แต่แนะนำ)

สร้างบนกระดานขนมปังก่อน (ไม่จำเป็น แต่แนะนำ)
สร้างบนกระดานขนมปังก่อน (ไม่จำเป็น แต่แนะนำ)
สร้างบนกระดานขนมปังก่อน (ไม่จำเป็น แต่แนะนำ)
สร้างบนกระดานขนมปังก่อน (ไม่จำเป็น แต่แนะนำ)

ตอนนี้สร้างวงจรบนเขียงหั่นขนม

การเชื่อมต่อ:

RGB LED GND > Arduino นาโน GND

RGB LED สีแดง > Arduino nano Digital pin 5

RGB LED สีเขียว > Arduino nano Digital pin 6

RGB LED สีน้ำเงิน > Arduino nano Digital pin 9

USB GND > Arduino นาโน GND

USB 5v > Arduino nano 5v

ตัวรับสัญญาณ IR ขา 1 > Arduino nano Digital pin 4

ขารับสัญญาณ IR 2 > Arduino nano GND

ตัวรับสัญญาณ IR ขา 3 > Arduino nano 5v

(การเชื่อมต่อทั้งหมดแสดงไว้ด้านบน)

(พินแต่ละสีของ RGB LED เชื่อมต่อแบบอนุกรมกับตัวต้านทาน)

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

รหัสมีดังต่อไปนี้:

นี่คือห้องสมุดที่ฉันใช้

#รวม

int IR_Recv = 4; // ขารับสัญญาณ IR

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // ขาสีแดง int G = 6; // พินสีเขียว int B = 9; // หมุดสีน้ำเงิน #define Rup1 1976685926 // ทำให้สีแดงสว่างขึ้น #define Rup2 3772818013 // ทำให้สีแดงสว่างขึ้น #define Rdown1 3843765582 // ทำให้ความสว่างสีแดงลดลง #define Rdown2 3772813933 // ทำให้ความสว่างสีแดงลดลง #define Gup1 3772797613 // ทำให้สีเขียวสว่างขึ้น #define Gup2 3774104872 // ทำให้สีเขียวสว่างขึ้น #define Gdown1 3772834333 // ทำให้สีเขียวสว่างลง #define Gdown2 1784778242 // ทำให้สีเขียวสว่างลง #define Bup1 3980777284 // ทำให้เป็นสีน้ำเงิน ความสว่างเพิ่มขึ้น #define Bup2 3772781293 // ทำให้สีน้ำเงินสว่างขึ้น #define Bdown1 3772801693 // ทำให้ความสว่างของสีน้ำเงินลดลง #define Bdown2 3361986248 // ทำให้สีน้ำเงินสว่างลง // หมายเหตุ: คุณควรเปลี่ยนหมายเลขในรีโมตของคุณ!!! ! //ฉันมี 2 คีย์ที่ซ้ำกัน เช่น Rup1 และ Rup2 เพราะ //รีโมทของฉันส่งออกตัวเลข 2 ตัวเมื่อคุณกดปุ่มเดียว // ในกรณีของคุณ คุณอาจใส่ตัวเลขเดียวกันใน Rup1 และ Rup2, Gup1 และ Gup2 เป็นต้น //เมื่อคุณกดปุ่ม ตัวเลขควรปรากฏใน Serial monitor //นั่นคือสิ่งที่คุณควรพิมพ์ในส่วน "#define" IRrecv irrecv(IR_Recv); ผลลัพธ์ decode_results; การตั้งค่าเป็นโมฆะ(){ TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); TCCR2B = _BV(CS22); irrecv.enableIRIn(); โหมดพิน (R, เอาต์พุต); โหมดพิน (G, เอาต์พุต); โหมดพิน (B, เอาต์พุต); Serial.begin(9600); } void loop(){ if (irrecv.decode(&results)){ ยาว int decCode = results.value; สวิตช์ (results.value) { ////////// กรณีสีแดง Rup1: Rval = Rval + 10; หยุดพัก; กรณี Rup2: Rval = Rval + 10; หยุดพัก; กรณี Rdown1: Rval = Rval - 10; หยุดพัก; กรณี Rdown2: Rval = Rval - 10; หยุดพัก; ///////////กรณีสีเขียว Gup1: Gval = Gval + 10; หยุดพัก; กรณี Gup2: Gval = Gval + 10; หยุดพัก; กรณี Gdown1: Gval = Gval - 10; หยุดพัก; กรณี Gdown2: Gval = Gval - 10; หยุดพัก; ////////////เคสสีน้ำเงิน Bup1: Bval = Bval + 10; หยุดพัก; กรณี Bup2: Bval = Bval + 10; หยุดพัก; กรณี Bdown1: Bval = Bval - 10; หยุดพัก; กรณี Bdown2: Bval = Bval - 10; หยุดพัก; /////////////////////////////////////// } irrecv.resume(); } ถ้า (Rval > 255) (Rval = 255); ถ้า (Rval 255) (Gval = 255); ถ้า (Gval 255) (Bval = 255); ถ้า (Bval < 0) (Bval = 0); analogWrite(R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println(ผลลัพธ์.ค่า); ดีเลย์ไมโครวินาที(1); }

ขั้นตอนที่ 4: เสร็จสิ้น

จบ
จบ
จบ
จบ
จบ
จบ

ฉันสวรรค์ทำเคสได้ดี ทั้งหมดที่ฉันทำก็แค่ติดเทปไว้ แต่ฉันพยายามทำให้มันเล็กที่สุด

หากคุณมีคำถามหรือข้อผิดพลาดใด ๆ โปรดบอกฉัน ฉันจะพยายามอย่างเต็มที่เพื่อช่วยคุณแก้ไขข้อผิดพลาด ขอบคุณที่อ่าน.

แนะนำ: