Daftar Isi:

Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor: 4 Langkah
Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor: 4 Langkah

Video: Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor: 4 Langkah

Video: Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor: 4 Langkah
Video: Cara membuat saklar lampu otomatis menggunakan sensor LDR - Light Dependent Resistor 2024, Juli
Anonim
Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor
Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor
Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor
Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor
Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor
Lampu LED Pencocokan Cahaya Arduino Nirkabel Menggunakan Fotoresistor

Instruksi ini merinci langkah-langkah yang diperlukan untuk membuat lampu LED sensor cahaya nirkabel dasar menggunakan Arduino Unos dan fotoresistor. Aplikasi yang mungkin untuk perangkat ini adalah menerangi ruangan yang tidak memiliki jendela dengan sinar matahari buatan, sesuai dengan kondisi pencahayaan aktual di luar secara real time. Mari kita mulai!

Daftar Pasokan:

Arduino Uno x2

NRF24L01 Transceiver nirkabel x2 (Opsional - ransel NRF24L01 x2)

Transistor Darlington TIP120

fotoresistor

5mm LED x3

Tekan tombol

resistor 100 ohm x3

resistor 10k ohm x3

Berbagai Kabel Jumper

Langkah 1: Menghubungkan Modul dan Sirkuit NRF24L01

Menghubungkan Modul dan Sirkuit NRF24L01
Menghubungkan Modul dan Sirkuit NRF24L01
Menghubungkan Modul dan Sirkuit NRF24L01
Menghubungkan Modul dan Sirkuit NRF24L01
Menghubungkan Modul dan Sirkuit NRF24L01
Menghubungkan Modul dan Sirkuit NRF24L01

Dalam proyek ini, satu Arduino akan bertindak sebagai pemancar, mengirimkan data tingkat cahaya dari fotoresistor ketika tombol ditekan. Arduino lain akan berfungsi sebagai penerima, mengambil data itu dan mengubahnya menjadi sinyal ke LED. Gambar pertama menunjukkan diagram pemancar, dan gambar kedua menunjukkan penerima.

Catatan: di foto proyek saya, Anda akan melihat transceiver NRF24L01 terpasang ke PCB lain. Ini adalah modul ransel untuk transceiver, yang berfungsi sebagai pengatur daya. Selain mempermudah pemasangan kabel, ransel ini mengatur input daya untuk NRF24L01, memungkinkan penggunaan catu daya 5V. Saya telah menghilangkan ransel ini dalam diagram saya demi kejelasan.

(Jika Anda memutuskan untuk menggunakan ransel, silakan merujuk ke tautan ini untuk diagram lokasi pin yang mengacu pada stok NRF24L01).

Terlampir di bawah ini adalah salinan PDF dari sirkuit, untuk memperbesar/melihat detail dengan lebih mudah.

Langkah 2: Mengkodekan Pemancar

Langkah terakhir adalah pengkodean. Anda harus menginstal perpustakaan RadioHead atau perpustakaan yang setara untuk digunakan dengan modul NRF24L01.

Untuk proyek ini, Arduinos pemancar dan penerima menggunakan kode yang berbeda pada masing-masing. Berikut adalah kode untuk pemancar:

Saya juga telah melampirkan file.ino (NRF_Send) untuk kenyamanan.

#termasuk

#termasuk

RH_NRF24 nrf24; //Menginisialisasi transceiver sebagai nrf24

tombol int = 5; //Mengatur nilai pin untuk tombol dan photoresistor

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

batalkan pengaturan()

{ Serial.begin(9600); pinMode(tombol, INPUT); pinMode(pResistor, INPUT); if (!nrf24.init()) //Memberitahu pengguna jika inisialisasi modul gagal Serial.println("init failed"); // Default setelah init adalah 2,402 GHz (saluran 2), 2Mbps, 0dBm if (!nrf24.setChannel(1)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF gagal"); }

lingkaran kosong()

{ if (digitalRead(button))) { //Kirim pesan jika tombol ditekan value = analogRead(pResistor); //Baca nilai fotoresistor (0-1023) uint8_t data = {nilai}; //Menyetel larik yang disebut "data" yang berisi nilai cahaya nrf24.send(data, sizeof(data)); //Kirim array ke penerima nrf24.waitPacketSent(); //Tunggu sampai paket terkirim Serial.println("Nilai Cahaya: " +String(nilai)); //Mencetak nilai cahaya ke dalam serial monitor } }

Langkah 3: Mengkode Penerima

Untuk penerima, kode juga menggunakan Perpustakaan RadioHead.

#termasuk

#termasuk

RH_NRF24 nrf24;

int LEDPin = 3;

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

batalkan pengaturan()

{ Serial.begin(9600); pinMode(LEDPin, OUTPUT); if (!nrf24.init()) Serial.println("init gagal"); // Default setelah init adalah 2,402 GHz (saluran 2), 2Mbps, 0dBm if (!nrf24.setChannel(1)) Serial.println("setChannel failed"); if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF gagal"); }

lingkaran kosong()

{ // Tunggu pesan uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN]; //Menyimpan pesan yang diterima sebagai array yang disebut "buf" uint8_t len = sizeof(buf); //Menyimpan ukuran buf sebagai "len" while (nrf24.waitAvailableTimeout(200) && nrf24.recv(buf, &len)) //Menerima pesan selama 200 milidetik atau sampai seluruh pesan diterima { value = buf[0]; //Menetapkan nilai ke indeks pertama buf, yang merupakan int dari fotoresistor analogWrite(LEDPin, map(value, 0, 1023, 0, 255)); //Menyetel pin PWM untuk mengeluarkan nilai skala antara 0-255 untuk kecerahan LED Serial.println(String(value)); } analogWrite(LEDPin, 0); }

Langkah 4: SELESAI

Nikmati bermain-main dengan tingkat cahaya yang berbeda dan menonton LED mencocokkannya! Fotoresistor kadang-kadang bisa rewel, dan bekerja paling baik di ruangan gelap dengan sumber cahaya lokal (tetapi dapat bekerja di luar dengan matahari juga).

Direkomendasikan: