ชื่อโปรเจกต์: ควบคุม LED จาก NRF24L01
วิทยุระยะไกล: NRF24L01 แบบ Point-to-Point
Bluetooth นั้นยอดเยี่ยม แต่ระยะการใช้งานจำกัดอยู่ที่ 30 ฟุต ส่วน Wi-Fi ต้องใช้เราเตอร์ภายในที่ซับซ้อน แต่ NRF24L01 Transceiver กลับละทิ้งข้อจำกัดเหล่านั้นไปทั้งหมด มันคือชิปวิทยุ 2.4GHz แบบดิบๆ ที่ช่วยให้ Arduino สองตัวสามารถส่งสัญญาณดิจิทัล (เช่น รีโมทคอนโทรลทางกายภาพเปิด LED) ตรงหากันได้ในระยะไกลข้ามทุ่งข้าวโพดโล่งๆ เลยทีเดียว

ตรรกะแบบ Master / Slave (TX/RX)
คุณต้องสร้างวงจร Arduino สองชุดที่แยกจากกันโดยสิ้นเชิง
- ตัวส่ง (TX): ประกอบด้วย push button ที่ต่อเข้ากับ Pin 2
- ตัวรับ (RX): ประกอบด้วย LED ที่ต่อเข้ากับ Pin 3
- คุณต้องต่อสาย NRF24L01 chips เข้ากับ
SPIpins ของ Arduino อย่างเคร่งครัด (MISO: Pin 12, MOSI: Pin 11, SCK: Pin 13)
แอดเดรสของ Pipe
วิทยุจำเป็นต้องรู้ว่าจะฟังใคร มิฉะนั้นก็จะรับสัญญาณจาก Wi-Fi router ของเพื่อนบ้านคุณได้
- คุณกำหนดแอดเดรสวิทยุ 5-byte เฉพาะของคุณเอง:
const byte address[6] = "00001"; - Payload ของ TX: เมื่อคุณกดปุ่ม ตัวส่งจะแปลงการกระทำนั้นให้เป็น byte payload:
char msg[1] = {'1'}; - ตัวส่งจะเปิด radio pipe และส่ง packet ออกไปในอากาศอย่างรวดเร็ว:
radio.write(&msg, sizeof(msg)); - การดักจับของ RX: ตัวรับจะคอยฟังความโกลาหลของ 2.4GHz อยู่ตลอดเวลา มันจะรับฟังแอดเดรส
"00001"ดักจับ payload และประมวลผล C++:if (msg[0] == '1') { digitalWrite(LED_PIN, HIGH); }
ปัญหาฮาร์ดแวร์ Critical Decoupling
NRF24L01 ขึ้นชื่อเรื่องการใช้งานไม่ได้ตั้งแต่แกะกล่อง
- วิกฤตพลังงาน 3.3V: ชิป NRF ต้องการไฟ 3.3V พอดีเป๊ะ แต่เมื่อมันส่งสัญญาณ มันจะดึงกระแสไฟเพิ่มขึ้นอย่างมหาศาล ซึ่ง Pin 3.3V ขนาดเล็กของ Arduino มักจะจ่ายไฟไม่เพียงพอ ทำให้วิทยุรีเซ็ตตัวเอง!
- วิธีแก้ไข: คุณต้องบัดกรี Electrolytic Capacitor ขนาด 10uF ถึง 100uF คร่อมระหว่าง Pin 3.3V และ GND ของ NRF สิ่งนี้ทำหน้าที่เหมือนแบตเตอรี่ขนาดเล็กที่จ่ายพลังงานฉุกเฉินเข้าสู่ชิปในขณะที่มันส่งสัญญาณ เพื่อป้องกันไม่ให้แรงดันไฟตก!
รายการตรวจสอบอุปกรณ์วิทยุ
- Arduino Uno/Nano boards สองตัว
- NRF24L01+ Transceiver Modules สองตัว
- 10uF Capacitors สองตัว (จำเป็นอย่างยิ่งสำหรับการทำงานที่เสถียร)
- Push buttons, LEDs และสายไฟ breadboard มาตรฐาน