Mündəricat:

Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası: 4 addım
Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası: 4 addım

Video: Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası: 4 addım

Video: Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası: 4 addım
Video: Penerapan IoT dalam Penggunaan Fotoresistor dan LED 2024, Noyabr
Anonim
Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası
Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası
Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası
Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası
Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası
Fotoresistordan istifadə edən Simsiz Arduino İşıq Uyğun LED Lampası

Bu təlimat, Arduino Unos və bir fotorezistordan istifadə edərək sadə bir simsiz işıq algılayıcı LED lampa qurmaq üçün lazım olan addımları ətraflı izah edir. Bu cihaz üçün mümkün olan bir tətbiq, süni günəş işığı olan pəncərələri olmayan bir otağın işıqlandırılmasıdır, bu da xaricdəki həqiqi işıqlandırma şərtlərinə uyğun gəlir. Gəlin başlayaq!

Təchizat siyahısı:

Arduino Uno x2

NRF24L01 Simsiz qəbuledici x2 (İsteğe bağlı - NRF24L01 sırt çantası x2)

TIP120 darlington tranzistoru

Fotoresistor

5 mm LED x3

Düymə

100 ohm müqavimət x3

10k ohm müqavimət x3

Müxtəlif keçid telləri

Addım 1: NRF24L01 Modullarının və Dövrünün Kabellənməsi

NRF24L01 Modullarının və Dövrünün Kablolanması
NRF24L01 Modullarının və Dövrünün Kablolanması
NRF24L01 Modullarının və Dövrünün Kabellənməsi
NRF24L01 Modullarının və Dövrünün Kabellənməsi
NRF24L01 Modullarının və Dövrünün Kablolanması
NRF24L01 Modullarının və Dövrünün Kablolanması

Bu layihədə, bir Arduino, düyməyə basıldığında fotorezistordan işıq səviyyəsi məlumatları göndərən bir ötürücü rolunu oynayacaq. Digər Arduino, bu məlumatları alaraq LED -lərə siqnala çevirən bir alıcı kimi xidmət edəcək. Birinci şəkil verici diaqramını, ikincisi isə alıcını göstərir.

Qeyd: layihəmin fotoşəkillərində NRF24L01 ötürücülərinin başqa bir PCB -yə qoşulduğunu görəcəksiniz. Bu, güc tənzimləyicisi kimi fəaliyyət göstərən ötürücülər üçün bir sırt çantası moduludur. Kablolama işini asanlaşdırmaqla yanaşı, bu sırt çantaları 5V enerji təchizatı istifadəsinə imkan verən NRF24L01 üçün enerji girişini tənzimləyir. Aydın olmaq üçün diaqramımda bu sırt çantalarını buraxmışam.

(Sırt çantalarından istifadə etmək qərarına gəlsəniz, stok NRF24L01 -ə istinadən pin yerlərinin diaqramı üçün bu linkə baxın).

Daha yaxınlaşdırma/ətraflı izləmə üçün sxemin bir PDF nüsxəsi aşağıda əlavə edilmişdir.

Addım 2: Vericinin kodlaşdırılması

Son addım kodlaşdırmaqdır. NRF24L01 modulları ilə istifadə etmək üçün RadioHead kitabxanasını və ya ona bərabər bir kitabxana qurmalısınız.

Bu layihə üçün ötürücü və alıcı Arduinos hər birində fərqli kod istifadə edir. Vericinin kodu budur:

Rahatlıq üçün.ino faylını da (NRF_Send) əlavə etmişəm.

#daxil edin

#daxil edin

RH_NRF24 nrf24; // Nrf24 olaraq qəbuledicinin işə salınması

int düyməsi = 5; // Düymə və fotorezistor üçün pin dəyərlərinin təyin edilməsi

int pResistor = A0; int dəyəri = 0; // İşığın dəyəri 0-1023

boş quraşdırma ()

{Serial.begin (9600); pinMode (düymə, GİRİŞ); pinMode (pResistor, GİRİŞ); if (! nrf24.init ()) // Modulun işə salınması Serial.println uğursuz olarsa istifadəçini xəbərdar edir ("init uğursuz oldu"); // Varsayılanlardan sonra init 2.402 GHz (kanal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel fail"); əgər (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF uğursuz oldu"); }

boşluq döngəsi ()

{if (digitalRead (button)) {// Düyməyə basıldığı təqdirdə mesaj göndərin = analogRead (pResistor); // Fotorezistorun dəyərini oxuyun (0-1023) uint8_t data = {dəyər}; // nrf24.send (data, sizeof (data)) işıq dəyərini ehtiva edən "data " adlı bir sıra təyin edir; // Dizini nrf24.waitPacketSent () alıcıya göndərin; // Paketin göndərilməsini gözləyin Serial.println ("İşıq Dəyəri:" +String (dəyər)); // İşıq dəyərini seriyalı monitora yazdırın}}

Addım 3: Alıcının kodlaşdırılması

Alıcı üçün kod RadioHead Kitabxanasından da istifadə edir.

#daxil edin

#daxil edin

RH_NRF24 nrf24;

int LEDPin = 3;

int dəyəri = 0; // İşığın dəyəri 0-1023

boş quraşdırma ()

{Serial.begin (9600); pinMode (LEDPin, Çıxış); if (! nrf24.init ()) Serial.println ("init uğursuz oldu"); // Varsayılanlar, initdən sonra 2.402 GHz (kanal 2), 2Mbps, 0dBm əgər (! Nrf24.setChannel (1)) Serial.println ("setChannel uğursuz oldu"); əgər (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF uğursuz oldu"); }

boşluq döngəsi ()

{// bir mesaj gözləyin uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Alınan mesajı "buf " adlı bir sıra olaraq saxlayın uint8_t len = sizeof (buf); // buf ölçüsünü "len" olaraq saxlayın (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Mesajı 200 milisaniyə ərzində və ya bütün mesaj alınana qədər alır {value = buf [0]; // Photorezistor analogWrite (LEDPin, map (dəyər, 0, 1023, 0, 255)) olan int olan buf in ilk indeksinə dəyər təyin edir; // PWM pinini LED parlaqlığı Serial.println (String (dəyər)) üçün 0-255 arasında ölçülü bir dəyər çıxarmaq üçün təyin edir; } analogWrite (LEDPin, 0); }

Addım 4: BİTDİ

Fərqli işıq səviyyələri ilə oynamaqdan və LEDlərin onlara uyğun olmasını seyr etməkdən zövq alın! Fotorezistor bəzən çətin ola bilər və lokal işıq mənbəyi olan qaranlıq bir otaqda daha yaxşı işləyir (ancaq günəşlə birlikdə çöldə də işləyə bilər).

Tövsiyə: