Anda di halaman 1dari 18

Analog to Digital Converter

dengan Microsoft Visual Basic 6.0 dari Arduino Ke PC

I. DASAR TEORI

MIKROKONTROLER
Mikrokontroler merupakan sistem komputer kecil yang biasa digunakan
untuk sistem pengendali atau pengontrol yang dapat diprogram sesuai kebutuhan.
Mikrokontroller memiliki 4KB Flash Programmable dan Erasable Read Only
Memory(PEROM) didalamnya.
Arduino Uno memiliki 14 digital pin input / output (atau biasa ditulis I/O,
dimana 6 pin diantaranya dapat digunakan sebagai output PWM), 6 pin input
analog, menggunakan crystal 16 MHz, koneksi USB, jack listrik, header ICSP dan
tombol reset. Hal tersebut adalah semua yang diperlukan untuk mendukung
sebuah rangkaian mikrokontroler. Cukup dengan menghubungkannya ke
komputer dengan kabel USB atau diberi power dengan adaptor AC-DC atau
baterai, anda sudah dapat bermain-main dengan Arduino UNO anda tanpa
khawatir akan melakukan sesuatu yang salah. Kemungkinan paling buruk
hanyalah kerusakan pada chip ATMega328, yang bisa anda ganti sendiri dengan
mudah dan dengan harga yang relatif murah.

Gambar1.Arduino R3

Arduino dapat berfungsi/bekerja, apabila telah terisi oleh program. Program


terlebih dahulu dimasukan kedalam memori sesuai dengan kebutuhan
penggunaaan pengontrolan yang diperlukan dan yang hendak dijalankan. Program
yang dimasukkan kedalam mikrokontroler Arduino adalah berupa file heksa (Hex

1
File), dan program tersebut berisikan instruksi atau perintah untuk menjalankan
sistem kontrol.
Kabel external (non-USB) seperti menggunakan adaptor AC ke DC atau
baterai dengan konektor plug ukuran 2,1mm polaritas positif di tengah ke jack
power di board. Jika menggunak baterai dapat disematkan pada pin GND dan Vin
di bagian Power konektor.

Gambar2.Power Supply Arduino Port

Papan Arduino ini dapat disupplai tegangan kerja antara 6 sampai 20 volt, jika
catu daya di bawah tengan standart 5V board akan tidak stabil, jika dipaksakan ke
tegangan regulator 12 Volt mungkin board arduino cepat panas (overheat) dan
akan merusak board.

INPUT DAN OUTPUT


Masing-masing dari 14 pin UNO dapat digunakan sebagai input atau output,
menggunakan perintah fungsi pinMode(), digitalWrite(), dan digitalRead() yang
menggunakan tegangan operasi 5 volt. Tiap pin dapat menerima arus maksimal
hingga 40mA dan resistor internal pull-up antara 20-50kohm, beberapa pin
memiliki fungsi kekhususan antara lain:

 Serial: 0 (RX) dan 1 (TX). Sebagai penerima (RX) dan pemancar (TX)
TTL serial data. Pin ini terkoneksi untuk pin korespondensi chip
ATmega8U2 USB-toTTL Serial.
 External Interrupts: 2 dan 3. Pin ini berfungsi sebagai konfigurasi trigger
saat interupsi value low, naik, dan tepi, atau nilai value yang berubah-
ubah.

2
 PWM: 3, 5, 6, 9, 10, dan 11. Melayani output 8-bit PWM dengan fungsi
analogWrite().
 SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin yang support
komunikasi SPI menggunakan SPI library.
 LED: 13. Terdapat LED indikator bawaan (built-in) dihubungkan ke
digital pin 13, ketika nilai value HIGH led akan ON, saat value LOW led
akan OFF.
 Uno memiliki 6 analog input tertulis di label A0 hingga A5, masing-
masingnya memberikan 10 bit resolusi (1024). Secara asal input analog
tersebut terukuru dari 0 (ground) sampai 5 volt, itupun memungkinkan
perubahan teratas dari jarak yang digunakan oleh pin AREF dengan fungsi
analog Reference().

Sebagai tambahan, beberapa pin ini juga memeliki kekhususan fungsi antara lain:

KOMUNIKASI
Arduino Uno memiliki fasilitas nomer untuk komunikasi dengan komputer
atau hardware Arduino lainya, atau dengan mikrokontroler. Pada ATmega328
menerjemahkan serial komunikasi UART TTL (5V) pada pin 0 (RX) dan 1 (TX).
Pada ATmega16U2 serial komunikasinya dengan USB dan port virtual pada
software di komputer. Perangkat lunak (firmware) 16U2 menggunakan driver
standart USB COM dan tidak membutuhkan driver luar lainnya. Bagaimanapun
pada OS Windows file ekstensi .inf sangar diperlukan. Software Arduino bawaan
telah menyertakan serial monitor yang sangat mudah membaca dan mengirim data
dari dan ke Arduino. LED indikator TX dan RX akan kedip ketika data telah
terkirim via koneksi USB-to-serial dengan USB pada komputer (tetapi tidak pada
serial com di pin 0 dan pin 1 ).

SoftwareSerial library membolehkan banyak pin serial communication


pada Uno. ATmega328 juga support I2C (TWI) dan SPI communication.
Software Arduino terbenam di dalamnya Wire library untuk memudahkan
penggunaan bus I2C.

PEMROGRAMAN

Pemrograman board Arduino dilakukan dengan menggunakan Arduino


Software (IDE) yang bisa anda dapatkan gratis disini. Chip ATmega328 yang
terdapat pada Arduino Uno R3 telah diisi program awal yang sering disebut
bootloader. Bootloader tersebut yang bertugas untuk memudahkan anda
melakukan pemrograman lebih sederhana menggunakan Arduino Software, tanpa
harus menggunakan tambahan hardware lain. Cukup hubungkan Arduino dengan

3
kabel USB ke PC atau Mac/Linux anda, jalankan software Arduino Software
(IDE), dan anda sudah bisa mulai memrogram chip ATmega328. Lebih mudah
lagi, di dalam Arduino Software sudah diberikan banyak contoh program yang
memanjakan anda dalam belajar mikrokontroller

MEMORI

Chip ATmega328 pada Arduino Uno R3 memiliki memori 32 KB, dengan


0.5 KB dari memori tersebut telah digunakan untuk bootloader. Jumlah SRAM 2
KB,dan EEPROM 1 KB,yang dapat di baca-tulis dengan menggunakan EEPROM
library saat melakukan pemrograman.

POWER SUPPLY
Board Arduino Uno dapat ditenagai dengan power yang diperoleh dari
koneksi kabel USB, atau via power supply eksternal. Pilihan power yang
digunakan akan dilakukan secara otomatis
External power supply dapat diperoleh dari adaptor AC-DC atau bahkan
baterai, melalui jack DC yang tersedia, atau menghubungkan langsung GND dan
pin Vin yang ada di board. Board dapat beroperasi dengan power dari external
power supply yang memiliki tegangan antara 6V hingga 20V. Namun ada
beberapa hal yang harus anda perhatikan dalam rentang tegangan ini. Jika diberi
tegangan kurang dari 7V, pin 5V tidak akan memberikan nilai murni 5V, yang
mungkin akan membuat rangkaian bekerja dengan tidak sempurna. Jika diberi
tegangan lebih dari 12V, regulator tegangan bisa over heat yang pada akhirnya
bisa merusak pcb. Dengan demikian, tegangan yang di rekomendasikan adalah 7V
hingga 12V
Beberapa pin power pada Arduino Uno :

 GND. Ini adalah ground atau negatif.


 Vin. Ini adalah pin yang digunakan jika anda ingin memberikan power
langsung ke board Arduino dengan rentang tegangan yang disarankan 7V -
12V
 Pin 5V. Ini adalah pin output dimana pada pin tersebut mengalir tegangan
5V yang telah melalui regulator
 3V3. Ini adalah pin output dimana pada pin tersebut disediakan tegangan
3.3V yang telah melalui regulator
 IOREF. Ini adalah pin yang menyediakan referensi tegangan
mikrokontroller. Biasanya digunakan pada board shield untuk memperoleh
tegangan yang sesuai, apakah 5V atau 3.3V

4
II. Alat Yang Digunakan

Alat yang digunakan untuk komunikasi serial yaitu :


1. Laptop (PC)
2. Kabel USB to Arduino
3. Arduino Uno
4. Kabel penghubung
5. Variable resistor
6. Protoboard

III. Langkah Percobaan


Untuk melakukan percobaan komunikasi serial dari Visual Basic ke
Mikrokontroler berikut langkah percobaannya :

1. Buatlah Simulasi atau skematik dari rangkain adc pada sebuah software seperti
Proteus 8.6 dan Eagle

Gambar 3 . Rangkaian Proteus ADC

5
Gambar 4 . Rangkaian LDR , Potensiometer pada software eagle

2. Pasang dan sambungkan kabel arduino ke Arduino dan bagian USBnya ke PC.
Dan atur Commond pada device manager yang ada di PC.

Gambar 5 . Rangkaian Arduino ke PC

6
3. Buatlah kode program Arduino untuk menjalankan rangkaian pada percobaan
tersebut dengan menggunakan software arduino.

Gambar 6. Kode Program Arduino

4. Setelah membuat program Arduino lalu langsung saja verivy yang


dimaksudkan untuk mengecek dan mengcompile kode program apakah ada
kesalahan atau tidak ,jika tidak maka bascom arduino akan memberitahukan
letak kesalahan pada kode dengan menampilkannya dibagian bawah.

5. Lalu langkah berikutnya adalah Upload yang dimaksudkan untuk


mengirimkan kode program ke Arduino. Apabila sukses maka arduino akan
menampilkan data yang mengatakan bahwa kode sukses di Upload, apabila
tidak sukses maka bascom arduino akan memberitahu letak kesalahan yang
terjadi.

7
6. Apabila program selesai diUpload, kemudian lakukan komunikasi serial
antara Mikrokontroler dengan PC (Laptop). Aplikasi yang digunakan yaitu
Microsoft Visual Basic 6.0.

7. Kemudian buatlah view object dan view code pada Microsoft Visual Basic
6.0.

Gambar 7. View Object pada Microsoft Visual Basic 6.0

8
Gambar 8. View Code pada Microsoft Visual Basic 6.0
8. Setelah semuanya selesai, maka pengujian pada komunikasi serial dapat
dilakukan.

9
III.Hasil Percobaan
Pada percobaan kali ini adalah pengujian menggunakan rangkaian
komunikasi serial dari Mikrokontroler ke PC yaitu sebagai Analog to Digital
Converter. Pada percobaan ini arduino akan mengontrol PC, sehingga PC dapat
menampilkan nilai ADC dan nilai tegangan yang masuk oleh Mikrokontroler.
Program yang digunakan berupa Microsoft Visual Basic 6.0 yang akan
menampilkan perintah dari Arduino. Pada percobaan ini diperlukan kabel port usb
to serial untuk menghubungkan antara rangkaian port serial ke laptop.

Langkah pengujian pada rangkaian komunikasi serial yaitu sebagai berikut:


1. Program yang dibuat menggunakan software arduino diupload ke Arduino.
2. Sambungkan rangkaian ADC yang menggunakan variable resistor ke Pin A0
VCC 5volt dan ground yang ada pada Arduino menggunakan kabel
penghubung..
3. Buka program yang dibuat pada aplikasi Microsoft Visual Basic 6.0 untuk
menjalankan komunikasi serial antara laptop ke rangkaian Arduino.
4. Aturlah comport dan baudrate pada menu properties pada microsoft visual
basic 6.0.

Gambar 9. Pengaturan Comport dan Baudrate


Microsoft Visual Basic 6.0.
5. Kemudian jalankan program pada Microsoft Visual Basic 6.0 seperti berikut
ini :

10
0

Gambar 10. Simulasi Microsoft Visual Basic 6.0

Gambar 11. Tampilan Saat Menyambungkan kabel ke positive rangkaian pada


rangkaian Mikrokontroler

11
Tabel Data. Nilai ADC dan Tegangan Masuk

No. Tegangan ADC (V) Vin(V)

1 134 0.65
2 401 1.96
3 655 3.20
4 872 4.26
5 986 4.82

Pada tabel diatas kita dapat mengetahui bahwa ketika LDR diberi cahaya
yang terang , maka maka nilai ADC dan tegangan masuk mengecil dan ketika
gelap nialai ADC dan tegangan masuk membesar.

IV. Analisa Data


Program Untuk mengontrol Program VB, yaitu sebagai pengontrol tampilan
jumlah orang masuk dan keluar pada laptop (PC) dengan menggunakan Software
Arduino adalah sebagai berikut :

PROGRAM ARDUINO
/* ADC dengan Sensor LDR GERRY VERZAZTIEN ANUGRAH 5 ELB */
float sensorPin = A2; menunjukkan sensor berada pada pin Analog A2
float sensorValue = 0; variabel untuk menyimpan nilai berasal dari LDR
void setup() digunakan untuk inisialisasi variabel,setup
dijalankan sekali saat arduino direset
{
pinMode(2, OUTPUT); Pin 2 sebagai output LED (Sangat Terang)
pinMode(4, OUTPUT); Pin 4 sebagai output LED (Terang)
pinMode(7, OUTPUT); Pin 7 sebagai output LED (Sedang)
pinMode(8, OUTPUT); Pin 8 sebagai output LED (Gelap)
pinMode(12, OUTPUT); Pin 12 sebagai output LED (Sangat Gelap)
//Start Serial port
Serial.begin(9600); memulai serial untuk output ( untuk pengujian )
}
void loop() digunakan agar program berulang

12
{
sensorValue = analogRead(sensorPin); membaca nilai dari sensor
if(sensorValue<300 and sensorValue>100) digitalWrite(2, HIGH); jika nilai
sensorValue <300 dan sensorValue >100, maka kondisi output LED (Sangat
Terang) pada pin 2 akan menyala.
else digitalWrite(2, LOW); ”else” menyatakan apabila nilai >300 dan <100
maka output LED pada pin 2 akan mati.

sensorValue = analogRead(sensorPin); membaca nilai dari sensor


if(sensorValue<500 and sensorValue>300) digitalWrite(4, HIGH); jika nilai
sensorValue <500 dan sensorValue >300,maka kondisi output LED ( Terang)
pada pin 4 akan menyala.
else digitalWrite(4, LOW); else menyatakan apabila nilai >500 dan <300 maka
output LED pada pin 4 akan mati.

sensorValue = analogRead(sensorPin); membaca nilai dari sensor


if(sensorValue<700 and sensorValue>500) digitalWrite(7, HIGH); jika nilai
sensorValue <700 dan sensorValue >500, maka kondisi output LED (Sedang)
pada pin 7 akan menyala.
else digitalWrite(7, LOW); else menyatakan apabila nilai >700 dan <500 maka
output LED pada pin 7 akan mati.

sensorValue = analogRead(sensorPin); membaca nilai dari sensor


if(sensorValue<800 and sensorValue>700) digitalWrite(8, HIGH); jika nilai
sensorValue <800 dan sensorValue >700, maka kondisi output LED (Gelap)
pada pin 8 akan menyala.
else digitalWrite(8, LOW); else menyatakan apabila nilai >800 dan <700 maka
output LED pada pin 8 akan mati.

sensorValue = analogRead(sensorPin); membaca nilai dari sensor


if(sensorValue<900 and sensorValue>800) digitalWrite(12, HIGH); jika nilai
sensorValue <900 dan sensorValue >800, maka kondisi output LED (Sangat
Terang) pada pin 12 akan menyala.
else digitalWrite(12, LOW); else menyatakan apabila nilai >900 dan <800
maka output LED pada pin 12 akan mati.
Serial.print("Data= "); mencetak Data = …
Serial.print(sensorValue); mencetak nilai (0 to 1023)

13
Serial.print("Vin= "); mencetak Vin = …
Serial.print((sensorValue*5)/1024); mencetak nilai ( nilai * 5 /1024 )
Serial.println(" Volt");
delay(500); delay 500 milisecon sebelum loop berikutnya agar ADC
siap membaca data berikutnya
}

7.2 PROGRAM VISUAL BASIC


Private Sub cmdConnect_Click() Sub Program apabila cmdconnect ditekan
MSComm1.PortOpen = True Membuka port komunikasi serial
MSComm1.RThreshold = 6 Untuk menentukan Common berapa yang
digunakan
cmdDisconnect.Enabled = True disconnect tidak bekerja “benar”
mulai.Enabled = True
cmdConnect.Enabled = False connect berjalan “salah”
End Sub mengakhiri sub program
Private Sub Label2_Click() Sub program apabila label 2 ditekan
Label2.FontSize = 25 ukuran huruf pada label 2 = 25
Label2 = "GERRY VERZAZTIEN ANUGRAH"
Label 2 berisi “GERRY VERZAZTIEN ANUGRAH”
End Sub mengakhiri sub program

Private Sub cmdDisconnect_Click() sub program apabila disconnect ditekan


mulai.Enabled = False “mulai” tidak bekerja
cmdDisconnect.Enabled = False disconnect tidak bekerja
cmdConnect.Enabled = True connect berjalan
MSComm1.PortOpen = False port open tidak bekerja
End Sub mengakhiri sub program

Private Sub cmdExit_Click()


If (MsgBox("Apalah anda yakin?", vbYesNo, "Keluar") = vbYes) Then
Sub program apabila command keluar ditekan maka akan menampilkan 2
polihan diantara Iya atau Tidak, Jika “tidak” ditekan maka program tidak akan
keluar namun jika “iya” ditekan maka program akan terhenti
Unload Me perintah Me tidak berjalan
End Sub mengakhiri sub program

Private Sub Form_Load() sub program apabila Form berjalan


mulai.Enabled = False perintah mulai tidak bekerja

14
cmdDisconnect.Enabled = False perintah disconnect tidak bekerja
Timer1.Enabled = False timer 1 tidak bekerja
End Sub mengakhiri sub program

Private Sub mulai_Click() sub program apabila “mulai”ditekan


If mulai.Caption = "MULAI" Then Jika mulai = GO ditekan
mulai.Caption = "BERHENTI" maka mulai = GO berganti mulai = STOP
Timer1.Enabled = True timer 1 bekerja
Else
If mulai.Caption = "BERHENTI" Then Jika mulai = STOP ditekan
mulai.Caption = "MULAI" maka mulai = STOP berganti mulai
= GO
Timer1.Enabled = False timer 1 tidak berjalan
End If mengakhiri perintah if
End Sub mengakhiri sub program

Private Sub Timer1_Timer()


Dim lewat As String variabel lewat bertipe string
Dim temp As String variabel temp bertipe string

A = MSComm1.Input Inisial A = comm 1 di nyalakan


If A <> "" Then Hasil dari data yag di dapat dari sensor dan
With Text1 Arduino yang dikirim ke visual basic
SelStart = Len(.Text) melalui teks 1

SelText = A
End With mengakhiri perintah with
End If mengakhiri perintah if
End Sub mengakhiri sub program

Parameter- parameter yang perlu diketahui dari ADC adalah :


A. Rentang tegangan sinyal input analog. Rentang tegangan sinyal input
analog=Vref(+) – Vref(-).
B. Resolusi = 8bit
C. Resolusiyang dihasilkanadalah5V/ 1024 atau4,9 mV/unit
D. Data ADC = (Vin/Vref) x 1024

15
No. Tegangan ADC (V) Vin(V) Output
Cahaya LED
1 134 0.65 Sangat Terang
2 401 1.96 Terang
3 655 3.20 Sedang
4 872 4.26 Gelap
5 986 4.82 Sangat Gelap

Tabel Hasil Percobaan data ADC dan Vin

Perhitungan Vin terhadap data ADC yaitu dapat menggunakan rumus :

𝐍𝐢𝐥𝐚𝐢 𝐲𝐚𝐧𝐠 𝐝𝐢𝐝𝐚𝐩𝐚𝐭 𝐬𝐞𝐧𝐬𝐨𝐫 (𝐝𝐚𝐭𝐚 𝐀𝐃𝐂) 𝐱 𝟓


Vin =
𝟏𝟎𝟐𝟒

134 x 5 670
1. Vin = = = 0.654 V  0,65 V
1024 1024
401 x 5 2,005
2. Vin = = = 1.958 V  1.95 V
1024 1024
655x 5 3,275
3. Vin = = = 3.198 V  3.20 V
1024 1024
872x 5 4,360
4. Vin = = = 4.257V  4.26 V
1024 1024
986x 5 4930
5. Vin = = = 4.814 V  4.82 V
1024 1024

Apabila LDR dalam keadaan gelap maka ADC bernilai besar ( tinggi )
maka Vin pun akan semakin besar pula , begitu sebaliknya apabila LDR dalam
keadaan terang maka data ADC akan bernilai kecil ( rendah ) dan Vin akan
semakin kecil hingga 0 apabila LDR mendapat cahaya yang sangat terang. Untuk
buzzer sebagai outputnya , buzzer akan berbunyi apabila data ADC kurang dari
500 ( <500 ) jika data ADC 500 atau >500 maka bunyi buzzer akan mati ini sesuai
seperti yang kita atur pada program Arduino.

16
V. Kesimpulan
1. Pada percobaan kali ini yaitu membahas tentang Komunikasi Serial
Mengukur nilai Analog to Digital Converter dengan Microsoft Visual
Basic 6.0 dari Arduino Ke PC
2. Komunikasi serial adalah salah satu metode komunikasi data di mana
hanya satu bit data yang dikirimkan melalui seuntai kabel pada suatu
waktu tertentu.
3. Aplikasi yang digunakan untuk menjalankan rangkaian ini yaitu program
dalam bentuk aplikasi Software Arduino dan Visual Basic 6.0.
4. Apabila terjadi kesalahan/error cek kembali kode program apakah sudah
sesuai antara VB dan Software Arduino.

17
DAFTAR PUSTAKA

http://www.caratekno.com/2015/07/pengertian-arduino-uno-mikrokontroler.
( diakses tanggal 25 Desember 2017)
htmlhttp://mikrokontrolerkits.blogspot.com (diakses tanggal 25 Desember 2017)
http//id.wikipedia.org/wiki/Komunikasi_serial (diakses tanggal 26 Desember
2017)
http://rodo-heweh.blogspot.com/2007/04/perakitan-kabel-null-modem
db9db25rj45.html (diakses tanggal 26 Desember 2017)
http://desylvia.wordpress.com/2010/09/06/komunikasi-serial/ (diakses tanggal 27
Desember 2017)
http://elektro-kontrol.blogspot.co.id/2011/06/analog-to-digital-converter-adc.html
( diakses tanggal 27 desember 2017 )
http://ecadio.com/mengenal-dan-belajar-arduino-uno-r3 ( diakses tanggal 27
desember 2017 )

18