Daftar Isi:
- Langkah 1: Apa itu ADC?
- Langkah 2: Cara Kerja ADC di AVR-Mikrokontroler
- Langkah 3: Rumus Konversi ADC
- Langkah 4: Bagaimana Konfigurasi ADC di ATmega8?
- Langkah 5: Seleksi ADLAR
- Langkah 6: Seleksi ADCSRA
- Langkah 7: Jika Anda Ingin Mengambil Nilai ADC, Anda Harus Melakukan Beberapa Pekerjaan Yang Tercantum Di Bawah Ini
- Langkah 8: Setel Nilai ADC
- Langkah 9: Konfigurasikan Pin LED Output
- Langkah 10: Konfigurasikan Perangkat Keras ADC
- Langkah 11: Aktifkan ADC
- Langkah 12: Mulai Konversi Analog ke Digital
- Langkah 13: SEMENTARA Selamanya
- Langkah 14: Pada Bagian Akhir Kode Lengkap Adalah
Video: Pengenalan ADC pada Mikrokontroler AVR - untuk Pemula: 14 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Dalam tutorial ini Anda akan mengetahui semua ADC di mikrokontroler avr
Langkah 1: Apa itu ADC?
ADC, atau Analog to Digital Converter, memungkinkan seseorang untuk mengubah tegangan analog menjadi nilai digital yang dapat digunakan oleh mikrokontroler. Ada banyak sumber sinyal analog yang mungkin ingin diukur. Ada sensor analog yang tersedia yang mengukur suhu, intensitas cahaya, jarak, posisi, dan gaya, hanya untuk beberapa nama.
Langkah 2: Cara Kerja ADC di AVR-Mikrokontroler
AVR ADC memungkinkan mikrokontroler AVR untuk mengubah tegangan analog menjadi nilai digital dengan sedikit atau tanpa bagian eksternal. ATmega8 memiliki aproksimasi 10-bit berturut-turut ADC. ATmega8 memiliki 7 saluran ADC di PortC. ADC memiliki pin tegangan suplai analog yang terpisah, AVCC. AVCC tidak boleh berbeda lebih dari ± 0.3V dari VCC.. Referensi tegangan dapat dipisahkan secara eksternal pada pin AREF. AVCC digunakan sebagai referensi tegangan. ADC juga dapat diatur untuk berjalan terus menerus (mode berjalan bebas) atau hanya melakukan satu konversi.
Langkah 3: Rumus Konversi ADC
Dimana Vin adalah tegangan pada pin input yang dipilih dan Vref adalah referensi tegangan yang dipilih
Langkah 4: Bagaimana Konfigurasi ADC di ATmega8?
Register berikut digunakan untuk implementasi ADC di ATmega8
Pilihan Multiplexer ADC
Langkah 5: Seleksi ADLAR
Hasil Penyesuaian Kiri ADC Bit ADLAR mempengaruhi penyajian hasil konversi ADC dalam Daftar Data ADC. Tulis satu ke ADLAR ke kiri sesuaikan hasilnya. Jika tidak, hasilnya akan disesuaikan dengan benar
Ketika konversi ADC selesai, hasilnya ditemukan di ADCH dan ADCL Ketika ADCL dibaca, Daftar Data ADC tidak diperbarui sampai ADCH dibaca. Akibatnya, jika hasilnya dibiarkan disesuaikan dan presisi tidak lebih dari 8-bit diperlukan, itu sudah cukup untuk membaca ADCH. Jika tidak, ADCL harus dibaca terlebih dahulu, kemudian ADCH. Analog Channel Selection Bits Nilai bit ini memilih input analog yang terhubung ke ADC.
Langkah 6: Seleksi ADCSRA
• Bit 7 – ADEN: ADC Enable Menulis bit ini ke satu mengaktifkan ADC. Dengan menuliskannya ke nol, ADC dimatikan
• Bit 6 – ADSC: ADC Mulai Konversi Dalam mode Konversi Tunggal, tulis bit ini menjadi satu untuk memulai setiap konversi. Dalam mode Free Running, tulis bit ini ke satu untuk memulai konversi pertama.
• Bit 5 – ADFR: ADC Free Running Select Ketika bit ini diset (satu), ADC beroperasi dalam mode Free Running. Dalam mode ini, sampel ADC dan memperbarui Register Data secara terus menerus. Menghapus bit ini (nol) akan Mengakhiri mode Free Running.
• Bit 4 – ADIF: ADC Interrupt Flag Bit ini diset saat konversi ADC selesai dan Register Data diperbarui. Interupsi Lengkap Konversi ADC dijalankan jika bit ADIE dan bit I pada SREG diatur. ADIF dihapus oleh perangkat keras saat menjalankan Vektor Penanganan interupsi yang sesuai. Atau, ADIF dihapus dengan menulis yang logis ke bendera.
• Bit 3 – ADIE: ADC Interrupt Enable Ketika bit ini ditulis ke satu dan bit-I di SREG diatur, ADC Conversion Complete Interrupt diaktifkan.
• Bits 2:0 – ADPS2:0: ADC Prescaler Select Bits Menurut datasheet, prescalar ini perlu diatur agar frekuensi input ADC berada di antara 50 KHz dan 200 KHz. Jam ADC diturunkan dari jam sistem dengan bantuan ADPS2:0 Bit-bit ini menentukan faktor pembagian antara frekuensi XTAL dan jam masukan ke ADC.
Langkah 7: Jika Anda Ingin Mengambil Nilai ADC, Anda Harus Melakukan Beberapa Pekerjaan Yang Tercantum Di Bawah Ini
- Tetapkan nilai ADC
- Konfigurasikan pin LED keluaran
- Konfigurasikan Perangkat Keras ADC
- Aktifkan ADC
- Mulai Konversi Analog ke Digital
- SEMENTARA Selamanya
JIKA Nilai ADC Lebih Tinggi dari Setel nilai, Nyalakan LED ELSE Matikan LED
Langkah 8: Setel Nilai ADC
Kode: uint8_t ADCValue=128;
Langkah 9: Konfigurasikan Pin LED Output
Kode: DDRB|= (1 << PB1);
Langkah 10: Konfigurasikan Perangkat Keras ADC
Konfigurasikan Perangkat Keras ADC
Hal ini dilakukan melalui pengaturan bit dalam register kontrol untuk ADC. Pertama, mari kita atur prescalar untuk ADC. Menurut datasheet, prescalar ini perlu diatur agar frekuensi input ADC berada di antara 50 KHz dan 200 KHz. Jam ADC berasal dari jam sistem. Dengan frekuensi sistem 1MHz, prescaler 8 akan menghasilkan frekuensi ADC 125 Khz. Prescaling diatur oleh bit ADPS dalam register ADCSRA. Menurut datasheet, ketiga bit ADPS2:0 harus diatur ke 011 untuk mendapatkan 8 prescaler.
Kode: ADCSRA |= (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Selanjutnya, mari kita atur tegangan referensi ADC. Ini dikendalikan oleh bit REFS dalam register ADMUX. Berikut ini mengatur tegangan referensi ke AVCC.
Kode: ADMUX |= (1 << REFS0);
Untuk mengatur saluran yang dilewatkan melalui multiplexer ke ADC, bit MUX dalam register ADMUX perlu diatur. Karena kami menggunakan ADC5 di sini
Kode: ADMUX&=0xF0; ADMUX|=5;
Untuk menempatkan ADC ke mode free-running, atur bit ADFR yang diberi nama tepat di register ADCSRA:
Kode: ADCSRA |= (1 << ADFR);
Satu perubahan pengaturan terakhir akan dilakukan untuk membuat pembacaan nilai ADC menjadi lebih sederhana. Meskipun ADC memiliki resolusi 10 bit, informasi sebanyak ini seringkali tidak diperlukan. Nilai 10 bit ini dibagi menjadi dua register 8 bit, ADCH dan ADCL. Secara default, 8 bit terendah dari nilai ADC ditemukan di ADCL, dengan dua di atas menjadi dua bit terendah dari ADCH. Dengan mengatur bit ADLAR di register ADMUX, kita dapat menyelaraskan nilai ADC ke kiri. Ini menempatkan 8 bit pengukuran tertinggi di register ADCH, dengan sisanya di register ADCL. Jika kita kemudian membaca register ADCH, kita mendapatkan nilai 8 bit yang mewakili pengukuran 0 hingga 5 volt sebagai angka dari 0 hingga 255. Pada dasarnya kita mengubah pengukuran ADC 10 bit menjadi 8 bit. Berikut kode untuk mengatur bit ADLAR:
Kode:
ADMUX |= (1 << ADLAR); Itu melengkapi pengaturan perangkat keras ADC untuk contoh ini. Dua bit lagi perlu diatur sebelum ADC mulai melakukan pengukuran.
Langkah 11: Aktifkan ADC
Untuk mengaktifkan ADC, atur bit ADEN di ADCSRA:
Kode: ADCSRA |= (1 << ADEN);
Langkah 12: Mulai Konversi Analog ke Digital
Untuk memulai pengukuran ADC, bit ADSC di ADCSRA perlu diatur:
Kode: ADCSRA |= (1 << ADSC);
Pada titik ini, ADC akan mulai mengambil sampel tegangan yang disajikan pada ADC5 secara terus-menerus. Kode untuk titik ini akan terlihat seperti ini:
Langkah 13: SEMENTARA Selamanya
Satu-satunya yang tersisa untuk dilakukan adalah menguji nilai ADC dan mengatur LED untuk menampilkan indikasi tinggi / rendah. Karena pembacaan ADC di ADCH memiliki nilai maksimum 255, nilai uji th dipilih untuk menentukan apakah tegangan tinggi atau rendah. Pernyataan IF/ELSE sederhana dalam loop FOR akan memungkinkan kita untuk menyalakan LED yang benar:
Kode
jika(ADCH >ADCValue)
{
PORTB |= (1 << PB0); // Nyalakan LED
}
lain
{
PORTB&= ~(1 << PB0); // Matikan LED
}
Langkah 14: Pada Bagian Akhir Kode Lengkap Adalah
Kode:
#termasuk
int utama (kosong)
{
uint8_t ADCValue=128;
DDRB |= (1 << PB0); // Tetapkan LED1 sebagai output
ADCSRA |= (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Setel praskalar ADC ke 8 - // laju sampel 125KHz 1MHz
ADMUX |= (1 << REFS0); // Setel referensi ADC ke AVCC
ADMUX |= (1 << ADLAR); // Kiri sesuaikan hasil ADC untuk memudahkan pembacaan 8 bit
ADMUX&=0xF0;
ADMUX|=5; // Nilai MUX perlu diubah untuk menggunakan ADC0
ADCSRA |= (1 << ADFR); // Setel ADC ke Mode Berjalan Bebas
ADCSRA |= (1 << ADEN); // Aktifkan ADC
ADCSRA |= (1 << ADSC); // Mulai Konversi A2D saat(1) // Berulang Selamanya
{
jika (ADCH > ADCValue)
{
PORTB |= (1 << PB0); // Nyalakan LED1
}
lain
{
PORTE &= ~(1 << PB1); // Matikan LED1
}
}
kembali 0;
}
Publikasikan dulu tutorial ini Klik Disini
Direkomendasikan:
Mikrokontroler AVR. Sensor Jarak Ultrasonik. HC-SR04 pada LCD NOKIA 5110: 4 Langkah
Mikrokontroler AVR. Sensor Jarak Ultrasonik. HC-SR04 pada LCD NOKIA 5110: Halo semuanya! Pada bagian ini saya membuat perangkat elektronik sederhana untuk sensor jarak dan parameter ini ditampilkan pada LCD NOKIA 5110. Parameter ditampilkan sebagai diagram dan angka. Perangkat ini didasarkan pada mikrokontroler AVR ATMEG
Konfigurasi Bit Fuse Mikrokontroler AVR. Membuat dan Mengunggah di Memori Flash Mikrokontroler Program Berkedip LED.: 5 Langkah
Konfigurasi Bit Fuse Mikrokontroler AVR. Membuat dan Mengupload di Flash Memory Mikrokontroler Program LED Blinking.: Dalam hal ini kita akan membuat program sederhana dalam kode C dan membakarnya ke dalam memori mikrokontroler. Kami akan menulis program kami sendiri dan mengkompilasi file hex, menggunakan Atmel Studio sebagai platform pengembangan terintegrasi. Kami akan mengkonfigurasi fuse bi
Pelatih Latihan Pribadi (Proyek Mikrokontroler Pemula): 4 Langkah
Pelatih Latihan Pribadi (Proyek Mikrokontroler Pemula): Ringkasan:Tujuan dari instruksi ini adalah untuk membuat perangkat yang akan membantu memberikan rutinitas latihan yang konsisten bagi pengguna sepeda olahraga. Perangkat akan: -Memungkinkan pengguna untuk mempertahankan upaya dengan berkedip LED dan membunyikan bip pada kon
Pengenalan Pengenalan Suara Dengan Elechouse V3 dan Arduino.: 4 Langkah (dengan Gambar)
Pengenalan Pengenalan Suara Dengan Elechouse V3 dan Arduino.: Hai…!Teknologi pengenalan suara telah ada di sini selama beberapa tahun terakhir. Kami masih ingat kegembiraan besar yang kami alami saat berbicara dengan iphone pertama yang mendukung Siri. Sejak itu, perangkat perintah suara telah berkembang ke tingkat yang sangat
Cara Menyolder dengan Rapi (tanpa Banyak Kabel!) Memisahkan Tutup pada Mikrokontroler SMT.: 9 Langkah (dengan Gambar)
Cara Menyolder dengan Rapi (tanpa Banyak Kabel!) Memisahkan Caps pada Mikrokontroler SMT.: Instruksi ini ditulis untuk mengajari Anda cara menggunakan metode pembuatan prototipe yang rapi dan rapi dengan mikrokontroler SMT (atau perangkat lain) pada papan adaptor. Setelah berjuang untuk melakukan pekerjaan yang rapi dengan memisahkan pin daya secara efektif pada PIC18F saya, saya