belajar mikrokontroller dengan bahasa basic

47
3 KATA PENGANTAR Alhamdulliah segala puji bagi Allah swt. yang telah memberikan nikmat dan hidayah- Nya sehingga dalam pembuatan buku pembelajaran ini bisa lancar dan tanpa suatu hambatan yang berat, tak lupa sholawat dan salam dihaturkan kepada Nabi Muhammad Saw. beserta keluarga dan sahabatnya. Terima kasih kepada segenap pihak yang ikut membantu dalam proses penerbitan buku pelatihan ini dari mulai proses koreksi ejaan, editing cover dan publishing, semoga dengan adanya buku panduan dalam belajar mikrokontroller ini bisa menjadi barokah dan berguna bagi negara dan teknologi tanah air. Latar belakang pembuatan buku ini yaitu melihat semakin majunya teknologi di zaman sekarang, munculnya berbagai macam alat yang bisa diprogram dan bisa berkomunikasi / transfer data dengan device lain, ini merupakan sebuah ladang emas bagi pemuda Indonesia yang hobi membuat robot atau perangkat elektronika, melalui buku ini diharapkan bagi pemula yang tidak mengetahui bagaimana cara memprogram mikrokontroller jadi tahu dan memahami bahasa pemprogamannya, dari tidak bisa membuat alat dan robot, setelah belajar dari modul pelatihan ini diharap sudah bisa mengembangkan ilmunya untuk membuat alat dan robot sendiri. Tujuan dari pembuatan buku ini yaitu untuk memberikan modal dasar dan pengenalan terhadap mikrokontroller menggunakan bahasa basic, sengaja dipilih bahasa basic karena lebih mudah penggunaannya dan juga pemahamannya pun jauh lebih mudah dibanding bahasa Assembly atau C. Kritik dan saran sangat kami butuhkan guna membuat buku ini lebih bisa bermanfaat lagi bagi para pecinta elektronika terutama bagi yang ingin mengenal dunia mikrokontroller. Kritik dan saran bisa dikirimkan ke E-mail berikut. [email protected] Penulis (Yanuar Mukhammad)

Upload: yuflih

Post on 12-Jul-2016

47 views

Category:

Documents


8 download

DESCRIPTION

visual basic

TRANSCRIPT

Page 1: Belajar Mikrokontroller Dengan Bahasa Basic

3

KATA PENGANTAR

Alhamdulliah segala puji bagi Allah swt. yang telah memberikan nikmat dan hidayah-Nya sehingga dalam pembuatan buku pembelajaran ini bisa lancar dan tanpa suatu hambatanyang berat, tak lupa sholawat dan salam dihaturkan kepada Nabi Muhammad Saw. besertakeluarga dan sahabatnya.

Terima kasih kepada segenap pihak yang ikut membantu dalam proses penerbitan bukupelatihan ini dari mulai proses koreksi ejaan, editing cover dan publishing, semoga denganadanya buku panduan dalam belajar mikrokontroller ini bisa menjadi barokah dan berguna baginegara dan teknologi tanah air.

Latar belakang pembuatan buku ini yaitu melihat semakin majunya teknologi di zamansekarang, munculnya berbagai macam alat yang bisa diprogram dan bisa berkomunikasi /transfer data dengan device lain, ini merupakan sebuah ladang emas bagi pemuda Indonesia yanghobi membuat robot atau perangkat elektronika, melalui buku ini diharapkan bagi pemula yangtidak mengetahui bagaimana cara memprogram mikrokontroller jadi tahu dan memahami bahasapemprogamannya, dari tidak bisa membuat alat dan robot, setelah belajar dari modul pelatihanini diharap sudah bisa mengembangkan ilmunya untuk membuat alat dan robot sendiri.

Tujuan dari pembuatan buku ini yaitu untuk memberikan modal dasar dan pengenalanterhadap mikrokontroller menggunakan bahasa basic, sengaja dipilih bahasa basic karena lebihmudah penggunaannya dan juga pemahamannya pun jauh lebih mudah dibanding bahasaAssembly atau C.

Kritik dan saran sangat kami butuhkan guna membuat buku ini lebih bisa bermanfaat lagibagi para pecinta elektronika terutama bagi yang ingin mengenal dunia mikrokontroller. Kritikdan saran bisa dikirimkan ke E-mail berikut.

[email protected]

Penulis

(Yanuar Mukhammad)

Page 2: Belajar Mikrokontroller Dengan Bahasa Basic

4

DAFTAR ISI

1. Cover..................................................................................................................................1

2. Sub Cover...........................................................................................................................2

3. Kata Pengantar ...................................................................................................................3

4. Daftar Isi ............................................................................................................................4

5. Pengenalan Mikrokontroller ..............................................................................................5

6. Pengenalan Downloader ....................................................................................................6

7. Pengenalan Software BASCOM AVR ..............................................................................7

8. Pengenalan Karakteristik Bahasa Basic.............................................................................8

9. Cara Menghubungkan Mikrokontroller ke Downloader....................................................18

10. Materi 1 Basic I/O............................................................................................................19

11. Materi 2 Basic Display.....................................................................................................23

12/ Materi 3 Basic Sensor Analog .........................................................................................25

13. Materi 4 Basic Komunikasi Serial ...................................................................................33

14. Materi 5 Basic Motor DC dan Servo ...............................................................................41

15. Tentang Penulis................................................................................................................48

16. Lampiran ..........................................................................................................................49

Page 3: Belajar Mikrokontroller Dengan Bahasa Basic

5

www.kursuselektronikaku.blogspot.com Ditulis Oleh Yanuar Mukhammad @2014

Belajar Mikrokontroller Dengan Bahasa Basic (BASCOM AVR)Mikrokontroller sangat popular dijaman sekarang apalagi teknologi sudah semakin

canggih, sehingga manusia harus bisa berinovasi untuk dapat mengimbangi teknologi yang terusberkembang, salah satu cara untuk mengimbangi perkembangan teknologi yaitu dengan caraberinovasi menggunakan perangkat mikrokontroller, mikrokontroller yaitu suatu device semikonduktor yang dapat diprogram, jadi mikrokontroller dapat diprogram supaya berjalan sepertiyang diinginkan si pembuat, biasanya mikrokontroller diposisikan sebagai otak dan pemprosesandata misalnya untuk mengolah data dari sensor, mentransfer data, menghitung input dan lainnya.Adapun langkah – langkah yang bisa dilakukan agar menguasainya, setidaknya paham tentangbasic mikrokontroller, langkah tersebut yaitu :

1. Mengetahui Basic I / 02. Mengetahui cara mengendalikan Display3. Mengetahui cara mengakses sensor analog4. Mengetahui cara mengirimkan data dan menerima data dengan serial5. Mengetahui cara mengendalikan motor DC dan Servo.

Itulah beberapa hal yang akan dibahas pada buku ini, yang mana ke lima bab tersebutadalah fundamental dari system kerja kebanyakan alat baik itu pada robot maupun pada alatuntuk pengukuran.

1. Pengenalan Mikrokontroller.

Mikrokontroller yang dibahas disini adalah mikrokontroller bertipe AVR baik ituATMega8535, ATMega16, ATMega32 dan lainnya kecuali tipe ATMega128 ke atas,mikrokontroller ini umumnya memiliki 4 buah port, yaitu PORTA, PORTB, PORTC danPORTD, pengklasifikasian port dibuat untuk memisahkan port sesuai dengan fungsi dankarakteristiknya. Berikut penjelasan masing-masing port.

PORTA- Bisa digunakan sebagai port input / output- Memiliki Fungsi Khusus yaitu sebagai port ADC (Analog to Digital Converter)- Port untuk mengakses data analag berupa tegangan dari sensor atau lainnya

PORTB- Bisa digunakan sebagai port input / output- Memiliki Fungsi Khusus untuk komunikasi SPI- Untuk dihubungkan ke downloader menggunakan lima port yaitu :

1.MOSI (Portb.5)2. MISO (Portb.6)

Page 4: Belajar Mikrokontroller Dengan Bahasa Basic

6

3. SCK (Portb.7)4. RESET (Port RST)5. GND

PORTC- Bisa digunakan sebagai port input / output- Memilki fungsi khusus yaitu untuk komunikasi I2C (PortC.0 dan PortC.1)

PORTD- Bisa digunakan sebagai port input / output- Memiliki fungsi khusus untuk port PWM yaitu PortD.4 dan PortD.5- Memiliki fungsi khusus lain yaitu untuk Interupt yaitu PortD.2 dan PortD.3- Memiliki fungsi khusus untuk komunikasi serial yaitu PortD.0 dan PortD.1

2. Perkenalan Downloader

Downloader adalah alat yang digunakan untuk mendownload program dari komputer kemikrokontroller, bentuk downloader bermacam-macam ada yang kecil, ada yang panjang danada pula yang pendek berikut tampilan downloader

Untuk mendownload program ke mikrokontroller hal yang perlu diperhatikan yaitupertama hubungkan USB Male downloader ke komputer dan kelima kabel MOSI, MISO, SCK,RESET dan GND ke mikrokontroller, kemudian pada komputer install driver untuk USB-ASP,setelah device terdeteksi maka downloader siap digunakan, gunakan program KHAZAMA AVRuntuk software downloadnya berikut langkah-langkahnya

6

3. SCK (Portb.7)4. RESET (Port RST)5. GND

PORTC- Bisa digunakan sebagai port input / output- Memilki fungsi khusus yaitu untuk komunikasi I2C (PortC.0 dan PortC.1)

PORTD- Bisa digunakan sebagai port input / output- Memiliki fungsi khusus untuk port PWM yaitu PortD.4 dan PortD.5- Memiliki fungsi khusus lain yaitu untuk Interupt yaitu PortD.2 dan PortD.3- Memiliki fungsi khusus untuk komunikasi serial yaitu PortD.0 dan PortD.1

2. Perkenalan Downloader

Downloader adalah alat yang digunakan untuk mendownload program dari komputer kemikrokontroller, bentuk downloader bermacam-macam ada yang kecil, ada yang panjang danada pula yang pendek berikut tampilan downloader

Untuk mendownload program ke mikrokontroller hal yang perlu diperhatikan yaitupertama hubungkan USB Male downloader ke komputer dan kelima kabel MOSI, MISO, SCK,RESET dan GND ke mikrokontroller, kemudian pada komputer install driver untuk USB-ASP,setelah device terdeteksi maka downloader siap digunakan, gunakan program KHAZAMA AVRuntuk software downloadnya berikut langkah-langkahnya

6

3. SCK (Portb.7)4. RESET (Port RST)5. GND

PORTC- Bisa digunakan sebagai port input / output- Memilki fungsi khusus yaitu untuk komunikasi I2C (PortC.0 dan PortC.1)

PORTD- Bisa digunakan sebagai port input / output- Memiliki fungsi khusus untuk port PWM yaitu PortD.4 dan PortD.5- Memiliki fungsi khusus lain yaitu untuk Interupt yaitu PortD.2 dan PortD.3- Memiliki fungsi khusus untuk komunikasi serial yaitu PortD.0 dan PortD.1

2. Perkenalan Downloader

Downloader adalah alat yang digunakan untuk mendownload program dari komputer kemikrokontroller, bentuk downloader bermacam-macam ada yang kecil, ada yang panjang danada pula yang pendek berikut tampilan downloader

Untuk mendownload program ke mikrokontroller hal yang perlu diperhatikan yaitupertama hubungkan USB Male downloader ke komputer dan kelima kabel MOSI, MISO, SCK,RESET dan GND ke mikrokontroller, kemudian pada komputer install driver untuk USB-ASP,setelah device terdeteksi maka downloader siap digunakan, gunakan program KHAZAMA AVRuntuk software downloadnya berikut langkah-langkahnya

Page 5: Belajar Mikrokontroller Dengan Bahasa Basic

7

1

2 4

3

1. Tekan tombol tanda 1 untuk memasukkan program .hex yang sudah di compile2. Tekan juga tombol tanda 2 untuk memasukkan file program .hex sama seperti tombol tanda 13. Pilih mikrokontroller yang digunakan pada tombol tanda 34. Kemudian tekan tombol tanda 4 untuk memulai proses download

3. Pengenalan Software Bascom AVR

Pemrograman menggunakan bahasa BASCOM-AVR adalah salah satu dari sekianbanyak bahasa basic untuk pemrograman mikrokontroler, misalnya bahasa Assembly, Bahasa C,dan lain-lain, disini dalam membuat robot dan membuat alat elektronika akan menggunakanbahasa BASIC yaitu menggunakan software BASCOM-AVR sehingga bagi yang masih pemuladalam pemrograman dapat memahami dengan mudah aturan main dari bahasa ini, karena bahasaBASIC merupakan bahasa tingkat tinggi yang sejajar dengan bahasa C, berbeda dengan bahasaAssembly yang merupakan bahasa tingkat rendah dan sukar untuk dipahami secara cepat dalamwaktu singkat. Berikut adalah gambar serta penjelasan dari layar kerja software BASCOM-AVR.

1

2

3

4

7

1

2 4

3

1. Tekan tombol tanda 1 untuk memasukkan program .hex yang sudah di compile2. Tekan juga tombol tanda 2 untuk memasukkan file program .hex sama seperti tombol tanda 13. Pilih mikrokontroller yang digunakan pada tombol tanda 34. Kemudian tekan tombol tanda 4 untuk memulai proses download

3. Pengenalan Software Bascom AVR

Pemrograman menggunakan bahasa BASCOM-AVR adalah salah satu dari sekianbanyak bahasa basic untuk pemrograman mikrokontroler, misalnya bahasa Assembly, Bahasa C,dan lain-lain, disini dalam membuat robot dan membuat alat elektronika akan menggunakanbahasa BASIC yaitu menggunakan software BASCOM-AVR sehingga bagi yang masih pemuladalam pemrograman dapat memahami dengan mudah aturan main dari bahasa ini, karena bahasaBASIC merupakan bahasa tingkat tinggi yang sejajar dengan bahasa C, berbeda dengan bahasaAssembly yang merupakan bahasa tingkat rendah dan sukar untuk dipahami secara cepat dalamwaktu singkat. Berikut adalah gambar serta penjelasan dari layar kerja software BASCOM-AVR.

1

2

3

4

7

1

2 4

3

1. Tekan tombol tanda 1 untuk memasukkan program .hex yang sudah di compile2. Tekan juga tombol tanda 2 untuk memasukkan file program .hex sama seperti tombol tanda 13. Pilih mikrokontroller yang digunakan pada tombol tanda 34. Kemudian tekan tombol tanda 4 untuk memulai proses download

3. Pengenalan Software Bascom AVR

Pemrograman menggunakan bahasa BASCOM-AVR adalah salah satu dari sekianbanyak bahasa basic untuk pemrograman mikrokontroler, misalnya bahasa Assembly, Bahasa C,dan lain-lain, disini dalam membuat robot dan membuat alat elektronika akan menggunakanbahasa BASIC yaitu menggunakan software BASCOM-AVR sehingga bagi yang masih pemuladalam pemrograman dapat memahami dengan mudah aturan main dari bahasa ini, karena bahasaBASIC merupakan bahasa tingkat tinggi yang sejajar dengan bahasa C, berbeda dengan bahasaAssembly yang merupakan bahasa tingkat rendah dan sukar untuk dipahami secara cepat dalamwaktu singkat. Berikut adalah gambar serta penjelasan dari layar kerja software BASCOM-AVR.

1

2

3

4

Page 6: Belajar Mikrokontroller Dengan Bahasa Basic

8

Penjelasan:- No.1 Adalah Layar kerja dari BASCOM-AVR yang bisaanya diisikan kode program- No.2 Adalah tampilan mikrokontroler yang digunakan melalui definisi program- No.3 Adalah Formating Tools yang bisaa digunakan untuk mengedit kode program, open

project, new file, copy-paste dan melakukan compile program setelah program tersebut jadi- No.4 Adalah Error Notification yang digunakan untuk memberitahukan bahwa program yang

dibuat terdapat kesalahan pada suatu baris dan memberikan penjelasan tentang masalaherrornya.

1

2

Penjelasan:- No.1 adalah Sub perintah yang digunakan untuk melakukan compile program sehingga

sebelum dicompile terlebih dahulu disimpan file.bas disuatu folder, kemudian dicompile makaakan terdapat file.hex didalam folder tersebut

- No.2 adalah sub perintah yang digunakan untuk melakukan pengecekan program, jika terdapatnotify pada bagian layar notification, berarti program yang dibuat masih terdapat kesalahan,jika tidak ada maka program siap untuk dilakukan compiling.

4 Karakteristik Bahasa BASCOM-AVR

Bahasa basic memiliki beberapa karakteristik yang harus diperhatikan sebelummembuat sebuah program, yaitu mengenai tipe data, variabel, konstanta, alias, pengolahanbilangan logika yang semuanya tercakup dalam operasional. Untuk bahasa basic sendiri memilikiberbagai macam perintah yang mana dapat dianalogikan secara mudah dan tidak butuh waktulama untuk mempelajarinya, sama seperti halnya bahasa C, bahasa basic juga terdapatpendeklarasian data, prosesing data dan input/output data. Berikut adalah penjelasan secaralengkap tentang bahasa yang digunakan BASCOM-AVR.

8

Penjelasan:- No.1 Adalah Layar kerja dari BASCOM-AVR yang bisaanya diisikan kode program- No.2 Adalah tampilan mikrokontroler yang digunakan melalui definisi program- No.3 Adalah Formating Tools yang bisaa digunakan untuk mengedit kode program, open

project, new file, copy-paste dan melakukan compile program setelah program tersebut jadi- No.4 Adalah Error Notification yang digunakan untuk memberitahukan bahwa program yang

dibuat terdapat kesalahan pada suatu baris dan memberikan penjelasan tentang masalaherrornya.

1

2

Penjelasan:- No.1 adalah Sub perintah yang digunakan untuk melakukan compile program sehingga

sebelum dicompile terlebih dahulu disimpan file.bas disuatu folder, kemudian dicompile makaakan terdapat file.hex didalam folder tersebut

- No.2 adalah sub perintah yang digunakan untuk melakukan pengecekan program, jika terdapatnotify pada bagian layar notification, berarti program yang dibuat masih terdapat kesalahan,jika tidak ada maka program siap untuk dilakukan compiling.

4 Karakteristik Bahasa BASCOM-AVR

Bahasa basic memiliki beberapa karakteristik yang harus diperhatikan sebelummembuat sebuah program, yaitu mengenai tipe data, variabel, konstanta, alias, pengolahanbilangan logika yang semuanya tercakup dalam operasional. Untuk bahasa basic sendiri memilikiberbagai macam perintah yang mana dapat dianalogikan secara mudah dan tidak butuh waktulama untuk mempelajarinya, sama seperti halnya bahasa C, bahasa basic juga terdapatpendeklarasian data, prosesing data dan input/output data. Berikut adalah penjelasan secaralengkap tentang bahasa yang digunakan BASCOM-AVR.

8

Penjelasan:- No.1 Adalah Layar kerja dari BASCOM-AVR yang bisaanya diisikan kode program- No.2 Adalah tampilan mikrokontroler yang digunakan melalui definisi program- No.3 Adalah Formating Tools yang bisaa digunakan untuk mengedit kode program, open

project, new file, copy-paste dan melakukan compile program setelah program tersebut jadi- No.4 Adalah Error Notification yang digunakan untuk memberitahukan bahwa program yang

dibuat terdapat kesalahan pada suatu baris dan memberikan penjelasan tentang masalaherrornya.

1

2

Penjelasan:- No.1 adalah Sub perintah yang digunakan untuk melakukan compile program sehingga

sebelum dicompile terlebih dahulu disimpan file.bas disuatu folder, kemudian dicompile makaakan terdapat file.hex didalam folder tersebut

- No.2 adalah sub perintah yang digunakan untuk melakukan pengecekan program, jika terdapatnotify pada bagian layar notification, berarti program yang dibuat masih terdapat kesalahan,jika tidak ada maka program siap untuk dilakukan compiling.

4 Karakteristik Bahasa BASCOM-AVR

Bahasa basic memiliki beberapa karakteristik yang harus diperhatikan sebelummembuat sebuah program, yaitu mengenai tipe data, variabel, konstanta, alias, pengolahanbilangan logika yang semuanya tercakup dalam operasional. Untuk bahasa basic sendiri memilikiberbagai macam perintah yang mana dapat dianalogikan secara mudah dan tidak butuh waktulama untuk mempelajarinya, sama seperti halnya bahasa C, bahasa basic juga terdapatpendeklarasian data, prosesing data dan input/output data. Berikut adalah penjelasan secaralengkap tentang bahasa yang digunakan BASCOM-AVR.

Page 7: Belajar Mikrokontroller Dengan Bahasa Basic

9

- Operasional- Tipe Data

Tipe data adalah jangkauan dari suatu variabel atau konstanta. Tipe data tersebutyaitu seperti pada tabel berikut

Tabel Tipe Data Pada Bahasa BASCOM-AVRTipe data Ukuran [byte] Range

Bit 1/8 -Byte 1 0-225Integer 2 -32.768 sampai 32.768Word 2 0-65535Long 4 -2147483648 sampai 2147483648Single 4 -String - 254 byte -

Contoh penggunaan program :Dim Gas_ref As WordDim Gas As SingleDim Lpg As String * 5Dim Vol As String * 5Dim Tegangan As SingleDim A As SingleDim Vo As SingleDim X As SingleDim Y As SingleDim Rs As SingleDim D As SingleDim E As SingleDim Ppm As SingleDim Ro As Single

- VariabelVariabel ditulis pada text program untuk menyimpan suatu pemprosesan data, Variabel

dideklarasikan jika akan digunakan dengan mengacu pada aturan variabel berikut.1. Dimulai dengan huruf2. Nama variabel tidak boleh lebih dari satu3. Tidak menggunakan spasi4. Maksimum 32 karakter5. Tidak menggunakan karakter khusus yang digunakan oleh BASCOM-AVR

Page 8: Belajar Mikrokontroller Dengan Bahasa Basic

10

Variabel dideklarasikan dengan cara berikut :

Contoh penggunaannya :Dim Gas_ref As WordDim Gas As SingleDim Lpg As String * 5Dim Vol As String * 5

- KonstantaKonstanta adalah pendeklarasian suatu nama dan memiliki nilai tetap, bisaanya suatu

konstanta telah dimasukkan suatu nilai yang digunakan untuk proses eksekusi data, biasanyasebagai acuan dalam prosesing data, seperti halnya pembagian, perkalian, pengurangan danpenambahan data berikut adalah cara penulisan konstanta:

Contoh penggunaannya :

Dim Gas_ref As Const 100Dim Gas As Const 5Dim phi As const 3.14Dim Vol As Const 15

- AliasAlias digunakan untuk mempermudah penulisan program. sebenarnya tanpa

menggunakan Alias juga bisa, namun supaya dapat dimengerti dan mudah untuk disebutkan saateksekusi perintah, maka digunakan Alias untuk memudahkan pengingatan perintah. Berikutadalah cara untuk mendefinisikan Alias.

Contoh penggunaannya :

- Aritmatik dan Rasional

Dim <Nama Variabel> As <TipeData>

Dim <NamaKonstanta>AS Const <NilaiKonstanta>

<Nama_Alias>Alias<Port_output>

Lampu_Merah Alias Portb.0Lampu_Kuning Alias Portb.1Lampu_Hijau Alias Portb.2

Page 9: Belajar Mikrokontroller Dengan Bahasa Basic

11

- Data AritmatikData Aritmatik digunakan untuk melakukan eksekusi data atau pengolahan data sebelum

data tersebut ditampilkan, biasanya aritmatik ini difungsikan sebagai pengatur dan pengolah datapada suatu main program yang diposisikan untuk input dan output data. Berikut adalah dataaritmatik.

Tabel Data AritmatikOperasi Keterangan

+ Penjumlahan- Pengurangan/ Pembagian* Perkalian% Hasil sisa pembagian^ Perpangkatan

Contoh Penggunaannya:

X = 5.15 - 7Y = X / 5Z = Y * X

A = X / ZB = A + 10C = B ^ A

- Data RasionalData rasional merupakan data yang digunakan untuk proses logika, jadi fungsi utamanya

adalah untuk memberikan suatu keadaan atau kondisi pada suatu program dimana keadaantersebut yang digunakan sebagai patokan untuk mengeksekusi data. Berikut adalah tabelpenjelasan data rasional.

Tabel Simbol Data RasionalOperasi Contoh Keterangan

= X = Y Sama dengan

< > X< >Y Tidak sama dengan

> X > Y Lebih besar dari

< X < Y Lebih kecil dari

>= X > = Y Lebih besar atau sama dengan

<= X < = Y Lebih kecil atau sama dengan

Page 10: Belajar Mikrokontroller Dengan Bahasa Basic

12

Contoh penggunaannya :

If X >= 4.45 ThenPortd = &B11110011Portb.0 = 0End If

- Pengolahan bilangan logikaPengolahan bilangan logika pada BASCOM-AVR sama halnya dengan pengolahan

bilangan logika pada bahasa C, yang mana hanya menggunakan analogi dan logika untukdidapatkan suatu kondisi tertentu, kondisi tersebut akan dijadikan patokan untuk mengeksekusisuatu data. Berikut adalah macam-macam pengolahan bilangan logika.

Tabel Pengolahan bilangan logikaOperasi Contoh KeteranganAND &B10 AND &B01 = &B10 Operasi ANDOR &B1000 OR &B0111 = &B1111 Operasi OR

NOT NOT &B111 = &B000 Operasi NOT

Cara penggunaanya :

If X > 4.45 AND X < 5 ThenPortd = &B11110011Portb.0 = 0End If

- Macam-Macam PerintahPada program BASCOM-AVR terdapat perintah-perintah yang digunakan untuk

melakukan eksekusi data, seperti halnya bahasa tingkat tinggi lainnya yang memerlukan kodeperintah agar program dapat berjalan secara baik dan benar dan sesuai harapat pembuatnya.Berikut beberapa macam perintah yang bisaa digunakan.

A. IF - THENPerintah IF-Then digunakan untuk melakukan eksekusi data sesuai dengan keadaan, jadi

jika suatu keadaan bernilai benar atau TRUE, maka perintah yang dibawah / disampingnyaTHEN akan dieksekusi, namun jika tidak, perintah tidak akan dieksekusi. Berikut adalahketerangannya.

Page 11: Belajar Mikrokontroller Dengan Bahasa Basic

13

Contoh penggunaannya :

If X >= 4.45 ThenPortd = &B11110011Portb.0 = 0End If

A. IF – THEN – ELSEPerintah IF-THEN-ELSE sejatinya sama seperti perintah IF-THEN yaitu untuk

memberikan suatu kondisi tertentu sebagai patokan untuk mengeksekusi data, jika bernilai benarmaka perintah THEN dieksekusi namun jika salah maka yang akan dijalankan adalah perintahpada bagian ELSE. Berikut keterangannya.

IF<keadaan>Then<Perintah>Else<Perintah>End IF

Contoh penggunaannya:

If X >= 4.45 ThenPortd = &B11110011ElsePortb.0 = 0End If

C. SELECT-CASEPerintah SELECT-CASE digunakan untuk pengujian keadaan yang banyak atau lebih

dari satu keadaan, sehingga pada penulisan bisa menjadi lebih sederhana dan mudah dipahami.Berikut penjelasannya.

IF<keadaan>Then<Perintah>End IF

IF<keadaan> Then<perintah1><perintah2><perintah3>End If

Page 12: Belajar Mikrokontroller Dengan Bahasa Basic

14

Select case <nama_Variabel>Case1 : <perintah1>Case2 : <perintah2>Case3 : <perintah3>

End select

Contoh penggunaanya :

Select case LampuCase1 : Lampu_menyala_1Case2 : Lampu_menyala_2Case3 : Lampu_menyala_3

End select

D. DO-LOOPPerintah DO-LOOP merupakan perintah untuk perulangan yang digunakan untuk

melakukan perulangan program selama kondisi yang diinginkan masih bernilai benar dan akanberhenti jika kondisi salah. Berikut penjelasannya.

Do<pernyataan><pernyataan><pernyataan><pernyataan>Loop

Contoh penggunaanya:doIf X >= 4.45 ThenPortd = &B11110011ElsePortb.0 = 0End If

loop

E. FOR-NEXTPerintah FOR-NEXT merupakan perintah untuk perulangan yang digunakan untuk

melakukan perulangan program sesuai dengan jumlah dan tingkat perulangannya, jadi jika

Page 13: Belajar Mikrokontroller Dengan Bahasa Basic

15

While Suhu > 30

PORTB.0 = &B11110000

Wend

diinginkan perulangan sebanyak 10 kali, maka akan dilakukan perulangan sebanyak 10 kali danakan berhenti ketika telah mencapai perulangan yang ke 10 selesai. Berikut penjelasannya.

For <Variabel = nilai_awal> To <nilai_akhir> <selisih_pertambahan><pernyataan>Next

Contoh penggunaannya:For X = 0 To 9 1Led_menyala_1Next

F. WHILE-WENDPerintah WHILE-WEND merupakan perintah untuk perulangan yang akan melakukan

perulangan apabila keadaan yang diminta telah terpenuhi. Berikut penjelasannya.

While <keadaan><perintah>Wend

Contoh penggunaannya:

G. GOSUB

Perintah GOSUB merupakan perintah untuk melakukan lompatan guna melakukanlompatan ke label yang ditunjuk dan kembali ke tempat semula setelah melakukan perintahpembacaan program, GOSUB diakhiri dengan menambahkan “Return”. Berikut penjelasannya.

Gosub<Nama_label><pernyataan><nama_label><pernyataan>Return

Contoh penggunaannya:Do

IF Suhu > 30 ThenKipas = 1ElseIf Suhu <30 ThenKipas = 0

Page 14: Belajar Mikrokontroller Dengan Bahasa Basic

16

End IfGosub Lampu

LoopLampu :

Lampu1=0Lampu2=1

Return

H. GOTOPerintah GOTO merupakan perintah untuk lompatan yang akan melakukan lompatan ke

label yang ditunjuk tanpa kembali lagi ke tempat semula setelah melakukan perintah pembacaanprogram sehingga tidak menggunakan “return”. Berikut penjelasannya

Goto<Nama_label><pernyataan><nama_label><pernyataan>

Contoh Penggunaannya:Do

IF Suhu > 30 ThenKipas = 1ElseIf Suhu <30 ThenKipas = 0End IfGoto Lampu

LoopLampu :

Lampu1=0Lampu2=1

I. EXITPerintah EXIT merupakan perintah untuk mengkhiri perulangan DO-LOOP, FOR-

NEXT-WHILE-WEND. Berikut penjelasannya.

<pernyataan>EXIT.......

Page 15: Belajar Mikrokontroller Dengan Bahasa Basic

17

Contoh Penggunaanya:Do

IF Suhu > 30 ThenKipas = 1ElseIf Suhu <30 ThenKipas = 0End IfGoto Lampu

LoopEXIT Do

While Suhu > 30PORTB.0 = &B11110000WendEXIT While

For X = 0 To 9 1Led_menyala_1NextEXIT FOR

Page 16: Belajar Mikrokontroller Dengan Bahasa Basic

18

5. Cara Menghubungkan Mikrokontroller ke Downloader

MOSIMISO

SCK Komputer

RESET

GND

Gambar Pemasangan Pin Downloader ke Mikrokontroler

Keterangan :

NAMA FUNGSI

MOSI Jalur data masuk untuk protokol SPI

MISO Jalur data keluar untuk protokol SPI

SCK Jalur clock masuk untuk protokol SPI, frekuensi maksimum 20 MHz.

RESET Pin untuk melakukan reset secara hardware, active low. Pin diberi pulsaberlogika 0 selama minimal 400 ns untuk melakukan reset.

GND Jalur referensi ground

MikrokonrolerATMega32 /ATMega8 /ATMega16 /ATMega8535Dsb.

USB-ASP

Page 17: Belajar Mikrokontroller Dengan Bahasa Basic

19

1. MATERI 1 BASIC I / O

Basic I/O adalah materi dasar mikrokontroller yang harus dikuasai dan dipahami, karenahampir semua komunikasi mikrokontroller menggunakan materi pada bab ini, maksud dari I/Oyaitu input – output, arti dari input yaitu port mikrokontroller disetting menjadi input, dan outputartinya port mikrokontroller disetting sebagai port output.

- OUTPUT

Output pada mikrokontroller ada 2 macam yaitu output 1 dan output 0, jika portmikrokontroller bernilai 1 maka akan mengeluarkan tegangan 5 volt, namun jika port bernilai 0akan mengeluarkan tegangan 0 volt atau GND, arus dari output mikrokontroller sekitar 20 mA.

Pada percobaan di bagian ini akan dipakai LED sebagai device untuk menampilkanoutput logika 1 dan logika 0 mikrokontroller, LED akan membuktikan bahwa mikrokontrollerjika bernilai 1 maka akan mengeluarkan tegangan 5 Volt dan jika bernilai 0 maka akanmengeluarkan 0 volt atau GND.

a. Bahan – bahan :- Minimum System ATMega8- LED dan Resistor 330 ohm sebanyak 8 Buah

b. Skematik rangkaian

19

1. MATERI 1 BASIC I / O

Basic I/O adalah materi dasar mikrokontroller yang harus dikuasai dan dipahami, karenahampir semua komunikasi mikrokontroller menggunakan materi pada bab ini, maksud dari I/Oyaitu input – output, arti dari input yaitu port mikrokontroller disetting menjadi input, dan outputartinya port mikrokontroller disetting sebagai port output.

- OUTPUT

Output pada mikrokontroller ada 2 macam yaitu output 1 dan output 0, jika portmikrokontroller bernilai 1 maka akan mengeluarkan tegangan 5 volt, namun jika port bernilai 0akan mengeluarkan tegangan 0 volt atau GND, arus dari output mikrokontroller sekitar 20 mA.

Pada percobaan di bagian ini akan dipakai LED sebagai device untuk menampilkanoutput logika 1 dan logika 0 mikrokontroller, LED akan membuktikan bahwa mikrokontrollerjika bernilai 1 maka akan mengeluarkan tegangan 5 Volt dan jika bernilai 0 maka akanmengeluarkan 0 volt atau GND.

a. Bahan – bahan :- Minimum System ATMega8- LED dan Resistor 330 ohm sebanyak 8 Buah

b. Skematik rangkaian

19

1. MATERI 1 BASIC I / O

Basic I/O adalah materi dasar mikrokontroller yang harus dikuasai dan dipahami, karenahampir semua komunikasi mikrokontroller menggunakan materi pada bab ini, maksud dari I/Oyaitu input – output, arti dari input yaitu port mikrokontroller disetting menjadi input, dan outputartinya port mikrokontroller disetting sebagai port output.

- OUTPUT

Output pada mikrokontroller ada 2 macam yaitu output 1 dan output 0, jika portmikrokontroller bernilai 1 maka akan mengeluarkan tegangan 5 volt, namun jika port bernilai 0akan mengeluarkan tegangan 0 volt atau GND, arus dari output mikrokontroller sekitar 20 mA.

Pada percobaan di bagian ini akan dipakai LED sebagai device untuk menampilkanoutput logika 1 dan logika 0 mikrokontroller, LED akan membuktikan bahwa mikrokontrollerjika bernilai 1 maka akan mengeluarkan tegangan 5 Volt dan jika bernilai 0 maka akanmengeluarkan 0 volt atau GND.

a. Bahan – bahan :- Minimum System ATMega8- LED dan Resistor 330 ohm sebanyak 8 Buah

b. Skematik rangkaian

Page 18: Belajar Mikrokontroller Dengan Bahasa Basic

20

c. Program BASCOM AVR$regfile = "m8def.dat"$crystal = 12000000

Ddrd.0 = 1Ddrd.1 = 1Ddrd.2 = 1Ddrd.3 = 1

Do

Portd.0 = 1Portd.1 = 0Portd.2 = 0Portd.3 = 0Wait 1

Portd.0 = 0Portd.1 = 1Portd.2 = 0Portd.3 = 0Wait 1

Portd.0 = 0Portd.1 = 0Portd.2 = 1Portd.3 = 0Wait 1

Portd.0 = 0Portd.1 = 0Portd.2 = 0Portd.3 = 1Wait 1

Loop

d. Penjelasan ProgramPada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, untuk program “DDRD.0 = 1” artinya menyetting PortD.0menjadi port output, sehingga port bisa berlogika 1 atau 0, bisa juga pendefinisian portmenggunakan perintah “Config PortD.0 = Output” itu juga sama fungsinya dengan “DDRD.0 =1”, DO-LOOP menandakan looping / perulangan program yang akan diekseksi terus menerus,kemudian program “PORTD.0 = 1” adalah program agar PortD.0 mengeluarkan tegangan 5 voltdan program “PORTD.0 = 0” adalah program agar PortD.0 mengeluarkan 0 Volt / GND, laluuntuk program “WAIT 1” untuk memberikan delay / jeda selama 1 detik.

Page 19: Belajar Mikrokontroller Dengan Bahasa Basic

21

e. Hasil Percobaan.Saat dilakukan running, maka akan terlihat led menyala bergantian, ada yang hidup dan

ada yang mati, Led yang hidup menandakan bahwa adanya arus yang mengalir dari portmikrokontroller ke GND Led sehingga Led bisa menyala namun jika Led yang mati menandakanbahwa tidak adanya arus yang mengalir pada Led.

- INPUTInput pada mikrokontroller diartikan bahwa terdapat sebuah input tegangan yang masuk

ke port mikrokontroller kemudian dibaca nilai tegangan pada port tersebut, jika tegangan portlebih dari atau sama dengan 3 volt maka port akan berlogika 1 dan jika kurang dari 3 volt makaport akan berlogika 0.

a. Bahan – bahan :1. Minimum System ATMega82. Tombol Push Button3. Led dan Resistor 330 ohm

b. Skematik Rangkaian :

21

e. Hasil Percobaan.Saat dilakukan running, maka akan terlihat led menyala bergantian, ada yang hidup dan

ada yang mati, Led yang hidup menandakan bahwa adanya arus yang mengalir dari portmikrokontroller ke GND Led sehingga Led bisa menyala namun jika Led yang mati menandakanbahwa tidak adanya arus yang mengalir pada Led.

- INPUTInput pada mikrokontroller diartikan bahwa terdapat sebuah input tegangan yang masuk

ke port mikrokontroller kemudian dibaca nilai tegangan pada port tersebut, jika tegangan portlebih dari atau sama dengan 3 volt maka port akan berlogika 1 dan jika kurang dari 3 volt makaport akan berlogika 0.

a. Bahan – bahan :1. Minimum System ATMega82. Tombol Push Button3. Led dan Resistor 330 ohm

b. Skematik Rangkaian :

21

e. Hasil Percobaan.Saat dilakukan running, maka akan terlihat led menyala bergantian, ada yang hidup dan

ada yang mati, Led yang hidup menandakan bahwa adanya arus yang mengalir dari portmikrokontroller ke GND Led sehingga Led bisa menyala namun jika Led yang mati menandakanbahwa tidak adanya arus yang mengalir pada Led.

- INPUTInput pada mikrokontroller diartikan bahwa terdapat sebuah input tegangan yang masuk

ke port mikrokontroller kemudian dibaca nilai tegangan pada port tersebut, jika tegangan portlebih dari atau sama dengan 3 volt maka port akan berlogika 1 dan jika kurang dari 3 volt makaport akan berlogika 0.

a. Bahan – bahan :1. Minimum System ATMega82. Tombol Push Button3. Led dan Resistor 330 ohm

b. Skematik Rangkaian :

Page 20: Belajar Mikrokontroller Dengan Bahasa Basic

22

c. Program BASCOM AVR$regfile = "m8def.dat"$crystal = 12000000

Ddrd.0 = 1Ddrd.7 = 0

Portd.7 = 1

Do

If Pind.7 = 0 ThenPortd.0 = 1ElsePortd.0 = 0End If

Loop

d. Penjelasan ProgramPada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, untuk program “DDRD.0 = 1” artinya menyetting PortD.0menjadi port output, sehingga port bisa berlogika 1 atau 0, bisa juga pendefinisian portmenggunakan perintah “Config PortD.0 = Output” itu juga sama fungsinya dengan “DDRD.0 =1”, untuk “DDRD.7 = 0” artinya menyetting PortD.7 sebagai port input, yang akan membacategangan yang masuk di port, DO-LOOP menandakan looping / perulangan program yang akandieksekusi terus menerus, kemudian program “PORTD.7 = 1” adalah program agar PortD.7mengeluarkan tegangan 5 volt saat tombol tidak ditekan sehingga port akan bernilai 1, namunjika tombol ditekan maka tegangan akan masuk ke GND yang akan mengakibatkan port bernilai0. Untuk program

If Pind.7 = 0 ThenPortd.0 = 1ElsePortd.0 = 0End If

Yaitu jika PortD.7 ditekan atau bernilai 0 maka pada PortD.0 akan mengeluarkantegangan 5 volt, namun jika tidak ditekan akan mengeluarkan tegangan 0 volt / GND.

Page 21: Belajar Mikrokontroller Dengan Bahasa Basic

23

e. Hasil PecobaanSaat program dirunning, maka keadaan pertama led akan mati saat tombol tidak ditekan,

namun saat tombol ditekan maka led akan menyala begitu seterusnya.

2. MATERI 2 BASIC DISPLAY

Basic display yaitu dasar-dasar pemprograman untuk mengendalikan device displayseperti LCD, 7Segment, dan lainnya, pada bab ini akan dibahas bagaimana cara menggunakanLCD 16x2 dan bagaimana cara mengakses programnya untuk menampilkan kata-kata pada layarLCD baik itu variable berupa string maupun variable yang terdapat nilainya.

a.Bahan-bahan :- Minimum System ATMega8- LCD Display 16x2 dan Variabel Resistor 10 Kohm

b. Skematik Rangkaian

23

e. Hasil PecobaanSaat program dirunning, maka keadaan pertama led akan mati saat tombol tidak ditekan,

namun saat tombol ditekan maka led akan menyala begitu seterusnya.

2. MATERI 2 BASIC DISPLAY

Basic display yaitu dasar-dasar pemprograman untuk mengendalikan device displayseperti LCD, 7Segment, dan lainnya, pada bab ini akan dibahas bagaimana cara menggunakanLCD 16x2 dan bagaimana cara mengakses programnya untuk menampilkan kata-kata pada layarLCD baik itu variable berupa string maupun variable yang terdapat nilainya.

a.Bahan-bahan :- Minimum System ATMega8- LCD Display 16x2 dan Variabel Resistor 10 Kohm

b. Skematik Rangkaian

23

e. Hasil PecobaanSaat program dirunning, maka keadaan pertama led akan mati saat tombol tidak ditekan,

namun saat tombol ditekan maka led akan menyala begitu seterusnya.

2. MATERI 2 BASIC DISPLAY

Basic display yaitu dasar-dasar pemprograman untuk mengendalikan device displayseperti LCD, 7Segment, dan lainnya, pada bab ini akan dibahas bagaimana cara menggunakanLCD 16x2 dan bagaimana cara mengakses programnya untuk menampilkan kata-kata pada layarLCD baik itu variable berupa string maupun variable yang terdapat nilainya.

a.Bahan-bahan :- Minimum System ATMega8- LCD Display 16x2 dan Variabel Resistor 10 Kohm

b. Skematik Rangkaian

Page 22: Belajar Mikrokontroller Dengan Bahasa Basic

24

c. Program BASCOM AVR$regfile = "m8def.dat"$crystal = 12000000

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Dim Nilai As Integer

Nilai = 0

Do

Locate 1 , 1Lcd "COBA LCD"

Locate 2 , 1Lcd Nilai

Incr NilaiWaitms 200Loop

d. Penjelasan Program

Pada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, untuk program konfigurasi LCD yaitu pada baris programberikut.

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Port mikrokontroller yang terhubung ke LCD hanya ada 6 buah yaitu RS, E, D4, D5, D6,dan D7 selebihnya adalah port supply, terdapat program “Rs = Portd.0” artinya port RS LCDterhubung ke PortD.0 mikrokontroller jika ingin dirubah koneksinya maka programnya harus dirubahjuga misal ke PortA atau ke port lain.

Program “Dim Nilai As Integer” adalah deklarasi bahwa variable “Nilai”merupakan variable Integer yang berupa angka bulat tanpa ada koma dibelakangnya, kemudianprogram “Nilai = 0” artinya variable nilai diisikan nilai 0 saat pertama dijalankan. Program“Locate 1 , 1” yaitu menampilkan variable string pada kolom satu baris ke satu, dan untuk“Locate 2 , 1” yaitu untuk menampilkan variable integer pada baris 2 kolom ke satu.

Page 23: Belajar Mikrokontroller Dengan Bahasa Basic

25

Untuk program “LCD “COBA LCD” “ adalah variabel string yang akan ditampilkan keLCD, begitu pula dengan “LCD Nilai “ yaitu untuk menampilkan variable integer pada LCD,lalu terdapat program “Incr Nilai” yaitu untuk melakukan penambahan 1 pada variable “Nilai”jadi tiap kali loop akan ditambahkan dengan nilai 1 sehingga nilainya akan bertambah terus danuntuk program “Waitms 200” untuk delay / jeda selama 200 milisekon.

e. Hasil Percobaan

Akan terdapat tampilan variable string pada baris pertama LCD yang bertuliskan “COBALCD” kemudian pada baris kedua terdapat nilai dari variable integer “Nilai” yang akanmelakukan penambahan tiap kali loop / perulangan dengan delay selama 200 milisekon.

3. MATERI 3 BASIC SENSOR ANALOG

Pada materi basic sensor akan dijelaskan mengenai dua buah percobaan yangmenggunakan sensor berbeda, pada percobaan pertama menggunakan sensor suhu LM35 yaitusensor untuk mendeteksi suhu ruangan atau suhu suatu benda dengan maksimal panas adalah 100derajat celcius, kemudian pada percobaan kedua menggunakan sensor cahaya yaitu Photodiodayang akan berubah nilainya jika intensitas cahaya yang diterima juga berubah, Perlu diketahuibahwa untuk mengakses sensor analog harus menggunakan port ADC mikrokontroller, ADCdigunakan untuk mengubah nilai tegangan dari sensor menjadi nilai angka / desimal sehinggadapat mempermudah pengaksesan data.

- SENSOR SUHU LM35

Sensor suhu LM35 adalah sensor yang paling umum dipakai untuk mendeteksi suhuruangan atau suhu benda, sensor ini bisa mendeteksi suhu maksimal 100 derajat celcius,tergantung tipe dari LM35 tersebut ada yang maksimal 100 derajat ada pula yang lebih dari itu,sensor LM35 akan mengeluarkan tegangan per derajat celciusnya adalah 10 mV sehingga jikategangan output LM35 adalah 0,30 volt maka suhunya adalah 30 derajat celcius. Begituseterusnya.

a. Bahan-bahan :1. Minimum System ATMega82. LCD Display 16x23. Sensor Suhu LM354. Variabel Resistor 10 Kohm

Page 24: Belajar Mikrokontroller Dengan Bahasa Basic

26

- Konfigurasi Sensor Suhu LM35

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc

26

- Konfigurasi Sensor Suhu LM35

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc

26

- Konfigurasi Sensor Suhu LM35

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Page 25: Belajar Mikrokontroller Dengan Bahasa Basic

27

Dim Dataadc As WordDim Tegangan1 As SingleDim Tegangan2 As SingleDim Suhu As Single

Dim Suhu2 As String * 5Dim Vol As String * 5

Start Adc

Cursor OffCls

Do'untuk mengambil nilai adc di PortA.0Dataadc = Getadc(0)

'konversi adc ke teganganTegangan1 = Dataadc * 5

'1023 adalah adc 10 bit, 255 untuk ac 8 bitTegangan2 = Tegangan1 / 1023

'konversi tegangan ke celciusSuhu = Tegangan2 * 100

'membulatkan menjadi 2 angka dibelakang komaVol = Fusing(tegangan2 , "#.##")Suhu2 = Fusing(suhu , "#.#")

Locate 1 , 1Lcd "Suhu = " ; Suhu2 ; " oC"

Locate 2 , 1Lcd "Volt = " ; Vol

Loop

Page 26: Belajar Mikrokontroller Dengan Bahasa Basic

28

d. Penjelasan Program

Pada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, untuk program konfigurasi LCD yaitu pada baris programberikut.

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Port mikrokontroller yang terhubung ke LCD hanya ada 6 buah yaitu RS, E, D4, D5, D6,dan D7 selebihnya adalah port supply, terdapat program “Rs = Portd.0” artinya port RS LCDterhubung ke PortD.0 mikrokontroller jika ingin dirubah koneksinya maka programnya harus dirubah

juga misal ke PortD atau ke port lain. Kemudian untuk baris program

Dim Dataadc As WordDim Tegangan2 As SingleDim Suhu2 As String * 5

Yaitu untuk merubah variable “Dataadc” menjadi tipe word, variable “Tegangan2”menjadi tipe Single dan variable “Suhu2” menjadi bertipe String yang maksimal karakter /hurufnya berjumlah lima.

Program untuk konfigurasi ADC dan mengaktifkan fitur ADC di PortA yaitumenggunakan dua baris program berikut

Config Adc = Single , Prescaler = Auto , Reference = AvccStart Adc

Kemudian untuk program “Dataadc = Getadc(0)” yaitu untuk mengambil nilai ADCpada PortA.0, karena LM35 adalah sensor suhu yang mengeluarkan tegangan perderajat celciusadalah 10mV sehingga tegangan pada sensor akan mewakili dari tingkat suhu yang terdeteksimaka dari itu bagaimana cara merubah data ADC menjadi data tegangan yaitu dengan rumus.

Vout =

Ket:Vout = Tegangan yang dicariADC = Nilai ADC yang dibaca oleh mikrokontrollerAVcc = Tegangan Referensi ADC yaitu 5 VoltFull bit Range = Batas bit maksimal ADC jika ATMega8/16/32/8535 yaitu 10 bit = 1023

Page 27: Belajar Mikrokontroller Dengan Bahasa Basic

29

Dari rumus diatas maka dibuatlah sebuah program untuk mengaksesnya berikut potonganprogram untuk konversi dari ADC ke Tegangan.

Tegangan1 = Dataadc * 5Tegangan2 = Tegangan1 / 1023

Karena yang dibutuhkan adalah nilai suhu maka harus diubah dari output tegangan sensorLM35 menjadi data suhu yaitu dengan cara mengkalikan dengan 100 sehingga akan didapat nilaisuhunya seperti program “Suhu = Tegangan2 * 100”, Setelah itu maksud dari potonganprogram berikut

Vol = Fusing(tegangan2 , "#.##")Suhu2 = Fusing(suhu , "#.#")

Yaitu untuk membuat hasil yang ditampilkan ke LCD untuk variable “Vol” adalah duaangka dibelakang koma, dan untuk variable Suhu2 adalah 2 angka dibelakang koma, program inidibuat untuk mempermudah pembacaan data, karena jika data terlalu panjang misal 5 angkadibelakang koma akan menjadi bingung dan tidak valid nilainya. Baris program yang terakhir

Locate 1 , 1Lcd "Suhu = " ; Suhu2 ; " oC"

Yaitu untuk menampilkan data nilai dari variable string “Suhu = ” dan variable singleyang telah diubah menjadi string “suhu2” ke layar LCD pada baris ke satu dan dimulai kolom kesatu.

e. Hasil Percobaan

Akan tertera tulisan berupa data suhu yang terukur dari sensor LM35 di layar LCD danjuga tegangan yang dikeluarkan oleh sensor LM35 karena tegangan yang dikeluarkan oleh sensorLM35 merupakan suhu yang terukur.

- SENSOR PHOTO DIODA

Pada bagian ini menggunakan sensor photo diode, yang harus diketahui tentang sensor iniyaitu sensor ini sensitive terhadap cahaya jika ruangan gelap atau terang akan terdapat perbedaanpada tegangan output yang diberikan, bentuk sensor ini menyerupai Led sehingga harus cermatdalam melihat sensor ini. Berikut ini adalah percobaan mengakses sensor photodiode untukmendeteksi terangnya ruangan.

Page 28: Belajar Mikrokontroller Dengan Bahasa Basic

30

a. Bahan-bahan:1. Minimum System ATMega82. Photodioda3. Resistor 4K74. LCD Display 16x25. Variabel Resistor 10 Kohm

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dim Dataadc As Word

30

a. Bahan-bahan:1. Minimum System ATMega82. Photodioda3. Resistor 4K74. LCD Display 16x25. Variabel Resistor 10 Kohm

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dim Dataadc As Word

30

a. Bahan-bahan:1. Minimum System ATMega82. Photodioda3. Resistor 4K74. LCD Display 16x25. Variabel Resistor 10 Kohm

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dim Dataadc As Word

Page 29: Belajar Mikrokontroller Dengan Bahasa Basic

31

Dim Tegangan1 As SingleDim Tegangan2 As SingleDim Vol As String * 5

Start Adc

Cursor OffCls

Do'untuk mengambil nilai adc di PortA.0Dataadc = Getadc(0)

'konversi adc ke teganganTegangan1 = Dataadc * 5

'1023 adalah adc 10 bit, 255 untuk ac 8 bitTegangan2 = Tegangan1 / 1023

'membulatkan menjadi 2 angka dibelakang komaVol = Fusing(tegangan2 , "#.##")

Locate 1 , 1Lcd "ADC = " ; Dataadc

Locate 2 , 1Lcd "Volt = " ; Vol

Loop

d. Penjelasan Program

Pada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, untuk program konfigurasi LCD yaitu pada baris programberikut.

Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2Config Lcdpin = Pin , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5Config Lcd = 16 * 2

Port mikrokontroller yang terhubung ke LCD hanya ada 6 buah yaitu RS, E, D4, D5, D6,dan D7 selebihnya adalah port supply, terdapat program “Rs = Portd.0” artinya port RS LCD

Page 30: Belajar Mikrokontroller Dengan Bahasa Basic

32

terhubung ke PortD.0 mikrokontroller jika ingin dirubah koneksinya maka programnya harus dirubah

juga misal ke PortD atau ke port lain. Kemudian untuk baris program

Dim Dataadc As WordDim Tegangan2 As SingleDim Suhu2 As String * 5

Yaitu untuk merubah variable “Dataadc” menjadi tipe word, variable “Tegangan2”menjadi tipe Single dan variable “Suhu2” menjadi bertipe String yang maksimal karakter /hurufnya berjumlah lima.

Program untuk konfigurasi ADC dan mengaktifkan fitu ADC di PortA yaitumenggunakan dua baris program berikut

Config Adc = Single , Prescaler = Auto , Reference = AvccStart Adc

Kemudian untuk program “Dataadc = Getadc(0)” yaitu untuk mengambil nilai ADCpada PortA.0, karena Photodioda adalah sensor cahaya yang mengeluarkan tegangan, maka dariitu bagaimana cara merubah data ADC menjadi data tegangan yaitu dengan rumus.

Vout =

Ket:Vout = Tegangan yang dicariADC = Nilai ADC yang dibaca oleh mikrokontrollerAVcc = Tegangan Referensi ADC yaitu 5 VoltFull bit Range = Batas bit maksimal ADC jika ATMega8/16/32/8535 yaitu 10 bit = 1023

Dari rumus diatas maka dibuatlah sebuah program untuk mengaksesnya berikut potonganprogram untuk konversi dari ADC ke Tegangan.

Tegangan1 = Dataadc * 5Tegangan2 = Tegangan1 / 1023

Setelah itu maksud dari potongan program berikut

Vol = Fusing(tegangan2 , "#.##")

Yaitu untuk membuat hasil yang ditampilkan ke LCD untuk variable “Vol” adalah duaangka dibelakang koma, program ini dibuat untuk mempermudah pembacaan data, karena jikadata terlalu panjang, misal 5 angka dibelakang koma akan menjadi bingung dan tidak validnilainya. Baris program yang terakhir

Page 31: Belajar Mikrokontroller Dengan Bahasa Basic

33

Locate 1 , 1Lcd "ADC = " ; Dataadc

Locate 2 , 1Lcd "Volt = " ; Vol

Yaitu untuk menampilkan data nilai dari variable string “Volt = ” dan variable singleyang telah diubah menjadi string “Vol” ke layar LCD pada baris ke dua dan dimulai kolom kesatu dan juga string variable “ADC = ” beserta variable word “Dataadc” yang akan ditampilkanpada baris satu kolom ke satu.

e. Hasil Percobaan

Hasil dari percobaan ini yaitu akan menampilkan perbedaan nilai tegangan output dannilai konversi adc yang diterima oleh sensor terhadap kondisi terangnya suatu ruangan ataudaerah, nilai ADC dan tegangan akan naik / turun sesuai dengan keadaan yang dialami sensor.

4. MATERI 4 BASIC KOMUNIKASI SERIAL

Komunikasi serial merupakan salah satu cara yang paling umum digunakan untukmenghubungkan antara mikrokontroller dengan device lain, misalnya komunikasimikrokontroller dengan komputer, komunikasi mikrokontroller dengan RFID atau jugakomunikasi mikrokontroller dengan mikrokontroller lain, itu hanya beberapa contoh saja,perangkat yang menggunakan komunikasi serial banyak sekali misalnya SMS Gateway denganmodem Wavecom, RFID RDM6300 atau ID-12 dan sebagainya, maka dari itu komunikasi serialmemang harus dipahami dan diketahui cara kerjanya.

Pada percobaan kali ini akan dicontohkan 2 buah jenis komunikasi serial antaramikrokontroller dengan komputer yang mana pada jenis pertama mikrokontroller sebagai masteratau pengirim data, kemudian pihak komputer sebagai slave atau penerima data, untuk jenis yangkedua yaitu kebalikannya, komputer bertindak sebagai master atau pengirim perintah, kemudianmikrokontroller bertindak sebagai slave atau penerima data, pada komunikasi serial terdapatrangkaian RS232 yang fungsinya untuk menyamakan level tegangan yang ada di komputer danmikrokontroller sehingga jika level tegangan sudah sama maka bisa dilakukan transfer datasecara nirkabel atau wireless.

Page 32: Belajar Mikrokontroller Dengan Bahasa Basic

34

1. Mikrokontroller (Master) dan Komputer (Slave)

Disini akan dicontohkan tentang bagaimana cara mengirim data sensor suhu yang telahdibahas sebelumnya ke komputer, agar bisa dipantau menggunakan software interface seperti VB6.0, Hypoterminal, Hyperterminal atau Delphi 7, karena menggunakan komputer maka hal yangharus dimiliki yaitu install dahulu software interfacenya seperti Hyperterminal atauHypoterminal.

a. Bahan-bahan :1. Minimum System ATMega82. Rangkaian RS2323. Sensor Suhu LM354. Komputer PC atau Laptop5. Software Hyperterminal / Hypoterminal

b. Skematik Rangkaian

Ke Komputer

34

1. Mikrokontroller (Master) dan Komputer (Slave)

Disini akan dicontohkan tentang bagaimana cara mengirim data sensor suhu yang telahdibahas sebelumnya ke komputer, agar bisa dipantau menggunakan software interface seperti VB6.0, Hypoterminal, Hyperterminal atau Delphi 7, karena menggunakan komputer maka hal yangharus dimiliki yaitu install dahulu software interfacenya seperti Hyperterminal atauHypoterminal.

a. Bahan-bahan :1. Minimum System ATMega82. Rangkaian RS2323. Sensor Suhu LM354. Komputer PC atau Laptop5. Software Hyperterminal / Hypoterminal

b. Skematik Rangkaian

Ke Komputer

34

1. Mikrokontroller (Master) dan Komputer (Slave)

Disini akan dicontohkan tentang bagaimana cara mengirim data sensor suhu yang telahdibahas sebelumnya ke komputer, agar bisa dipantau menggunakan software interface seperti VB6.0, Hypoterminal, Hyperterminal atau Delphi 7, karena menggunakan komputer maka hal yangharus dimiliki yaitu install dahulu software interfacenya seperti Hyperterminal atauHypoterminal.

a. Bahan-bahan :1. Minimum System ATMega82. Rangkaian RS2323. Sensor Suhu LM354. Komputer PC atau Laptop5. Software Hyperterminal / Hypoterminal

b. Skematik Rangkaian

Ke Komputer

Page 33: Belajar Mikrokontroller Dengan Bahasa Basic

35

c. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000$baud = 9600

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Dim Dataadc As WordDim Tegangan1 As SingleDim Tegangan2 As SingleDim Suhu As Single

Dim Suhu2 As String * 5Dim Vol As String * 5

Start Adc

Cursor OffCls

Do'untuk mengambil nilai adc di PortA.0Dataadc = Getadc(0)

'konversi adc ke teganganTegangan1 = Dataadc * 5

'1023 adalah adc 10 bit, 255 untuk ac 8 bitTegangan2 = Tegangan1 / 1023

'konversi tegangan ke celciusSuhu = Tegangan2 * 100

'membulatkan menjadi 2 angka dibelakang komaVol = Fusing(tegangan2 , "#.##")Suhu2 = Fusing(suhu , "#.#")

Print Suhu2

Loop

Page 34: Belajar Mikrokontroller Dengan Bahasa Basic

36

d. Penjelasan Program

Pada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, ”$baud = 9600” digunakan untuk menyetting baudratekomunikasi serial yang digunakan, kemudian untuk baris program

Dim Dataadc As WordDim Tegangan2 As SingleDim Suhu2 As String * 5

Yaitu untuk merubah variable “Dataadc” menjadi tipe word, variable “Tegangan2”menjadi tipe Single dan variable “Suhu2” menjadi bertipe String yang maksimal karakter /hurufnya berjumlah lima.

Program untuk konfigurasi ADC dan mengaktifkan fitu ADC di PortA yaitumenggunakan dua baris program berikut

Config Adc = Single , Prescaler = Auto , Reference = AvccStart Adc

Kemudian untuk program “Dataadc = Getadc(0)” yaitu untuk mengambil nilai ADCpada PortA.0, karena LM35 adalah sensor suhu yang mengeluarkan tegangan perderajat celciusadalah 10mV sehingga tegangan pada sensor, akan mewakili dari tingkat suhu yang terdeteksi,maka dari itu bagaimana cara merubah data ADC menjadi data tegangan yaitu dengan rumus.

Vout =

Ket:Vout = Tegangan yang dicariADC = Nilai ADC yang dibaca oleh mikrokontrollerAVcc = Tegangan Referensi ADC yaitu 5 VoltFull bit Range = Batas bit maksimal ADC jika ATMega8/16/32/8535 yaitu 10 bit = 1023

Dari rumus diatas maka dibuatlah sebuah program untuk mengaksesnya berikut potonganprogram untuk konversi dari ADC ke Tegangan.

Tegangan1 = Dataadc * 5Tegangan2 = Tegangan1 / 1023

Karena yang dibutuhkan adalah nilai suhu maka harus diubah dari output tegangan sensorLM35 menjadi data suhu yaitu dengan cara mengkalikan dengan 100 sehingga akan didapat nilai

Page 35: Belajar Mikrokontroller Dengan Bahasa Basic

37

suhunya seperti program “Suhu = Tegangan2 * 100”, Setelah itu maksud dari potonganprogram berikut

Vol = Fusing(tegangan2 , "#.##")Suhu2 = Fusing(suhu , "#.#")

Yaitu untuk membuat hasil yang ditampilkan ke LCD untuk variable “Vol” adalah duaangka dibelakang koma, dan untuk variable Suhu2 adalah 2 angka dibelakang koma, program inidibuat untuk mempermudah pembacaan data, karena jika data terlalu panjang misal 5 angkadibelakang koma akan menjadi bingung dan tidak valid nilainya. Baris program yang terakhir

Print Suhu2

Yaitu untuk mengirimkan data berupa variable string “Suhu2” secara serial ke komputer,sehingga melalui rangkaian RS232 data dapat diterima dengan baik oleh komputer.

e. Hasil Percobaan

Untuk melihat hasil yang dikirimkan oleh mikrokontroller, langkah pertama yaitumembuka software interface Hypoterminal, pilih baudrate dan COM Port yang digunakan,kemudian setting seperti berikut

Bits per second = 9600

Data bits = 8

Parity = None

Stop Bits = 1

Flow Control = None

5 6 7

1

2

3

4

37

suhunya seperti program “Suhu = Tegangan2 * 100”, Setelah itu maksud dari potonganprogram berikut

Vol = Fusing(tegangan2 , "#.##")Suhu2 = Fusing(suhu , "#.#")

Yaitu untuk membuat hasil yang ditampilkan ke LCD untuk variable “Vol” adalah duaangka dibelakang koma, dan untuk variable Suhu2 adalah 2 angka dibelakang koma, program inidibuat untuk mempermudah pembacaan data, karena jika data terlalu panjang misal 5 angkadibelakang koma akan menjadi bingung dan tidak valid nilainya. Baris program yang terakhir

Print Suhu2

Yaitu untuk mengirimkan data berupa variable string “Suhu2” secara serial ke komputer,sehingga melalui rangkaian RS232 data dapat diterima dengan baik oleh komputer.

e. Hasil Percobaan

Untuk melihat hasil yang dikirimkan oleh mikrokontroller, langkah pertama yaitumembuka software interface Hypoterminal, pilih baudrate dan COM Port yang digunakan,kemudian setting seperti berikut

Bits per second = 9600

Data bits = 8

Parity = None

Stop Bits = 1

Flow Control = None

5 6 7

1

2

3

4

37

suhunya seperti program “Suhu = Tegangan2 * 100”, Setelah itu maksud dari potonganprogram berikut

Vol = Fusing(tegangan2 , "#.##")Suhu2 = Fusing(suhu , "#.#")

Yaitu untuk membuat hasil yang ditampilkan ke LCD untuk variable “Vol” adalah duaangka dibelakang koma, dan untuk variable Suhu2 adalah 2 angka dibelakang koma, program inidibuat untuk mempermudah pembacaan data, karena jika data terlalu panjang misal 5 angkadibelakang koma akan menjadi bingung dan tidak valid nilainya. Baris program yang terakhir

Print Suhu2

Yaitu untuk mengirimkan data berupa variable string “Suhu2” secara serial ke komputer,sehingga melalui rangkaian RS232 data dapat diterima dengan baik oleh komputer.

e. Hasil Percobaan

Untuk melihat hasil yang dikirimkan oleh mikrokontroller, langkah pertama yaitumembuka software interface Hypoterminal, pilih baudrate dan COM Port yang digunakan,kemudian setting seperti berikut

Bits per second = 9600

Data bits = 8

Parity = None

Stop Bits = 1

Flow Control = None

5 6 7

1

2

3

4

Page 36: Belajar Mikrokontroller Dengan Bahasa Basic

38

Keterangan:

- No.1 adalah pengaturan untuk stop bits

- No.2 adalah pengaturan untuk Parity

- No.3 adalah pengaturan untuk data bits

- No.4 adalah pengaturan untuk Bits per second

- No.5 adalah COM Port yang aktif atau yang siap digunakan, untuk mengetahui COM Port yangdigunakan oleh mikrokontroler, terlebih dahulu melihat pada bagian Device and printer padakomputer windows 7, yang mana disana terdapat COM Port yang digunakan olehmikrokontroler. Jika telah terdapat COM Port yang digunakan, maka ganti COM Port defaultdengan COM Port yang dituju

- No.6 adalah tombol connect yang fungsinya untuk memulai hubungan antara komputer denganmikrokontroler secara serial.

- No.7 adalah tampilan layar atau tempat data yang akan diterima oleh komputer darimikrokontroler atau juga bisa sebaliknya yaitu untuk mengirimkan data ke mikrokontroler

Setelah disetting COM Port dan Baudrate-nya kemudian Tekan tombol No. 5 / TombolConnect maka data suhu yang dikirimkan oleh mikrokontroller akan tampil pada layat No.7.

2. Mikrokontroller (Slave) dan Komputer (Master)

Pada percobaan kedua komunikasi serial, disini akan dibahas bagaimana caramengirimkan perintah atau data ke mikrokontroller kemudian data atau perintah tersebutdigunakan untuk mengekseskusi device output seperti Led, Buzzer dan lainnya, jadi misalkomputer mengirimkan angka “1” ke mikrokontroller, maka mikrokontroller akan menerimanya,selanjutnya mikrokontroller akan menghidupkan Led jika data / perintah yang diterimanyaberupa angka “1”, selain angka “1” mikrokontroller tidak akan menghidupkan Led.

a. Bahan-bahan :1. Minimum System ATMega82. Rangkaian RS2323. Led dan Resistor 330 ohm4. Komputer PC atau Laptop

Page 37: Belajar Mikrokontroller Dengan Bahasa Basic

39

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = " m8def.dat"$crystal = 12000000$baud = 9600

DDRA.0 = 1

Dim Perintah As String * 1DoPerintah = Waitkey()Select Case PerintahCase "1" : ‘hidupkan led

PortA.0 = 1Case "2" : ‘matikan led

PortA.0 = 0Case "3" : ‘matikan led

PortA.0 = 0

39

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = " m8def.dat"$crystal = 12000000$baud = 9600

DDRA.0 = 1

Dim Perintah As String * 1DoPerintah = Waitkey()Select Case PerintahCase "1" : ‘hidupkan led

PortA.0 = 1Case "2" : ‘matikan led

PortA.0 = 0Case "3" : ‘matikan led

PortA.0 = 0

39

b. Skematik Rangkaian

c. Program BASCOM AVR

$regfile = " m8def.dat"$crystal = 12000000$baud = 9600

DDRA.0 = 1

Dim Perintah As String * 1DoPerintah = Waitkey()Select Case PerintahCase "1" : ‘hidupkan led

PortA.0 = 1Case "2" : ‘matikan led

PortA.0 = 0Case "3" : ‘matikan led

PortA.0 = 0

Page 38: Belajar Mikrokontroller Dengan Bahasa Basic

40

End SelectLoop

d. Penjelasan Program

Pada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal

= 12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystal

yang digunakan adalah 12Mhz, ”$baud = 9600” digunakan untuk menyetting baudratekomunikasi serial yang digunakan.

Program “DDRA.0 = 1” untuk mendefinisikan PortA.0 sebagai output, kemudianprogram “Dim Perintah As String * 1” untuk mendeklarasika variable yangdigunakan bertipe string dengan panjang karakter maksimal 1 huruf, pada potongan program“Perintah = Waitkey()” untuk mengambil data yang dikirimkan oleh komputer melaluiport serial mikrokontroller. Lalu potongan program berikut

Select Case PerintahCase "1" : ‘hidupkan led

PortA.0 = 1Case "2" : ‘matikan led

PortA.0 = 0End Select

Digunakan untuk mengekseskusi perintah yang dikirimkan oleh komputer, jika data yangdikirimkan oleh komputer adalah angka “1” maka Led akan menyala, namun selain angka “1”Led tidak akan menyala

e. Hasil Percobaan

Untuk Melihat hasilnya, langkah pertama yaitu mengaktifkan dahulu programHypoterminal dengan memastikan bahwa kabel Port Serial sudah terpasang dan terdeteksi olehkomputer dengan baik, langkah kedua, pada Hypoterminal pilih baudrate 9600 bps dan portCOM yang merupakan koneksi serial dari Rangkaian RS232 , jika telah terpilih maka tekantombol connect. Seperti pada gambar berikut.

Page 39: Belajar Mikrokontroller Dengan Bahasa Basic

41

Tekan tombol angka 1 pada keyboard komputer untuk menghidupkan led dan tombolangka 2 untuk mematikan led, begitu pula dengan tombol 3 atau yang lainnya, selain tombol 1maka hasilnya Led akan tetap mati.

5. MATERI 5 BASIC KENDALI MOTORPada bab ini percobaan yang akan dilakukan mengenai bagaimana cara mengendalikan

arah putaran motor DC dan kecepatannya, selain itu juga bagaimana mengendalikan motor servoagar bergerak sesuai harapan, memang aplikasi bab ini bisaanya digunakan untuk robot berodamaupun robot berkaki, yang mana jika robot beroda akan menggunakan motor DC sebagaipenggeraknya sedangkan robot berkaki akan menggunakan motor servo sebagai alat untukmenggerakkan kaki robotnya.

1. Mengendalikan Motor DC

Materi pengendalian motor sangatlah banyak dan umum digunakan, baik itu untukkendali pintu, robot, kipas, dan lainnya, maka dari itu materi ini sangat penting, untukmengendalikan kecepatan dan arah putaran motor DC harus menggunakan device tambahanyaitu motor driver, motor driver yang dipakai yatu menggunakan IC L298 yang mana memilikikapasitas dapat mengendalikan 2 buah motor DC, perlu diperhatikan bahwa kontrol kecepatanmotor menggunakan Port PWM1A dan PWM1B atau OC1A dan OC1B. Percobaan berikutmempelajari cara untuk mengendalikan kecepatan putaran motor DC dan arahnya.

a. Bahan-bahan :

1. Minimum System ATMega82. Driver Motor L2983. Motor DC

41

Tekan tombol angka 1 pada keyboard komputer untuk menghidupkan led dan tombolangka 2 untuk mematikan led, begitu pula dengan tombol 3 atau yang lainnya, selain tombol 1maka hasilnya Led akan tetap mati.

5. MATERI 5 BASIC KENDALI MOTORPada bab ini percobaan yang akan dilakukan mengenai bagaimana cara mengendalikan

arah putaran motor DC dan kecepatannya, selain itu juga bagaimana mengendalikan motor servoagar bergerak sesuai harapan, memang aplikasi bab ini bisaanya digunakan untuk robot berodamaupun robot berkaki, yang mana jika robot beroda akan menggunakan motor DC sebagaipenggeraknya sedangkan robot berkaki akan menggunakan motor servo sebagai alat untukmenggerakkan kaki robotnya.

1. Mengendalikan Motor DC

Materi pengendalian motor sangatlah banyak dan umum digunakan, baik itu untukkendali pintu, robot, kipas, dan lainnya, maka dari itu materi ini sangat penting, untukmengendalikan kecepatan dan arah putaran motor DC harus menggunakan device tambahanyaitu motor driver, motor driver yang dipakai yatu menggunakan IC L298 yang mana memilikikapasitas dapat mengendalikan 2 buah motor DC, perlu diperhatikan bahwa kontrol kecepatanmotor menggunakan Port PWM1A dan PWM1B atau OC1A dan OC1B. Percobaan berikutmempelajari cara untuk mengendalikan kecepatan putaran motor DC dan arahnya.

a. Bahan-bahan :

1. Minimum System ATMega82. Driver Motor L2983. Motor DC

41

Tekan tombol angka 1 pada keyboard komputer untuk menghidupkan led dan tombolangka 2 untuk mematikan led, begitu pula dengan tombol 3 atau yang lainnya, selain tombol 1maka hasilnya Led akan tetap mati.

5. MATERI 5 BASIC KENDALI MOTORPada bab ini percobaan yang akan dilakukan mengenai bagaimana cara mengendalikan

arah putaran motor DC dan kecepatannya, selain itu juga bagaimana mengendalikan motor servoagar bergerak sesuai harapan, memang aplikasi bab ini bisaanya digunakan untuk robot berodamaupun robot berkaki, yang mana jika robot beroda akan menggunakan motor DC sebagaipenggeraknya sedangkan robot berkaki akan menggunakan motor servo sebagai alat untukmenggerakkan kaki robotnya.

1. Mengendalikan Motor DC

Materi pengendalian motor sangatlah banyak dan umum digunakan, baik itu untukkendali pintu, robot, kipas, dan lainnya, maka dari itu materi ini sangat penting, untukmengendalikan kecepatan dan arah putaran motor DC harus menggunakan device tambahanyaitu motor driver, motor driver yang dipakai yatu menggunakan IC L298 yang mana memilikikapasitas dapat mengendalikan 2 buah motor DC, perlu diperhatikan bahwa kontrol kecepatanmotor menggunakan Port PWM1A dan PWM1B atau OC1A dan OC1B. Percobaan berikutmempelajari cara untuk mengendalikan kecepatan putaran motor DC dan arahnya.

a. Bahan-bahan :

1. Minimum System ATMega82. Driver Motor L2983. Motor DC

Page 40: Belajar Mikrokontroller Dengan Bahasa Basic

42

b. Skematik Rangkaian

c. Skematik Motor Driver L298

5v 12v

12v 12v Motor DC 1

Motor DC 2

42

b. Skematik Rangkaian

c. Skematik Motor Driver L298

5v 12v

12v 12v Motor DC 1

Motor DC 2

42

b. Skematik Rangkaian

c. Skematik Motor Driver L298

5v 12v

12v 12v Motor DC 1

Motor DC 2

Page 41: Belajar Mikrokontroller Dengan Bahasa Basic

43

Untuk system pemasangan motor driver ke rangkaian minimum system dapat dilihat padagambar dibawah, terdapat fungsi pada masing-masing port yang terdapat pada L298, maka dariitu perlunya ketelitian dan keterampilan dalam menyambungkannya

ke PortB.1ke PortB.2

ke PortD.7ke PortD.6ke PortD.5ke PortD.4

Perlu diperhatikan pada ENABLE_A dan ENABLE_B, pada port tersebut adalah portuntuk PWM dari mikrokontroler yang masuk ke L298, apa fungsi dari PWM?, fungsi dari PWMdisini yaitu untuk mengatur kecepatan putaran motor, sehingga jika ingin motor DC berjalankencang maka isilah dengan nilai maksimal yaitu PWM = 0, jika ingin pelan isilah nilai PWM =255 atau 220, pada program terletak pada bagian berikut.

Pwm1a = 100Pwm1b = 100

Artinya PWM A diberikan nilai 100 dan PWM B diberikan nilai 100 juga, untuk fungsidari keempat input dari L298 yaitu untuk mengendalikan arah putaran motor (maju ataumundur), berikut adalah table konfigurasi dari motor driver.

Tabel Konfigurasi Input Motor Driver

PORT Maju Mudur Belok Kiri Belok Kanan

Enable_A 100 100 255 255

Enable_B 100 100 255 255

Input 1 1 0 0 1

Input 2 0 1 0 0

Input 3 1 0 1 0

Input 4 0 1 0 0

Page 42: Belajar Mikrokontroller Dengan Bahasa Basic

44

d. Program BASCOM AVR

$regfile = "m8def.dat"$crystal = 12000000

'setting pwmConfig Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = ClearDown , Compare B Pwm = Clear Down

'deklarasi motor 1Dirkiri1 Alias Portd.5Dirkiri2 Alias Portd.4

'deklarasi motor 2Dirkanan1 Alias Portd.6Dirkanan2 Alias Portd.7

Config Portd.5 = OutputConfig Portd.4 = Output

Config Portd.6 = OutputConfig Portd.7 = Output

Do

'arah putaran

'searah jarum jamDirkanan1 = 0Dirkanan2 = 1

'kecepatanPwm1a = 100

'melawan arah jarum jamDirkiri1 = 1Dirkiri2 = 0

'kecepatanPwm1b = 100

Loop

Page 43: Belajar Mikrokontroller Dengan Bahasa Basic

45

e. Penjelasan Program

Pada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, dan fungsi dari program “Config Timer1 = Pwm , Pwm =8 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear

Down” yaitu untuk menyetting PWM yang akan digunakan, PWM digunakan dengan full range8 bit, artinya maksimal 255, dan menggunakan Clear Down yaitu besarnya PWM akan merubahlebar pulsa nilai 0 (Low), sebaliknya jika Clear Up maka PWM akan merubah lebar dari pulsanilai 1 (high).

Kemudian untuk “Dirkiri1 Alias Portd.5” maksudnya memberikan nama “Dirkiri”kepada PortD.5 agar mudah dalam melakukan eksekusi dan pemanggilan port, program “Dirkiri1 =1 “ artinya yaitu PortD.5 = 1, terdapat dua PWM yaitu PWM1a untuk motor 1 dan PWM1b untuk motor2jadi semakin kecil nilai PWMnya maka kecepatan motor semakin cepat, sebaliknya, jika semakin tinggimendekati 255 maka kecepatan motor semakin rendah, berikut baris program untuk mengakses kecepatanmotornya

Pwm1a = 100Pwm1b = 100

f. Hasil Percobaan

Setelah program didownload ke mikrokontroller maka akan tampak 2 motor DC yangberputar dengan kecepatan PWM = 100, rubahlah kecepatannya agar dapat mengetahui seberapakecepatan maksimal dan minimal motor DC dan juga rubahlah kombinasi dari “Dirkiri” dan“Dirkanan” agar dapat mengetahui bagaimana cara merubah arah putaran motor DC.

2. Mengendalikan Putaran Motor Servo

Motor servo berbeda dengan motor DC, motor servo memiliki radius putaran hanya 360derajat atau satu putaran saja, namun jika motor DC tidak ada radius maksimalnya, maka dari itucara mengakses motor servo sangatlah berbeda dengan motor DC, jika motor servo yangdigunakan hanya 1 atau 2 buah saja tidak perlu menggunakan driver servo namun jika motorservo yang digunakan misal lebih 10 buah maka harus menggunakan driver servo. Motor servoberputar sesuai dengan lebar pulsa yang diberikan oleh mikrokontroller, sehingga jika lebar pulsayang diberikan berbeda dengan lebar pulsa sebelumnya maka akan terlihat perpindahan motorservo namun jika lebar pulsa yang diberikan sama dengan yang sebelumnya maka tidak akantampak pergerakan dari motor servo.

Page 44: Belajar Mikrokontroller Dengan Bahasa Basic

46

a. Bahan - bahan :1. Minimum System ATMega82. Mikro Servo

b. Skematik rangkaian

c. Program BASCOM AVR

$regfile = "m16def.dat"$crystal = 12000000$baud = 9600

Config Servos = 1 , Servo1 = Portb.0 , Reload = 10Config Portb.0 = Output

Enable Interrupts

Servo(1) = 220

Do

Servo(1) = 135Wait 1

Servo(1) = 90Wait 1

Loop

46

a. Bahan - bahan :1. Minimum System ATMega82. Mikro Servo

b. Skematik rangkaian

c. Program BASCOM AVR

$regfile = "m16def.dat"$crystal = 12000000$baud = 9600

Config Servos = 1 , Servo1 = Portb.0 , Reload = 10Config Portb.0 = Output

Enable Interrupts

Servo(1) = 220

Do

Servo(1) = 135Wait 1

Servo(1) = 90Wait 1

Loop

46

a. Bahan - bahan :1. Minimum System ATMega82. Mikro Servo

b. Skematik rangkaian

c. Program BASCOM AVR

$regfile = "m16def.dat"$crystal = 12000000$baud = 9600

Config Servos = 1 , Servo1 = Portb.0 , Reload = 10Config Portb.0 = Output

Enable Interrupts

Servo(1) = 220

Do

Servo(1) = 135Wait 1

Servo(1) = 90Wait 1

Loop

Page 45: Belajar Mikrokontroller Dengan Bahasa Basic

47

d. Penjelasan Program

Pada program diatas terdapat perintah $regfile = "m8def.dat" dan $crystal =

12000000 artinya mendefinisikan mikrokontroller yang dipakai yaitu ATMega8 dan crystalyang digunakan adalah 12Mhz, dan untuk baris program “Config Servos = 1 , Servo1 =Portb.0 , Reload = 10” artinya menggunakan 1 servo yang dihubungkan ke PortB.0dengan update data variable servo tiap 10uS oleh interrupt.

Kemudian untuk program “Enable Interrupts” yaitu untuk mengaktifkan fungsiinterrupt pada internal mikrokontroller, setelah itu maksud dari program Servo(1) = 135,Wait 1 , yaitu akan menggerakkan servo (1) yang terdapat di PortB.0 pada posisi 135, “wait1” untuk memberikan delay selama 1 detik.

e. Hasil Percobaan

.Untuk hasil percobaan yang didapat yaitu motor servo akan bergerak sesuai posisi yangdiberikan pada program, motor servo akan bergantian bergerak ke posisi 135 kemudianberpindah ke posisi 90 secara terus menerus dengan delay atau tundaan selama 1 detik

Page 46: Belajar Mikrokontroller Dengan Bahasa Basic

48

Tentang Penulis

Nama : Yanuar MukhammadTTL : Pekalongan, 20 Februari 1991Zodiak : Pisces

Pengalaman Kuliah :- D3 UGM Jurusan Elektronika dan Instrumentasi- S1 ITS Jurusan Elektronika

Hobi :- Menulis- Membuat robot- Membuat alat elektronika- Bermain piano

Pekerjaan :- Mengajar elektronika- Menulis buku- Membuat alat dan robot

Email :- [email protected]

48

Tentang Penulis

Nama : Yanuar MukhammadTTL : Pekalongan, 20 Februari 1991Zodiak : Pisces

Pengalaman Kuliah :- D3 UGM Jurusan Elektronika dan Instrumentasi- S1 ITS Jurusan Elektronika

Hobi :- Menulis- Membuat robot- Membuat alat elektronika- Bermain piano

Pekerjaan :- Mengajar elektronika- Menulis buku- Membuat alat dan robot

Email :- [email protected]

48

Tentang Penulis

Nama : Yanuar MukhammadTTL : Pekalongan, 20 Februari 1991Zodiak : Pisces

Pengalaman Kuliah :- D3 UGM Jurusan Elektronika dan Instrumentasi- S1 ITS Jurusan Elektronika

Hobi :- Menulis- Membuat robot- Membuat alat elektronika- Bermain piano

Pekerjaan :- Mengajar elektronika- Menulis buku- Membuat alat dan robot

Email :- [email protected]

Page 47: Belajar Mikrokontroller Dengan Bahasa Basic

49

LAMPIRAN

Jual modul elektronika untuk latihan :

Berminat hubungi kami E-mail = [email protected]

1. Minimum System ATMega16 = Rp. 150.000

2. Downloader USB-ASP = Rp. 100.000

3. Rangkaian Serial RS232 + Kabel Konverter To USB = Rp. 100.000