Anda di halaman 1dari 14

SMK NEGERI 1  

Percobaan ke-11
CIMAHI
XI – TEI – B Guru: 1. Drs. Deni Ogan A.,MT

2. Eva Risnasari, S.Pd


ANALOG TO DIGITAL
CONVERTATION

25 MUTIARA Hari/Tanggal: RABU,23 SEPTEMBER 2020


SEPTIANI WP
Paraf :

I. PENDAHULUAN
ADC (Analog to Digital Convertion)

Analog To Digital Converter (ADC) adalah pengubah input analog menjadi


kode – kode digital. ADC banyak digunakan sebagai Pengatur proses industri,
komunikasi digital dan rangkaian pengukuran/ pengujian. Umumnya ADC
digunakan sebagai perantara antara sensor yang kebanyakan analog dengan
sistim komputer seperti sensor suhu, cahaya, tekanan/ berat, aliran dan
sebagainya kemudian diukur dengan menggunakan sistim digital (komputer).

ADC (Analog to Digital Converter) memiliki 2 karakter prinsip, yaitu kecepatan


sampling dan resolusi.

ADC (Analog To Digital Converter) adalah perangkat elektronika yang


berfungsi untuk mengubah sinyal analog (sinyal kontinyu) menjadi sinyal
digital. Perangkat ADC (Analog To Digital Convertion) dapat berbentuk suatu
modul atau rangkaian elektronika maupun suatu chip IC. ADC (Analog To
Digital Converter) berfungsi untuk menjembatani pemrosesan sinyal analog
oleh sistem digital.

II. TUJUAN

-   Mengenal VB 6.0
-   Mengerti tentang dasar Analog to Digital Convertion
-   Dapat memprogram visual basic 6.0 
-   Dapat memprogram CVAVR

III. ALAT DAN BAHAN


1. LAPTOP
2. SOFTWARE VISUAL BASIC
IV. LANGKAH KERJA

Analog to Digital Converter (ADC)

Pada pembelajaran yang telah lalu dijelaskan komunikasi antara VB6 dengan
Mikrokontroler Atmega 16 melalui saluran komunikasi serial.

Simulasi komunikasinya digambarkan melalui bentuk virtual dengan bantuan


software

 Serial Virtual Emulator

Jika membutuhkan software, maka berikut ini tautannya 

https://drive.google.com/file/d/1BLuKAYqVjkS0etgp1CHp1tsuMpzm6eB3/
view?usp=sharing

Penugasan

1. Program VSPE

Aktifkan program VSPE dengan tampilan seperti berikut ini :


lalu minimize program VSPE-nya

2. Software Proteus :

Pada bagian software ini adalah :


    a. Type mikrokontroler : Atmega 16
    b. Properties pada Atmega 16 (doubleclick pada komponen IC Atmega 16)
   c. Properties pada komponen Crystal (double click pada komponen Xtall)

d. Properties pada compim


3. Software CVAVR

a. Bagian yang diubah adalah pada

1). Setting Chip

2). Setting Port


3). Setting USART
4). Setting pada ADC adalah sebagai berikut :

a. Buat program pada CVAVR dengan programnya seperti berikut ini :


#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// Declare your global variables here
int a,b,c;
void main(void)
{
// Declare your local variables here
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: ADC Stopped
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x86;
SFIOR&=0xEF;
while (1)
      {
      // Place your code here  
      a=read_adc(0);
      b=read_adc(1);
      c=read_adc(2);
      printf("*A%03iB%03iC%03i#\n\r",a,b,c);
      delay_ms(10);
      }
}

f. Compile program lalu masukan hasilnya pada gambar rangkaian Atmega16


pada proteus

3. Bagian pada software VB6 :

a. Buat form pada VB6 dengan tampilan dan setingnya seperti pada gambar
berikut ini
b. Tulis script programnya pada VB
Private Sub Command2_Click()
  MSComm1.PortOpen = False
  End
End Sub
Private Sub Form_Load()
  If MSComm1.PortOpen = False Then
     MSComm1.PortOpen = True
  End If
End Sub
Private Sub MSComm1_OnComm()
a = MSComm1.Input
If a = "*" Then
   Text1.Text = ""
End If
Text1.Text = Text1.Text & a
If Mid(Text1.Text, 2, 1) = "A" Then
Text2.Text = Mid(Text1.Text, 3, 3)
Text5.Text = Round((Val(Text2.Text) * 5 / 255), 2)
End If
If Mid(Text1.Text, 6, 1) = "B" Then
Text3.Text = Mid(Text1.Text, 7, 3)
Text6.Text = Round((Val(Text3.Text) * 5 / 255), 2)
End If
If Mid(Text1.Text, 10, 1) = "C" Then
Text4.Text = Mid(Text1.Text, 11, 3)
Text7.Text = Round((Val(Text4.Text) * 5 / 255), 2)
End If
End Sub

c. Ubah properties pada komponen MsComm1


   1) Comport : 2
   2) Setting : 9600,n,8,1
   3) RThreshold = 1
   4) STHreshold = 1

d. Jalankan Program VB6

4. Kombinasi Running Program

a. Ubahlah posisi layar monitor dengan cara membagi layar jadi 2 bagian
dimana bagian ke-1 untuk gambar proteus yang sudah dirunning, sedangkan
layar yang ke-2 untuk VB yang sudah dirunning
b. Ubahlah nilai potensio pada rangkaian proteus dari nilai minimum ke posisi
maksimum
c. Perhatikan hasil yang terjadi pada running program VB6
d. Hasilnya untuk nilai decimal antara 0 sd 255 atau hasil konversi tegangan
dari nilai 0 sd 5 Volt

5. Kirimkan laporan via alamat email denniogan@gmail.com

6. Jangan lupa mengabsen pada


tautan  http://gg.gg/AbsensiMK11EIN atau 

https://forms.gle/yKrWnHkQ2A8mzcS48

7. Selamat Bekerja

V. HASIL PRAKTEK

 RUNNING PROGRAM ADC


 SCRIPT PROGRAM VISUAL BASIC ADC
Private Sub Command2_Click()
  MSComm1.PortOpen = False
  End
End Sub
Private Sub Form_Load()
  If MSComm1.PortOpen = False Then
     MSComm1.PortOpen = True
  End If
End Sub
Private Sub MSComm1_OnComm()
a = MSComm1.Input
If a = "*" Then
   Text1.Text = ""
End If
Text1.Text = Text1.Text & a
If Mid(Text1.Text, 2, 1) = "A" Then
Text2.Text = Mid(Text1.Text, 3, 3)
Text5.Text = Round((Val(Text2.Text) * 5 / 255), 2)
End If
If Mid(Text1.Text, 6, 1) = "B" Then
Text3.Text = Mid(Text1.Text, 7, 3)
Text6.Text = Round((Val(Text3.Text) * 5 / 255), 2)
End If
If Mid(Text1.Text, 10, 1) = "C" Then
Text4.Text = Mid(Text1.Text, 11, 3)
Text7.Text = Round((Val(Text4.Text) * 5 / 255), 2)
End If
End Sub

 SCRIPT PROGRAM CVAVR


#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input
voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// Declare your global variables here
int a,b,c;
void main(void)
{
// Declare your local variables here
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: ADC Stopped
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x86;
SFIOR&=0xEF;
while (1)
      {
      // Place your code here  
      a=read_adc(0);
      b=read_adc(1);
      c=read_adc(2);
      printf("*A%03iB%03iC%03i#\n\r",a,b,c);
      delay_ms(10);
      }
}

VI. KESIMPULAN

ADC (Analog to Digital Converter) adalah salah satu fasilitas mikrokontroler


yang berfungsi untuk mengubah data analog menjadi data digital. ADC
memiliki 2 karakter prinsip, yaitu kecepatan sampling dan resolusi. Kecepatan
sampling suatu ADC menyatakan seberapa sering sinyal analog dikonversikan
ke bentuk sinyal digital pada selang waktu tertentu. Kecepatan sampling
bisanya dinyatakan dalam sample per second (SPS)

ADC (Analog Digital Converter) difungsikan untuk mengkonversi keluaran


analog dari sensor menjadi digital. Hal ini dilakukan dengan menghubungkan
output dari sensor tersebut ke Port ADC yang tersedia pada mikrokontroler
Arduino.

ADC yang digunakan pada perancangan alat biasanya menggunakan mode


single input ended dimana hanya satu masukan saja yang dibaca dari port yang
diaktifkan dan menggunakan model konversi ADC 10 bit. Karena
menggunakan ADC 10 bit maka nilai maksimum dari pembacaan ADC itu
adalah 210 = 1024

Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk besaran
yang merupakan rasio perbandingan sinyal input dan tegangan referensi.
Sebagai contoh, jika menggunakan ADC 8 bit dengan skala maksimum 255,
akan didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk desimal) atau
10011001 (bentuk biner)

COMPIM pada proteus dan pengaturan COMPORT pada keduanya sangat


berpengaruh untuk keberhasilan pengiriman data angka dari proteus ke VB6.

Pada saat potensio diubah nilai persenannya maka hasil angka dari perubahan
potensio tersebut dimunculkan pada teks box di VB6.Pada teks box 2,3,dan 4
akan muncul output berupa nilai decimal antara 0 sd 255.Sedangkan pada teks
bok 5,6,dan 7 akan muncul output berupa nilai decimal hasil konversi tegangan
dari nilai 0 sd 5 Volt.

Anda mungkin juga menyukai