กลับไปหน้ารวมไฟล์
controls-a-led-from-nrf24l01-1425f6.md

ชื่อโปรเจกต์: ควบคุม LED จาก NRF24L01

วิทยุระยะไกล: NRF24L01 แบบ Point-to-Point

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

bluetooth_hc05_wiring_macro_1772682001936.png

ตรรกะแบบ Master / Slave (TX/RX)

คุณต้องสร้างวงจร Arduino สองชุดที่แยกจากกันโดยสิ้นเชิง

  1. ตัวส่ง (TX): ประกอบด้วย push button ที่ต่อเข้ากับ Pin 2
  2. ตัวรับ (RX): ประกอบด้วย LED ที่ต่อเข้ากับ Pin 3
  3. คุณต้องต่อสาย NRF24L01 chips เข้ากับ SPI pins ของ 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 มาตรฐาน

ข้อมูล Frontmatter ดั้งเดิม

title: "Controls a LED from NRF24L01"
description: "Radio telemetry basics! Master the intricate SPI protocol and 2.4GHz physical radio frequency to wirelessly blast digital byte payloads across a football field from one Arduino securely to another."
category: "Wireless & IoT"
difficulty: "Intermediate"