- Bahan Diperlukan
- Rajah Litar
- Kod dan Penjelasan
- Bagaimana Mengawal Intensiti Cahaya Secara Automatik:
"Jadilah percikan terang, matikan hingga gelap!" kadang-kadang kita lupa mematikan lampu dan membuang elektrik dan anda juga mesti melihat lampu jalan menyala pada waktu siang. Kami telah membina beberapa litar pada Dark detector di mana lampu mati secara automatik jika ia terang di luar dan menyala jika gelap di luar. Tetapi kali ini, di litar ini kita tidak hanya menghidupkan dan mematikan lampu berdasarkan keadaan cahaya tetapi juga mengubah intensiti cahaya mengikut keadaan cahaya luar. Di sini kami telah menggunakan konsep LDR dan PWM dengan Arduino untuk mengurangkan atau meningkatkan kecerahan LED Power 1 watt secara automatik.
Pada dasarnya, PWM merujuk kepada Pulse Width Modulation, isyarat output melalui pin PWM akan menjadi isyarat analog dan diperoleh sebagai isyarat digital dari Arduino. Ia menggunakan putaran tugas gelombang digital untuk menghasilkan nilai analog berurutan untuk isyarat. Dan, isyarat itu digunakan untuk mengawal kecerahan LED Daya.
Bahan Diperlukan
- Arduino UNO
- LDR
- Perintang (510, 100k ohm)
- Kapasitor (0.1uF)
- Transistor 2N2222
- LED Kuasa 1 watt
- Menyambung wayar
- Papan roti
Rajah Litar
Kod dan Penjelasan
Kod Arduino lengkap untuk dimmer LED Automatik diberikan pada akhir.
Dalam kod di bawah, kami menentukan pin PWM dan pemboleh ubah yang akan digunakan dalam kod tersebut.
int pwmPin = 2; // memberikan pin 12 kepada pemboleh ubah pwm int LDR = A0; // memberikan input analog A0 ke periuk berubah int c1 = 0; // menyatakan pemboleh ubah c1 int c2 = 0; // menyatakan pemboleh ubah c2
Sekarang, dalam lingkaran, pertama-tama kita membaca nilai menggunakan perintah "analogRead (LDR)" kemudian simpan input analog ke dalam pemboleh ubah bernama "nilai" . Dengan membuat beberapa pengiraan matematik, kita menghasilkan isyarat PWM. Di sini, kita mengawal intensiti cahaya menggunakan PWM hanya jika nilai analognya kurang dari 500, dan jika lebih dari 500 kita mematikan lampu sepenuhnya.
nilai int = analogRead (LDR); Serial.println (nilai); c1 = nilai; c2 = 500-c1; // tolak c2 dari 1000 ans menyimpan hasilnya dalam c1 jika (nilai <500) { digitalWrite (pwmPin, TINGGI); kelewatanMikrodetik (c2); digitalWrite (pwmPin, RENDAH); kelewatanMikrodetik (c1); } jika (nilai> 500) { digitalWrite (2, RENDAH); } }
Anda boleh mengetahui lebih lanjut mengenai PWM di Arduino dari sini.
Bagaimana Mengawal Intensiti Cahaya Secara Automatik:
Seperti rajah litar, kami telah membuat litar pembahagi voltan menggunakan perintang LDR dan 100k. Output pembahagi voltan dimasukkan ke pin analog Arduino. Pin analog merasakan voltan dan memberikan beberapa nilai analog kepada Arduino. Nilai analog berubah mengikut rintangan LDR. Jadi, jika gelap di atas LDR, rintangannya meningkat dan dengan itu nilai voltan (nilai analog) menurun. Oleh itu, nilai analog mengubah output PWM atau kitaran tugas, dan kitaran tugas lebih berkadar dengan intensiti cahaya LED kuasa. Jadi cahaya di atas LDR secara automatik akan mengawal intensiti Power LED. Di bawah ini adalah rajah aliran bagaimana ini berfungsi, tanda panah terbalik menunjukkan "meningkat" dan tanda panah bawah menunjukkan "menurun".
Intensiti cahaya (pada LDR) ↓ - Rintangan ↑ - Voltan pada pin analog ↓ - Duty cycle (PWM) ↑ - Brightness of Power LED ↑
Sekiranya bahagian luarnya terang sepenuhnya (apabila nilai analog meningkat lebih daripada 500) LED kuasa mati.
Ini adalah bagaimana anda dapat mengawal intensiti cahaya secara automatik menggunakan LDR.
Selanjutnya periksa semua litar berkaitan LDR kami di sini.