Isi kandungan:

Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Fotoresistor: 4 Langkah
Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Fotoresistor: 4 Langkah

Video: Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Fotoresistor: 4 Langkah

Video: Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Fotoresistor: 4 Langkah
Video: LDR Project | How To Make Simple Automatic Night Led #ldr 2024, Julai
Anonim
Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Photoresistor
Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Photoresistor
Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Photoresistor
Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Photoresistor
Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Photoresistor
Lampu LED Pencocokan Cahaya Arduino Tanpa Wayar Menggunakan Photoresistor

Perkara ini dapat diperincikan mengenai langkah-langkah yang diperlukan untuk membina lampu LED penderia cahaya tanpa wayar menggunakan Arduino Unos dan photoresistor. Kemungkinan aplikasi untuk peranti ini adalah menerangi ruangan yang tidak memiliki tingkap dengan sinar matahari buatan, sesuai dengan kondisi pencahayaan yang sebenarnya di luar dalam waktu nyata. Mari kita mulakan!

Senarai Bekalan:

Arduino Uno x2

NRF24L01 Transceiver tanpa wayar x2 (Pilihan - beg galas NRF24L01 x2)

Transistor darlington TIP120

Fotoresistor

LED 5mm x3

Tekan butang

Perintang 100 ohm x3

Perintang 10k ohm x3

Pelbagai Wayar Jumper

Langkah 1: Pendawaian Modul dan Litar NRF24L01

Pendawaian Modul dan Litar NRF24L01
Pendawaian Modul dan Litar NRF24L01
Pendawaian Modul dan Litar NRF24L01
Pendawaian Modul dan Litar NRF24L01
Pendawaian Modul dan Litar NRF24L01
Pendawaian Modul dan Litar NRF24L01

Dalam projek ini, satu Arduino akan bertindak sebagai pemancar, menghantar data tahap cahaya dari photoresistor ketika butang tekan ditekan. Arduino yang lain akan berfungsi sebagai penerima, mengambil data tersebut dan mengubahnya menjadi isyarat kepada LED. Gambar pertama menunjukkan gambarajah pemancar, dan yang kedua menunjukkan penerima.

Catatan: dalam foto projek saya, anda akan melihat pemancar NRF24L01 dilampirkan ke PCB lain. Ini adalah modul ransel untuk transceiver, yang berfungsi sebagai pengatur kuasa. Selain membuat pendawaian lebih mudah, ransel ini mengatur input daya untuk NRF24L01, yang memungkinkan penggunaan catu daya 5V. Saya telah menghilangkan beg galas ini dalam rajah saya demi kejelasan.

(Sekiranya anda memutuskan untuk menggunakan ransel, rujuk pautan ini untuk gambarajah lokasi pin dengan merujuk kepada stok NRF24L01).

Lampirkan di bawah ini adalah salinan PDF dari litar, untuk melihat zoom / tontonan yang lebih terperinci.

Langkah 2: Mengekod Pemancar

Langkah terakhir adalah pengekodan. Anda perlu memasang perpustakaan RadioHead atau pustaka yang setara untuk digunakan dengan modul NRF24L01.

Untuk projek ini, Arduino pemancar dan penerima masing-masing menggunakan kod yang berbeza. Berikut adalah kod untuk pemancar:

Saya juga telah melampirkan fail.ino (NRF_Send) untuk kemudahan.

#sertakan

#sertakan

RH_NRF24 nrf24; // Memulakan transceiver sebagai nrf24

butang int = 5; // Menetapkan nilai pin untuk butang dan fotoresistor

int pResistor = A0; nilai int = 0; // Nilai cahaya dari 0-1023

persediaan tidak sah ()

{Serial.begin (9600); pinMode (butang, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Memberi amaran kepada pengguna sekiranya permulaan modul gagal Serial.println ("init gagal"); // Lalai selepas init ialah 2.402 GHz (saluran 2), 2Mbps, 0dBm jika (! Nrf24.setChannel (1)) Serial.println ("setChannel gagal"); jika (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF gagal"); }

gelung kosong ()

{if (digitalRead (butang)) {// Hantar mesej jika butang ditekan nilai = analogRead (pResistor); // Baca nilai photoresistor (0-1023) data uint8_t = {value}; // Menetapkan array yang disebut "data " yang mengandungi nilai cahaya nrf24.send (data, sizeof (data)); // Hantar array ke penerima nrf24.waitPacketSent (); // Tunggu sehingga paket dihantar Serial.println ("Nilai Ringan:" + String (nilai)); // Cetak nilai cahaya ke monitor bersiri}}

Langkah 3: Mengekod Penerima

Untuk penerima, kodnya juga menggunakan RadioHead Library.

#sertakan

#sertakan

RH_NRF24 nrf24;

int LEDPin = 3;

nilai int = 0; // Nilai cahaya dari 0-1023

persediaan tidak sah ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); jika (! nrf24.init ()) Serial.println ("init gagal"); // Lalai selepas init adalah 2.402 GHz (saluran 2), 2Mbps, 0dBm jika (! Nrf24.setChannel (1)) Serial.println ("setChannel gagal"); jika (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF gagal"); }

gelung kosong ()

{// Tunggu mesej uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Simpan mesej yang diterima sebagai larik yang disebut "buf " uint8_t len = sizeof (buf); // Simpan saiz buf sebagai "len" sementara (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Menerima mesej selama 200 milisaat atau sehingga keseluruhan mesej diterima {value = buf [0]; // Menetapkan nilai ke indeks pertama buf , yang merupakan int dari photoresistor analogWrite (LEDPin, peta (nilai, 0, 1023, 0, 255)); // Menetapkan pin PWM untuk menghasilkan nilai skala antara 0-255 untuk Serial.println kecerahan LED (String (nilai)); } analogWrite (LEDPin, 0); }

Langkah 4: SELESAI

Nikmati bermain-main dengan tahap cahaya yang berbeza dan menonton LED memadankannya! Fotoresistor kadang-kadang boleh berubah-ubah, dan berfungsi paling baik di dalam bilik gelap dengan sumber cahaya setempat (tetapi juga boleh berfungsi di luar dengan cahaya matahari).

Disyorkan: