DAC
[Back to Home]
TIMER
1. Tujuan [kembali]
Mempelajari bagaimana cara merangkai suatu rangkaian yang menggunakan mikrokontroler dan dihubungkan dengan Dotmatrix dengan programnya.
Mempelajari bagaimana cara merangkai suatu rangkaian yang menggunakan mikrokontroler dan dihubungkan dengan Dotmatrix dengan programnya.
2. Alat dan Bahan [kembali]
- PIC 16F887
- Button
- Crystal
- Seven Segment
- Resistor
- Switch
- Jumper
- Kapasitor
- dll.
3. Dasar Teori [kembali]
3.1. Pengertian Mikrokontroler PIC 16F887
PIC yang merupakan produk dari Microchip Technology, merupakan kepanjangan dari Peripheral Interface Controller memiliki arsitektur Harvard dan merupakan jenis RISC (Reduced Instruction Set Computing). Salah satu jenis mikrokontroler ini adalah PIC16F887.
3.1.1 Fitur-Fitur PIC16F887.
a. Memiliki Instruksi sebanyak 35 buah.
b. Masing-masing instruksi dieksekusi dalam satu siklus mesin kecuali untuk instruksi percabangan yaitu dua siklus.
c. Kecepatan operasi masukan clock dari DC hingga 20MHz.
d. Kapasitas memori program berukuran 8k x 14 words.
e. Kapasitas RAM 268 byte.
f. Kapasitas memory EEPROM berukuran 256 byte.
b. Masing-masing instruksi dieksekusi dalam satu siklus mesin kecuali untuk instruksi percabangan yaitu dua siklus.
c. Kecepatan operasi masukan clock dari DC hingga 20MHz.
d. Kapasitas memori program berukuran 8k x 14 words.
e. Kapasitas RAM 268 byte.
f. Kapasitas memory EEPROM berukuran 256 byte.
3.1.2 Pin Out PIC16F887.
-Memiliki 5 PORT I/O (PORTA 6 pin, PORTB 8 pin, PORTC 8 pin, PORTD 8 pin, PORTE 3 pin).
-Memiliki 3 buat timer
-Memiliki 2 buah keluaran PWM.
-Komunikasi serial singkron menggunakan SPI dan I2C.
-Komunikasi USART.
-Memiliki 3 buat timer
-Memiliki 2 buah keluaran PWM.
-Komunikasi serial singkron menggunakan SPI dan I2C.
-Komunikasi USART.
3.1.3 Pemograman PIC16F887
Pemograman
PIC ini diprogram menggunakan bahasa C dan dapat menggunakan kompiler
MikroC for PIC yang dapat didownload di situs resminya.
3.1.4 Rangkaian Dasar Sistem Mikrokontroler PIC16F887.
Di
gambar dapat dilihat bahwa rangkaian dasar dari sistim mikrokontroler
biasanya menggunakan rangkaian crystal sebagai clock atau oscilator
ecternal sehingga dapat menambah kecepatan eksekusi dari mikrokontroler
tersebut. Pada gambar juga terdapat rangkaian reset yang digunakan untuk
memulai dari awal kembali program yang kita jalankan pada
mikrokontroler ini.
Aplikasi
Komputer & Periferal Komputer, Industri, Otomotif
Peringatan
Perangkat sensitif ESD, lakukan tindakan pencegahan yang tepat saat menangani perangkat.
2. Kapasitor
Kapasitor adalah suatu komponen elektronika yang berfungsi untuk
menyimpan arus listrik sementara dalam bentuk muatan, selain itu
kapasitor juga dapat digunakan sebagai penyaring frekuensi.
Kapasitas untuk menyimpan kemampuan kapasitor dalam muatan listrik
disebut Farad (F) sedangkan simbol dari kapasitor adalah C (kapasitor).
sebuah kapasitor pada dasarnya terbuat dari dua buah lempengan logam
yang saling sejajar satu sama lain dan diantara kedua logam tersebut
terdapat bahan isolator yang sering disebut dielektrik.
3. Crystal
Kristal digunakan pada rangkaian elektronika yang berhubungan dengan
pembangkitan frekuensi baik itu frekuensi tinggi, frekuensi suara,
maupun frekuensi rendah.
4. button
Push Button adalah saklar
tekan yang berfungsi sebagai pemutus atau penyambung arus listrik dari
sumber arus ke beban listrik. Suatu sistem saklar tekan push button
terdiri dari saklar tekan start, stop reset dan saklar tekan untuk
emergency.
5. IC DAC 0808
Dac adalah suatu rangkaian elektronika yang digunakan untuk merubah data digital menjadi data analog. Kebalikan dari dac adalah adc. Biasanya Dac sering digunakan pada perangkat digital pada bagian output.
IC DAC0808 adalah IC digital to analog dengan input 8 bit, seperti namanya digital to analog fungsi utamanya yaitu untuk mengubah dari data berupa digital menjadi tegangan analog, DAC prinsip kerjanya berkebalikan dengan ADC, jika DAC diberikan nilai 0 maka tegangan output adalah 0 volt, kemudian jika diberikan nilai 255 maka tegangan output adalah 5 volt, jika diantara 0 dengan 255 dapat dihitung menggunakan rumus.
Vout = Tegangan Output Nilai DAC = Nilai yang ingin dikonversi ke tegangan Vref = tegangan referensi, biasanya 12 volt 255 = full range 8 bit DAC0808
Berikut adalah modul IC DAC 0808
Bila kita gunakan tegangan tertinggi untuk konversi 15 volt maka setiap kenaikan nilai konversi adalah 1 volt jadi bila nilai digital 0100 hasil konversinya adalah 4x1volt = 4 volt. Seandainya nilai tertinggi dibuat 4,5 volt maka setiap kenaikan adalah 0,3 volt sehingga bila nilai digital 0100 hasil konversinya adalah 4×0,3volt = 1,2 volt.
Dari penjelasan diatas dapat ditentukan jumlah harga tegangan atau aplitudo sebagai hasil konversi adalah tergantung pada jumlah bit digital yang dikonversikan, dan besar kecilnya harga analog hasil konversi juga ditentukan oleh besar kecilnya tegangan referensi.
Makin banyak jumlah bit yang digunakan untuk konversi maka akan semakin banyak jumlah harga amplitudo yang di dapat, dan dengan semakin banyaknya jumlah tersebut akan menyebabkan tingkat kehalusan konversi semakin tinggi. Sebagai contoh untuk konversi tegangan analog 10 volt dengan menggunakan jumlah bit 10, maka akan didapatkan jumlah harga amplitudo 1024 dengan demikian akan diperoleh perbedaan setiap tingkat konversi adalah 10volt dibagi (1024-1) yaitu sama dengan 9,77 milivolt dan bila digunakan 8 bit maka perbedaan setiap tingkat konversi adalah 39,21 milivolt.
5. IC DAC 0808
Dac adalah suatu rangkaian elektronika yang digunakan untuk merubah data digital menjadi data analog. Kebalikan dari dac adalah adc. Biasanya Dac sering digunakan pada perangkat digital pada bagian output.
IC DAC0808 adalah IC digital to analog dengan input 8 bit, seperti namanya digital to analog fungsi utamanya yaitu untuk mengubah dari data berupa digital menjadi tegangan analog, DAC prinsip kerjanya berkebalikan dengan ADC, jika DAC diberikan nilai 0 maka tegangan output adalah 0 volt, kemudian jika diberikan nilai 255 maka tegangan output adalah 5 volt, jika diantara 0 dengan 255 dapat dihitung menggunakan rumus.
Vout = Tegangan Output Nilai DAC = Nilai yang ingin dikonversi ke tegangan Vref = tegangan referensi, biasanya 12 volt 255 = full range 8 bit DAC0808
Berikut adalah modul IC DAC 0808
A1-A8,
input digital 8 bit, data inputan yang akan dikonversikan ke besaran
tegangan analog. VREF(-), VREF(+) input tegangan referensi yang
digunakan untuk mengatur levelouput tegangan analog. Compensation, pin
compensation dihubungkan dengan menggunakan capasitor ke VEE atau ground
untuk mempertahankan batas fase yang bersesuaian.
Pengubahan
besaran analog ke digital ditentukan oleh besar tegangan input maksimum
yang diukur dalam Volt, mVolt atau uVolt, sedang nilai konversi
digitalnya juga bebas ditentukan hal ini tergantung berapa bita yang
digunakan untuk mengkonversinya. Begitu pula untuk pengubah digital ke
analog juga sama dan hasil konversi tergantung pula pada besar tegangan
referensinya.
Bila kita gunakan tegangan tertinggi untuk konversi 15 volt maka setiap kenaikan nilai konversi adalah 1 volt jadi bila nilai digital 0100 hasil konversinya adalah 4x1volt = 4 volt. Seandainya nilai tertinggi dibuat 4,5 volt maka setiap kenaikan adalah 0,3 volt sehingga bila nilai digital 0100 hasil konversinya adalah 4×0,3volt = 1,2 volt.
Dari penjelasan diatas dapat ditentukan jumlah harga tegangan atau aplitudo sebagai hasil konversi adalah tergantung pada jumlah bit digital yang dikonversikan, dan besar kecilnya harga analog hasil konversi juga ditentukan oleh besar kecilnya tegangan referensi.
Makin banyak jumlah bit yang digunakan untuk konversi maka akan semakin banyak jumlah harga amplitudo yang di dapat, dan dengan semakin banyaknya jumlah tersebut akan menyebabkan tingkat kehalusan konversi semakin tinggi. Sebagai contoh untuk konversi tegangan analog 10 volt dengan menggunakan jumlah bit 10, maka akan didapatkan jumlah harga amplitudo 1024 dengan demikian akan diperoleh perbedaan setiap tingkat konversi adalah 10volt dibagi (1024-1) yaitu sama dengan 9,77 milivolt dan bila digunakan 8 bit maka perbedaan setiap tingkat konversi adalah 39,21 milivolt.
6. Program [kembali]
int t;
void main() {
ADCON0.ADCS0=0; // ADCS0, ADCS1 dan ADCS2 Bersama-sama menentukan kecepatan clock
ADCON0.ADCS1=1; // Jika 0 1 1, maka kecepatannya Fosc/64
ADCON1.ADCS2=1;
ADCON0.CHS0=0; // CHS0, CHS1 dan CHS2 bersama sama menentukan pin input yang digunakan
ADCON0.CHS1=0; // jika 0 0 0 , maka pin digunakan adalah pin RA0/AN0
ADCON0.CHS2=0;
ADCON0.ADON=1; // Mengaktifkan konverter A/D
ADCON1.ADFM=1; // Menyatakan 10 bit yang digunakan terdiri dari 8 bit ADRESL dan 2 bit ADRESH
ADCON1.PCFG0=0; // PCFG0, PCFG1, PCFG2 dan PCFG3 bersama sama menentukan
ADCON1.PCFG1=0; // Apakah pin input digunakan sebagai input analog atau input digital
ADCON1.PCFG2=0; // Jika 0 0 0 0, maka pin digunakan sebagai input analog
ADCON0.PCFG3=0;
TRISC=0x00; // Menyatakan PORTC sebagai output
PORTC=0x00; // Nilai awal PORTC low
do
{
ADCON0.Go_Done=1;
t=ADRESL+(ADRESH*256); // Mendapatkan nilai input analog
t=t*0.4887 ; // Menyesuaikan nilai tegangan dengan nilai serajat suhu
if(t>=28){ // Jika suhu menunjukkan nilai lebih 28 derjat, maka
PORTC=0xff; // Motor DC berputar dengan kecepatan penuh
}
else if(t<28&&t>=24) { // Jika suhu menunjukkan nilai antara 24 dan 28 derjat, maka
PORTC=0x7f; // Motor DC berputar dengan kecepatan sedang
}
else // Jika suhu kurang dari 24 derjat, maka
{ PORTC=0x3f; // Motor DC berputar dengan kecepatan rendah
}
} while(1);
}
int t;
void main() {
ADCON0.ADCS0=0; // ADCS0, ADCS1 dan ADCS2 Bersama-sama menentukan kecepatan clock
ADCON0.ADCS1=1; // Jika 0 1 1, maka kecepatannya Fosc/64
ADCON1.ADCS2=1;
ADCON0.CHS0=0; // CHS0, CHS1 dan CHS2 bersama sama menentukan pin input yang digunakan
ADCON0.CHS1=0; // jika 0 0 0 , maka pin digunakan adalah pin RA0/AN0
ADCON0.CHS2=0;
ADCON0.ADON=1; // Mengaktifkan konverter A/D
ADCON1.ADFM=1; // Menyatakan 10 bit yang digunakan terdiri dari 8 bit ADRESL dan 2 bit ADRESH
ADCON1.PCFG0=0; // PCFG0, PCFG1, PCFG2 dan PCFG3 bersama sama menentukan
ADCON1.PCFG1=0; // Apakah pin input digunakan sebagai input analog atau input digital
ADCON1.PCFG2=0; // Jika 0 0 0 0, maka pin digunakan sebagai input analog
ADCON0.PCFG3=0;
TRISC=0x00; // Menyatakan PORTC sebagai output
PORTC=0x00; // Nilai awal PORTC low
do
{
ADCON0.Go_Done=1;
t=ADRESL+(ADRESH*256); // Mendapatkan nilai input analog
t=t*0.4887 ; // Menyesuaikan nilai tegangan dengan nilai serajat suhu
if(t>=28){ // Jika suhu menunjukkan nilai lebih 28 derjat, maka
PORTC=0xff; // Motor DC berputar dengan kecepatan penuh
}
else if(t<28&&t>=24) { // Jika suhu menunjukkan nilai antara 24 dan 28 derjat, maka
PORTC=0x7f; // Motor DC berputar dengan kecepatan sedang
}
else // Jika suhu kurang dari 24 derjat, maka
{ PORTC=0x3f; // Motor DC berputar dengan kecepatan rendah
}
} while(1);
}
Tidak ada komentar:
Posting Komentar