สารบัญ:
- ขั้นตอนที่ 1: การเดินสายไฟโมดูลและวงจร NRF24L01
- ขั้นตอนที่ 2: การเข้ารหัสเครื่องส่งสัญญาณ
- ขั้นตอนที่ 3: การเข้ารหัสตัวรับ
- ขั้นตอนที่ 4: เสร็จสิ้น
วีดีโอ: หลอดไฟ LED จับคู่แสง Arduino ไร้สายโดยใช้โฟโตรีซีสเตอร์: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
คำแนะนำนี้มีรายละเอียดขั้นตอนที่จำเป็นในการสร้างหลอดไฟ LED ตรวจจับแสงแบบไร้สายเบื้องต้นโดยใช้ Arduino Unos และโฟโตรีซีสเตอร์ แอปพลิเคชันที่เป็นไปได้สำหรับอุปกรณ์นี้คือการให้แสงสว่างในห้องที่ไม่มีหน้าต่างที่มีแสงแดดเทียม เข้ากับสภาพแสงจริงภายนอกแบบเรียลไทม์ มาเริ่มกันเลย!
รายการซัพพลาย:
Arduino Uno x2
NRF24L01 ตัวรับส่งสัญญาณไร้สาย x2 (อุปกรณ์เสริม - กระเป๋าเป้ NRF24L01 x2)
TIP120 ดาร์ลิงตันทรานซิสเตอร์
โฟโตรีซีสเตอร์
ไฟ LED 5 มม. x3
ปุ่มกด
ตัวต้านทาน 100 โอห์ม x3
ตัวต้านทาน 10k โอห์ม x3
สายจัมเปอร์ต่างๆ
ขั้นตอนที่ 1: การเดินสายไฟโมดูลและวงจร NRF24L01
ในโครงการนี้ Arduino หนึ่งตัวจะทำหน้าที่เป็นตัวส่งสัญญาณ ส่งข้อมูลระดับแสงจากโฟโตรีซีสเตอร์เมื่อกดปุ่ม Arduino อีกตัวจะทำหน้าที่เป็นตัวรับ นำข้อมูลนั้นไปแปลงเป็นสัญญาณเป็น LED ภาพแรกแสดงไดอะแกรมเครื่องส่ง และภาพที่สองแสดงเครื่องรับ
หมายเหตุ: ในภาพถ่ายของโครงการของฉัน คุณจะสังเกตเห็นว่าตัวรับส่งสัญญาณ NRF24L01 ติดอยู่กับ PCB อื่น นี่คือโมดูลกระเป๋าเป้สะพายหลังสำหรับตัวรับส่งสัญญาณซึ่งทำหน้าที่เป็นตัวควบคุมพลังงาน นอกจากจะทำให้การเดินสายไฟง่ายขึ้นแล้ว กระเป๋าเป้เหล่านี้ยังควบคุมการจ่ายไฟเข้าสำหรับ NRF24L01 ซึ่งช่วยให้สามารถใช้แหล่งจ่ายไฟ 5V ได้ ฉันได้ละเว้นเป้เหล่านี้ในไดอะแกรมของฉันเพื่อความชัดเจน
(หากคุณตัดสินใจใช้เป้สะพายหลัง โปรดดูที่ลิงก์นี้เพื่อดูแผนผังตำแหน่งหมุดอ้างอิงจากสต็อก NRF24L01)
แนบด้านล่างเป็นสำเนา PDF ของวงจร เพื่อการซูม/ดูรายละเอียดที่ง่ายขึ้น
ขั้นตอนที่ 2: การเข้ารหัสเครื่องส่งสัญญาณ
ขั้นตอนสุดท้ายคือการเข้ารหัส คุณจะต้องติดตั้งไลบรารี RadioHead หรือไลบรารีที่เทียบเท่าเพื่อใช้กับโมดูล NRF24L01
สำหรับโครงการนี้ Arduinos ตัวส่งและตัวรับใช้รหัสต่างกันในแต่ละอัน นี่คือรหัสสำหรับเครื่องส่งสัญญาณ:
ฉันได้แนบไฟล์.ino (NRF_Send) เพื่อความสะดวก
#รวม
#รวม
RH_NRF24 nrf24; // กำลังเริ่มต้นตัวรับส่งสัญญาณเป็น nrf24
ปุ่ม int = 5; //การตั้งค่าพินสำหรับปุ่มและโฟโตรีซีสเตอร์
ตัวต้านทาน int = A0; ค่า int = 0; //ค่าแสงตั้งแต่ 0-1023
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); pinMode(ปุ่ม, INPUT); pinMode(ตัวต้านทาน, INPUT); if (!nrf24.init()) //เตือนผู้ใช้ว่าการเริ่มต้นโมดูลล้มเหลว Serial.println("init failed"); // ค่าเริ่มต้นหลังจากเริ่มต้นคือ 2.402 GHz (ช่อง 2), 2Mbps, 0dBm ถ้า (!nrf24.setChannel(1)) Serial.println ("setChannel ล้มเหลว"); ถ้า (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF ล้มเหลว"); }
วงเป็นโมฆะ ()
{ if (digitalRead (button)) {// ส่งข้อความหากกดปุ่ม value = analogRead (pResistor); //อ่านค่าของโฟโตรีซีสเตอร์ (0-1023) uint8_t data = {value}; //ตั้งค่าอาร์เรย์ที่เรียกว่า "data" ที่มีค่าแสง nrf24.send(data, sizeof(data)); //ส่งอาร์เรย์ไปยังผู้รับ nrf24.waitPacketSent(); //รอจนกว่าแพ็กเก็ตจะถูกส่ง Serial.println("Light Value:" +String(value)); //พิมพ์ค่าแสงลงในจอภาพอนุกรม } }
ขั้นตอนที่ 3: การเข้ารหัสตัวรับ
สำหรับผู้รับ รหัสยังใช้ RadioHead Library
#รวม
#รวม
RH_NRF24 nrf24;
int LEDPin = 3;
ค่า int = 0; //ค่าแสงตั้งแต่ 0-1023
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); โหมดพิน (LEDPin, เอาต์พุต); ถ้า (!nrf24.init()) Serial.println("init ล้มเหลว"); // ค่าเริ่มต้นหลังจากเริ่มต้นคือ 2.402 GHz (ช่อง 2), 2Mbps, 0dBm ถ้า (!nrf24.setChannel(1)) Serial.println ("setChannel ล้มเหลว"); ถ้า (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF ล้มเหลว"); }
วงเป็นโมฆะ ()
{ // รอข้อความ uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; //เก็บข้อความที่ได้รับเป็นอาร์เรย์ที่เรียกว่า "buf" uint8_t len = sizeof(buf); //เก็บขนาดของ buf เป็น "len" ในขณะที่ (nrf24.waitAvailableTimeout(200) && nrf24.recv(buf, &len)) //รับข้อความเป็นเวลา 200 มิลลิวินาทีหรือจนกว่าข้อความทั้งหมดจะได้รับ { value = buf[0]; //ตั้งค่าเป็นดัชนีแรกของ buf ซึ่งเป็นค่า int จาก photoresistor analogWrite(LEDPin, map(value, 0, 1023, 0, 255)); //ตั้งค่าพิน PWM เพื่อส่งออกค่ามาตราส่วนระหว่าง 0-255 สำหรับความสว่าง LED Serial.println(String(value)); } analogWrite (LEDPin, 0); }
ขั้นตอนที่ 4: เสร็จสิ้น
สนุกกับการเล่นกับระดับแสงต่างๆ และดูไฟ LED ที่ตรงกัน! โฟโตรีซีสเตอร์อาจมีความละเอียดในบางครั้ง และทำงานได้ดีที่สุดในห้องมืดที่มีแหล่งกำเนิดแสงเฉพาะที่ (แต่สามารถทำงานได้ภายใต้แสงแดดด้วย)
แนะนำ:
หลอดไฟ LED DIY WiFi RGB: 6 ขั้นตอน (พร้อมรูปภาพ)
หลอดไฟ LED DIY WiFi RGB: ในโครงการนี้ ฉันจะแสดงให้คุณเห็นว่าฉันสร้างแหล่งกระแสคงที่สามช่องสัญญาณและรวมเข้ากับ ESP8266µC และ LED พลังงานสูง RGB 10W เพื่อสร้างหลอดไฟที่ควบคุมด้วย WiFi ได้อย่างไร ระหว่างทาง ผมจะสาธิตวิธีการเ
หลอดไฟ LED DJI Flamewheel: 5 ขั้นตอน
DJI Flamewheel LED Lamp: โปรเจ็กต์นี้เป็นงานสำหรับไฟปลายปีกสำหรับ DJI Flamewheel ใช้วัสดุ: PCB's 1 pcs LED 13 pcs (3mm TH) Resistor (แพ็คเกจ 0603) 13 pcs คุณสามารถใช้สิ่งต่อไปนี้สำหรับ
หลอดไฟ LED อัจฉริยะที่ควบคุมด้วยสมาร์ทโฟน Bluetooth: 7 ขั้นตอน
หลอดไฟ LED อัจฉริยะที่ควบคุมด้วยสมาร์ทโฟน Bluetooth: ฉันใฝ่ฝันที่จะควบคุมอุปกรณ์ให้แสงสว่างอยู่เสมอ จากนั้นมีคนทำโคมไฟ LED สีสันสดใสอย่างไม่น่าเชื่อ ฉันเพิ่งเจอหลอดไฟ LED โดย Joseph Casha บน Youtube เมื่อได้รับแรงบันดาลใจจากสิ่งนี้ ฉันจึงตัดสินใจเพิ่มฟังก์ชันหลายๆ อย่างโดยที่ยังคงคอน
ดึงไฟ LED ออก: หลอดไฟ LED ที่เติมด้วยแก้ว: 7 ขั้นตอน (พร้อมรูปภาพ)
นำ LED ออก: หลอดไฟ LED ที่เติมด้วยแก้ว: ฉันสร้างหลอดไฟ LED ที่เต็มไปด้วยแก้วที่ยอดเยี่ยมนี้ได้อย่างไร โครงการนี้เกี่ยวข้องกับการจัดการกระจกแตก ฉันไม่รับผิดชอบต่อวิธีที่คุณใช้ข้อมูลนี้ ฉันขอแนะนำอย่างยิ่งให้คุณอย่าพยายามทำโครงการนี้ หากคุณทำ ฉันไม่รับผิดชอบต่อสิ่งใดๆ
หลอดไฟ LED RGB Arduino + จอ LCD 4 บิต: 4 ขั้นตอน
Arduino RGB LED Lamp + จอแสดงผล LCD 4 บิต: นี่เป็นคำสั่งแรกของฉัน !!! เย้..ก่อนไปต่อ ฉันไม่ได้ลงรายละเอียดวิธีการตัดไม้หรือชิ้นส่วนทุกอย่างเข้าด้วยกัน ฉันออกแบบกระบวนการสร้างทั้งหมดให้เป็นอิสระ ไม่ว่าอะไรก็ตามที่อยู่ในความคิดของฉันก็คือสิ่งที่ฉันทำซ้ำ ประเด็นของการสอนนี้