Senin, 30 September 2019

INTERFACE DAC MENGGUNAKAN PIC 16F877A


1. Tujuan [KEMBALI]

Mempelajari bagaimana cara menggunakan mikrokontroler PIC sebagai koverter Digital menjadi Analog data (DAC0808) dengan programnya.

2. Alat [KEMBALI]

2.1 Mikrokontroller PIC16F877A


2.2 Sensor Suhu LM35


2.3 DAC 0808


2.4 OP-AMP


2.5 Motor DC

3. Teori [KEMBALI]

3.1. Pengertian Mikrokontroller PIC16F877A

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 PIC16F877A.

3.1.1 Fitur-Fitur PIC16F877A

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.

3.1.2 PinOut PIC16F877A

-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.

3.1.3 Pemograman PIC16F877A

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 PIC16F877A.

Di gambar dapat dilihat bahwa rangkaian dasar dari sistim mikrokontroler biasanya menggunakan rangkaian crystal sebagai clock atau oscilator eksternal sebagai jantung untuk memberikan 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.

3.2 Pengertian Sensor Suhu LM35

Untuk penjelasan mengenai sensor suhu LM35 dapat dilihat dalam teori tentang Interface Sensor suhu LM35 menggunakan PIC

3.3 Pengertian ADC pada PIC 16F877A

Untuk Mengkonversi data analog yang diinputkan oleh sensor digunakan rangkaian ADC PIC. Rangkaian ADC ini sudah dipelajari dan dapat dilihat di Interface ADC menggunakan PIC

3.4 Pengertian DAC dan IC DAC0808

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.

3.5 Pengertian OP-AMP

Operasional amplifier (Op-Amp) adalah suatu penguat berpenguatan tinggi yang terintegrasi dalam sebuah chip IC yang memiliki dua input inverting dan non-inverting dengan sebuah terminal output, dimana rangkaian umpan balik dapat ditambahkan untuk mengendalikan karakteristik tanggapan keseluruhan pada operasional amplifier (Op-Amp). Pada dasarnya operasional amplifier (Op-Amp) merupakan suatu penguat diferensial yang memiliki 2 input dan 1 output.

Pada Interface ini Op-AMP digunakan sebagai penguat sinyal keluaran dari DAC0808 sehingga sinyal ini yang akan nanti di berikan ke motor DC

3.6 Pengertian Motor DC

Untuk teori dari Motor DC dapat dilihat pada pembahasan mengenai Interface Motor DC menggunakan PIC

4. Rangkaian [KEMBALI]

Rangkaian Di atas merupakan sebuah rangkaian yang digunakan untuk mengatur kecepatan Motor DC. Prinsipnya, sinyal input berupa data analog akan diberikan oleh seubuah sensor suhu, ketika sensor ini mendeteksi suhu. Ketika suhu terdeteksi, maka sinyal ini akan diberikan kepada mikrokontroler PIC dengan mengubah sinyal ini menjadi bentuk digital. setelah itu, sinyal digital ini diubah menjadi 8 bit digital kemudian di konversikan lagi menjadi sinyal analog menggunakan DAC0808 yang kemudian sinyal ini akan diteruskan untuk mengggerakkan motor DC. Jika suhu yang terdeteksi tingi, maka motor DC akan bergerak maksimum, jika suhu nya sedang (suhu ruangan) maka pergerakan/ perputaran dari motor DC sedang, dan jika suhu rendah, maka motor DC akan berputar lambat. Perputaran motor ini dikontrol dengan menggunakan program dari PIC sesuai dengan sinyal yang diterima dari sensor.

5. 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 amp="" 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);



}

6. Flowchart [KEMBALI]

7. Video Simulasi [KEMBALI]


8. Files Download Link [KEMBALI]

Video Simulasi download
File Simulasi Proteus download
Coding Program download

0 komentar:

Posting Komentar