Dalam proyek ini kita akan menghubungkan LDR dengan mikrokontroler ATMEGA8, dan dengan ini kita dapat mengukur INTENSITAS CAHAYA di area tersebut. Di ATMEGA8, kita akan menggunakan fitur 10bit ADC (Analog to Digital Conversion) untuk mengukur intensitas cahaya.
Am LDR adalah transduser yang mengubah resistansinya saat LAMPU jatuh pada permukaannya yang berubah. Sensor LDR tersedia dalam berbagai ukuran dan bentuk.
LDR dibuat dari bahan semikonduktor untuk memungkinkan LDR memiliki sifat peka cahaya. Jenis bahan yang digunakan banyak sekali, namun salah satu yang populer adalah CADMIUM SULPHIDE (CdS). Ini LDR atau FOTO REISTORS bekerja pada prinsip “Foto Konduktivitas”. Sekarang apa yang prinsip ini katakan adalah setiap kali cahaya jatuh ke permukaan LDR (dalam hal ini) konduktansi elemen meningkat atau dengan kata lain hambatan LDR berkurang ketika cahaya jatuh ke permukaan LDR. Properti penurunan resistansi untuk LDR ini dicapai karena ini adalah properti material semikonduktor yang digunakan di permukaan. LDR sering digunakan untuk mendeteksi keberadaan cahaya atau untuk mengukur intensitas cahaya.
Ada berbagai jenis LDR seperti yang ditunjukkan pada gambar di atas dan masing-masing memiliki spesifikasi yang berbeda. Biasanya sebuah LDR akan memiliki 1MΩ-2MΩ pada kegelapan total, 10-20KΩ pada 10 LUX, 2-5KΩ pada 100 LUX. Resistensi tipikal terhadap grafik LUX dari sebuah LDR ditunjukkan pada gambar.
Seperti yang ditunjukkan pada gambar di atas, resistansi antara dua kontak sensor menurun dengan intensitas cahaya atau konduktansi antara dua kontak sensor meningkat.
Sekarang untuk mengubah perubahan resistansi ini menjadi perubahan tegangan, kita akan menggunakan rangkaian pembagi tegangan. Dalam jaringan resistif ini kami memiliki satu resistansi konstan dan resistansi variabel lainnya. Seperti yang ditunjukkan pada gambar, R1 di sini adalah resistansi konstan dan R2 adalah sensor FORCE yang bertindak sebagai resistansi.
Titik tengah cabang digunakan untuk pengukuran. Ketika resistansi R2 berubah, Vout berubah secara linier. Jadi dengan ini kami memiliki tegangan yang berubah dengan berat.
Sekarang hal penting untuk dicatat di sini adalah, input yang diambil oleh pengontrol untuk konversi ADC serendah 50µAmp. Efek pembebanan pembagi tegangan berbasis resistansi ini penting karena arus yang ditarik dari Vout pembagi tegangan meningkatkan persentase kesalahan yang meningkat, untuk saat ini kita tidak perlu khawatir tentang efek pembebanan.
Apa yang akan kita lakukan di sini adalah kita akan mengambil dua resistor dan membentuk rangkaian pembagi sehingga untuk Vin 25Volts, kita mendapatkan Vout 5Volt. Jadi yang harus kita lakukan adalah mengalikan nilai Vout dengan "5" dalam program untuk mendapatkan tegangan input yang sebenarnya.
Komponen
Perangkat Keras: ATMEGA8, power supply (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), kapasitor 100uF, kapasitor 100nF (5 buah), resistor 10KΩ, LDR (Light Dependent Resistor).
Perangkat lunak : Atmel studio 6.1, progisp atau flash magic.
Diagram Sirkuit & Penjelasan Kerja
Pada rangkaian PORTD ATMEGA8 terhubung ke port data LCD. Pada LCD 16 * 2 ada 16 pin seluruhnya jika ada lampu belakang, jika tidak ada lampu belakang akan ada 14 pin. Satu dapat memberi daya atau meninggalkan pin lampu belakang. Sekarang di 14 pin ada 8 data pin (7-14 atau D0-D7), 2 pin power supply (1 & 2 atau VSS & Vdd atau gnd & + 5V), 3 rd pin untuk kontrol kontras (VEE-kontrol seberapa tebal karakter harus ditampilkan) dan 3 pin kontrol (RS & RW & E)
Di sirkuit, Anda dapat mengamati bahwa saya hanya mengambil dua pin kontrol. Bit kontras dan BACA / TULIS tidak sering digunakan sehingga dapat disingkat menjadi ground. Ini menempatkan LCD dalam kontras tertinggi dan mode baca. Kita hanya perlu mengontrol pin ENABLE dan RS untuk mengirim karakter dan data yang sesuai.
The koneksi untuk LCD diberikan di bawah ini:
PIN1 atau VSS ------------------ ground
PIN2 atau VDD atau VCC ------------ + daya 5v
PIN3 atau VEE --------------- ground (memberikan kontras maksimum terbaik untuk pemula)
PIN4 atau RS (Daftar Pilihan) --------------- PB0 dari UC
PIN5 atau RW (Baca / Tulis) ----------------- ground (menempatkan LCD dalam mode baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Aktif) ------------------- PB1 dari UC
PIN7 atau D0 ----------------------------- PD0 dari UC
PIN8 atau D1 ----------------------------- PD1 dari UC
PIN9 atau D2 ----------------------------- PD2 dari UC
PIN10 atau D3 ----------------------------- PD3 dari UC
PIN11 atau D4 ----------------------------- PD4 dari UC
PIN12 atau D5 ----------------------------- PD5 dari UC
PIN13 atau D6 ----------------------------- PD6 dari UC
PIN14 atau D7 ----------------------------- PD7 dari UC
Pada rangkaian terlihat bahwa kita telah menggunakan komunikasi 8bit (D0-D7) namun hal ini tidak wajib, kita dapat menggunakan komunikasi 4bit (D4-D7) tetapi dengan program komunikasi 4 bit menjadi agak rumit. Jadi dari pengamatan dari tabel diatas kita menghubungkan 10 pin LCD ke controller dimana 8 pin adalah pin data dan 2 pin untuk kontrol.
Tegangan pada R2 tidak sepenuhnya linier; itu akan menjadi yang berisik. Untuk menyaring kapasitor noise ditempatkan di setiap resistor di rangkaian pembagi seperti yang ditunjukkan pada gambar.
Di ATMEGA8, kita dapat memberikan input Analog ke salah satu dari EMPAT saluran PORTC, tidak masalah saluran mana yang kita pilih karena semuanya sama. Kami akan memilih saluran 0 atau PIN0 dari PORTC. Di ATMEGA8, ADC memiliki resolusi 10 bit, sehingga pengontrol dapat mendeteksi perubahan minimum Vref / 2 ^ 10, jadi jika tegangan referensi 5V kita mendapatkan kenaikan keluaran digital untuk setiap 5/2 ^ 10 = 5mV. Jadi untuk setiap kenaikan 5mV dalam input, kami akan memiliki kenaikan satu pada output digital.
Sekarang kita perlu mengatur register ADC berdasarkan ketentuan berikut:
1. Pertama-tama kita perlu mengaktifkan fitur ADC di ADC.
2. Disini akan didapat tegangan input maksimum untuk konversi ADC + 5V. Jadi kita dapat mengatur nilai maksimum atau referensi ADC ke 5V.
3. Kontroler memiliki fitur konversi pemicu yang berarti konversi ADC terjadi hanya setelah pemicu eksternal, karena kita tidak ingin perlu menyetel register untuk ADC agar berjalan dalam mode berjalan bebas berkelanjutan.
4. Untuk ADC apa pun, frekuensi konversi (Nilai analog ke nilai Digital) dan keakuratan keluaran digital berbanding terbalik. Jadi untuk akurasi keluaran digital yang lebih baik kita harus memilih frekuensi yang lebih rendah. Untuk jam ADC normal kita mengatur presale ADC ke nilai maksimum (2). Karena kita menggunakan clock internal 1MHZ, clock ADC akan menjadi (1000000/2).
Inilah empat hal yang perlu kita ketahui untuk memulai ADC.
Keempat fitur di atas diatur oleh dua register,
MERAH (ADEN): Bit ini harus disetel untuk mengaktifkan fitur ADC ATMEGA.
BIRU (REFS1, REFS0): Kedua bit ini digunakan untuk mengatur tegangan referensi (atau tegangan input maks yang akan kami berikan). Karena kami ingin memiliki tegangan referensi 5V, REFS0 harus diatur, oleh tabel.
KUNING (ADFR): Bit ini harus disetel agar ADC terus berjalan (mode berjalan bebas).
PINK (MUX0-MUX3): Empat bit ini untuk memberi tahu saluran input. Karena kita akan menggunakan ADC0 atau PIN0, kita tidak perlu mengatur bit apa pun seperti pada tabel.
BROWN (ADPS0-ADPS2): ketiga bit ini untuk mengatur prescalar untuk ADC. Karena kami menggunakan prescalar 2, kami harus menetapkan satu bit.
DARK GREEN (ADSC): bit ini diatur untuk ADC untuk memulai konversi. Bit ini dapat dinonaktifkan dalam program ketika kita perlu menghentikan konversi.
Sehingga dengan hambatan LDR pada layar LCD 16x2 dapat kita padukan dengan grafik LUX untuk mendapatkan intensitas cahaya.