- Material Diperlukan
- Diagram Sirkuit
- Kode dan Penjelasan
- Bagaimana Ini Mengontrol Intensitas Cahaya Secara Otomatis:
“Jadilah percikan terang, matikan sampai gelap!” terkadang kita lupa mematikan lampu dan membuang listrik dan anda pasti juga pernah melihat lampu jalan menyala di siang hari. Kami telah membangun beberapa sirkuit pada detektor Gelap di mana lampu mati secara otomatis jika di luar terang dan menyala jika di luar gelap. Namun kali ini, pada rangkaian ini kita tidak hanya sekedar menyalakan dan mematikan lampu berdasarkan kondisi cahaya tetapi juga memvariasikan intensitas cahaya sesuai dengan kondisi cahaya luar. Di sini kami telah menggunakan konsep LDR dan PWM dengan Arduino untuk mengurangi atau meningkatkan kecerahan LED Daya 1 watt secara otomatis.
Pada dasarnya PWM mengacu pada Pulse Width Modulation, sinyal keluaran melalui pin PWM akan menjadi sinyal analog dan diperoleh sebagai sinyal digital dari Arduino. Ini menggunakan siklus kerja gelombang digital untuk menghasilkan nilai analog sekuensial untuk sinyal. Dan, sinyal itu selanjutnya digunakan untuk mengontrol kecerahan LED Daya.
Material Diperlukan
- Arduino UNO
- LDR
- Resistor (510, 100k ohm)
- Kapasitor (0.1uF)
- Transistor 2N2222
- LED Daya 1 watt
- Menghubungkan kabel
- Papan tempat memotong roti
Diagram Sirkuit
Kode dan Penjelasan
Kode Arduino lengkap untuk peredup LED Otomatis diberikan di bagian akhir.
Pada kode di bawah ini, kami mendefinisikan pin PWM dan variabel yang akan digunakan dalam kode.
int pwmPin = 2; // memberikan pin 12 ke variabel pwm int LDR = A0; // memberikan input analog A0 ke variabel pot int c1 = 0; // mendeklarasikan variabel c1 int c2 = 0; // mendeklarasikan variabel c2
Sekarang, dalam loop, pertama kita membaca nilai menggunakan perintah “analogRead (LDR)” kemudian menyimpan input analog ke dalam variabel bernama “value” . Dengan melakukan beberapa perhitungan matematis kita menghasilkan sinyal PWM. Di sini, kami mengontrol intensitas cahaya menggunakan PWM hanya jika nilai analog kurang dari 500, dan jika lebih dari 500 kami mematikan lampu sepenuhnya.
nilai int = analogRead (LDR); Serial.println (nilai); c1 = nilai; c2 = 500-c1; // kurangi c2 dari 1000 ans simpan hasilnya di c1 if (value <500) { digitalWrite (pwmPin, HIGH); delayMicroseconds (c2); digitalWrite (pwmPin, LOW); delayMicroseconds (c1); } if (nilai> 500) { digitalWrite (2, LOW); } }
Anda dapat mempelajari lebih lanjut tentang PWM di Arduino dari sini.
Bagaimana Ini Mengontrol Intensitas Cahaya Secara Otomatis:
Sesuai diagram rangkaian, kami telah membuat rangkaian pembagi tegangan menggunakan resistor LDR dan 100k. Output pembagi tegangan diumpankan ke pin analog dari Arduino. Pin analog merasakan tegangan dan memberikan beberapa nilai analog ke Arduino. Nilai analog berubah sesuai dengan resistansi LDR. Jadi, jika gelap di atas LDR, resistansinya bertambah dan karenanya nilai tegangan (nilai analog) menurun. Oleh karena itu, nilai analog memvariasikan output PWM atau siklus kerja, dan siklus tugas selanjutnya sebanding dengan intensitas cahaya LED daya. Jadi cahaya di atas LDR secara otomatis akan mengontrol intensitas Power LED. Di bawah ini adalah diagram alir bagaimana ini akan bekerja, tanda panah atas menunjukkan "meningkat" dan tanda panah bawah menunjukkan "menurun".
Intensitas cahaya (pada LDR) ↓ - Resistensi ↑ - Tegangan pada pin analog ↓ - Siklus kerja (PWM) ↑ - Kecerahan LED Daya ↑
Jika luar terang penuh (ketika nilai analog meningkat lebih dari 500) LED daya mati.
Ini adalah bagaimana Anda dapat mengontrol intensitas cahaya secara otomatis menggunakan LDR.
Lebih lanjut periksa semua sirkuit terkait LDR kami di sini.