Talaan ng mga Nilalaman:
- Hakbang 1: Pag-kable ng mga Module at Circuit ng NRF24L01
- Hakbang 2: Pag-coding sa Transmitter
- Hakbang 3: Pag-coding ng Tumatanggap
- Hakbang 4: TAPOS
Video: Wireless Arduino Light-Matching LED Lamp Gamit ang Photoresistor: 4 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Itinuturo nito ang mga detalye ng mga hakbang na kinakailangan upang makabuo ng isang panimula ng wireless light-sensing LED lampara gamit ang Arduino Unos at isang photoresistor. Ang isang posibleng application para sa aparatong ito ay ang pag-iilaw ng isang silid na walang mga bintana na may artipisyal na sikat ng araw, na tumutugma sa aktwal na mga kundisyon ng pag-iilaw sa labas ng real time. Magsimula na tayo!
Listahan ng Supply:
Arduino Uno x2
NRF24L01 Wireless transceiver x2 (Opsyonal - NRF24L01 backpack x2)
TIP120 darlington transistor
Photoresistor
5mm LEDs x3
Pushbutton
100 ohm risistor x3
10k ohm risistor x3
Iba't ibang Mga Jumper Wires
Hakbang 1: Pag-kable ng mga Module at Circuit ng NRF24L01
Sa proyektong ito, ang isang Arduino ay kikilos bilang isang transmiter, na magpapadala ng data ng antas ng ilaw mula sa photoresistor kapag pinindot ang pushbutton. Ang iba pang Arduino ay magsisilbing isang tatanggap, kinukuha ang data na iyon at binabago ito sa signal sa mga LED. Ipinapakita ng unang imahe ang diagram ng transmiter, at ang pangalawa ay nagpapakita ng tatanggap.
Tandaan: sa mga larawan ng aking proyekto, mapapansin mo na ang mga NRF24L01 transceiver ay nakakabit sa isa pang PCB. Ito ay isang module ng backpack para sa mga transceiver, na gumaganap bilang isang power regulator. Bilang karagdagan sa ginagawang mas madali ang mga kable, ang mga backpacks na ito ang kumokontrol sa input ng kuryente para sa NRF24L01, na nagpapahintulot sa paggamit ng isang 5V power supply. Inalis ko ang mga backpacks na ito sa aking diagram para sa kapakanan ng kalinawan.
(Kung magpasya kang gamitin ang mga backpacks, mangyaring mag-refer sa link na ito para sa isang diagram ng mga lokasyon ng pin na tumutukoy sa stock NRF24L01).
Nakalakip sa ibaba ay isang kopya ng PDF ng circuit, para sa mas madaling pag-zoom / detalyadong pagtingin.
Hakbang 2: Pag-coding sa Transmitter
Ang huling hakbang ay ang pag-coding. Kakailanganin mong i-install ang RadioHead library o isang katumbas na silid-aklatan para magamit sa mga modyul na NRF24L01.
Para sa proyektong ito, ang transmitter at receiver na Arduinos ay gumagamit ng iba't ibang code sa bawat isa. Narito ang code para sa transmiter:
Nag-attach din ako ng.ino file (NRF_Send) para sa kaginhawaan.
# isama
# isama
RH_NRF24 nrf24; // Initializing a transceiver as nrf24
int button = 5; // Ang pagtatakda ng mga halaga ng pin para sa pindutan at photoresistor
int pResistor = A0; int halaga = 0; // Halaga ng ilaw mula 0-1023
walang bisa ang pag-setup ()
{Serial.begin (9600); pinMode (pindutan, INPUT); pinMode (pResistor, INPUT); kung (! nrf24.init ()) // Alerto ang gumagamit kung nabigo ang pagsisimula ng module na Serial.println ("nabigo ang init"); // Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); kung (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("Nabigo ang setRF"); }
walang bisa loop ()
{if (digitalRead (button)) {// Magpadala ng isang mensahe kung ang pindutan ay pinindot na halaga = analogRead (pResistor); // Basahin ang halaga ng photoresistor (0-1023) uint8_t data = {halaga}; // Nagtatakda ng isang array na tinatawag na "data " na naglalaman ng light halaga nrf24.send (data, sizeof (data)); // Ipadala ang array sa tumatanggap ng nrf24.waitPacketSent (); // Maghintay hanggang maipadala ang packet sa Serial.println ("Light Value:" + String (halaga)); // I-print ang magaan na halaga sa serial monitor}}
Hakbang 3: Pag-coding ng Tumatanggap
Para sa tatanggap, gumagamit din ang code ng RadioHead Library.
# isama
# isama
RH_NRF24 nrf24;
int LEDPin = 3;
int halaga = 0; // Halaga ng ilaw mula 0-1023
walang bisa ang pag-setup ()
{Serial.begin (9600); pinMode (LEDPin, OUTPUT); kung (! nrf24.init ()) Serial.println ("init failed"); // Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); kung (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("Nabigo ang setRF"); }
walang bisa loop ()
{// Maghintay para sa isang mensahe uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Itago ang natanggap na mensahe bilang isang array na tinatawag na "buf " uint8_t len = sizeof (buf); // Itago ang laki ng buf bilang "len" habang (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Natatanggap ang mensahe para sa 200 milliseconds o hanggang sa ang buong mensahe ay matanggap {value = buf [0]; // Nagtatakda ng halaga sa unang index ng buf , na kung saan ay ang int mula sa photoresistor analogWrite (LEDPin, mapa (halaga, 0, 1023, 0, 255)); // Itinatakda ang PWM pin upang maglabas ng isang naka-scale na halaga sa pagitan ng 0-255 para sa LED brightness Serial.println (String (halaga)); } analogWrite (LEDPin, 0); }
Hakbang 4: TAPOS
Masiyahan sa paglalaro sa paligid ng iba't ibang mga antas ng ilaw at panonood ng mga LED na tumutugma sa kanila! Ang photoresistor ay maaaring maging finicky minsan, at pinakamahusay na gumagana sa isang madilim na silid na may isang naisalokal na mapagkukunan ng ilaw (ngunit maaari ding gumana sa labas ng araw).
Inirerekumendang:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Wireless Arduino Robot Gamit ang HC12 Wireless Module: 7 Mga Hakbang
Wireless Arduino Robot Gamit ang HC12 Wireless Module: Hey guys, maligayang pagdating pabalik. Sa aking nakaraang post, ipinaliwanag ko kung ano ang isang H Bridge Circuit, L293D motor driver IC, piggybacking L293D Motor driver IC para sa pagmamaneho ng mataas na kasalukuyang mga driver ng motor at kung paano mo mai-disenyo at gumawa ng iyong sariling L293D motor Driver Board,
Wireless Remote Gamit ang 2.4Ghz NRF24L01 Module Sa Arduino - Nrf24l01 4 Channel / 6 Channel Transmitter Receiver para sa Quadcopter - Rc Helicopter - Rc Plane Gamit ang Arduino: 5 Hakbang (na may Mga Larawan)
Wireless Remote Gamit ang 2.4Ghz NRF24L01 Module Sa Arduino | Nrf24l01 4 Channel / 6 Channel Transmitter Receiver para sa Quadcopter | Rc Helicopter | Rc Plane Gamit ang Arduino: Upang mapatakbo ang isang Rc car | Quadcopter | Drone | RC eroplano | RC boat, palagi kaming nangangailangan ng isang reciever at transmitter, kumbaga para sa RC QUADCOPTER kailangan namin ng isang 6 channel transmitter at receiver at ang uri ng TX at RX ay masyadong magastos, kaya gagawa kami ng isa sa aming
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c