• Tidak ada hasil yang ditemukan

Buku-Mikrokontroler Menggunakan PIC.pdf

N/A
N/A
Protected

Academic year: 2021

Membagikan "Buku-Mikrokontroler Menggunakan PIC.pdf"

Copied!
53
0
0

Teks penuh

(1)

Pemograman Praktis Mikrokontroler

Menggunakan PIC untuk Aplikasi Robot

Oleh

Dr. Riza Muhida

Topics:

1. Anatomi Robot. (0.5 h)

2. Pengantar Mikrokontroler. (0.5 h)

3. Membuat Proyek Sederhana dengan PIC sperti: Lampu lalu Lintas,

Sistem Keamanan, membaca data dari sensor. (1.5 h)

4. Bagaimana Mengontrol Motor Menggunakan Mikrokontroler. (0.5 h)

International Islamic University Malaysia

2008

(2)

Bab 1

Anatomi Robot

1.1 Sejarah dan Perkembangan Robot

Kata robot pertama kali diperkenalakan oleh seorang penulis dari Czech yang bernama Karel pada tahun 1921 dalam karya sastranya. Kata Robot berasal dari kata ‘robota’ yang berarti: pekerja sendiri.

Sejarah robot bermula ketika sistem otomatis dibuat oleh Jacques de Vaucanson pada tahun 1938, yang membuat bebek mekanik yang dapat memakan dan mencincang biiji bijian, membuka dan menutup sayapnya. Kemudian tahun 1796, Hisashine Tanaga di Jepang berhasil membuat mainan mekanik yang dapat mnghidangkan the dan menulis huruf kanji. Lalu 1926, Nikola Tesla mendemintrasikan perahu bot yang dapat dikontrol dengan radio. Tahun 1928, Makoto Nishimura membuat robot pertama di Jepang.

Sejalan dengan perkembangan teknologi Elektronika, maka perkembangan robot ini melaju pesat, seprti tahun 1948, William Grey Walter membuat robot elektronik otomatis pertama dimana robot ini dapat merespon cahaya dan dapat melakukan kontak dengan objek dari luar. Pada tahun 1954, saat dimulainya zaman digital, sebuah robot digital yang dapat deprogram ditemukan oleh George Devol.

Pada abad modern ini sudah bermacam-macam robot yang dicipta dan digunakan seperti dalam industri, rumah sakit, transportasi, pendidikan dan kehidupan sehari-hari. Seperti robot yang digunakan untuk mengecat mobil, robot yang digunakan untuk merakit komponen elektronik dan juga humanoid robot yaiitu robot yang memiliki muka, yang mampu berjalan dan bertindak seperti manusia.

1.2. Fungsi Robot

Ada beberapa fungsi robot, sehingga manusia memerlukan kehadirannya yaitu:

1. Meningkatkan Produksi, akurasi dan daya tahan. Robot ini banya digunakan di industri.

2. Untuk tugas-tugas yang berbahaya, kotor dan beresiko. Robot ini digunakan ketika manusia tidak mampu masuk ke daerah yang beresiko. Seperti Robot Untuk menjelajah planet, robot untuk mendeteksi limbah nuklir, robot militer dll. 3. Untuk pendidikan. Banyak robot yang digunakan untuk menarik pelajar belajar

teknologi seprti robot Lego dll.

4. Untuk menolong manusia. Seperti di rumah untuk membersihkan rumah pakai penghisap debu otomatis, di rumah sakit untuk menghantar makanan, membantu operasi dll.

1.3. Sifat Robot Beberapa sifat robot:

1. Tidak alamiah atau sesuatu yang dibuat.

2. Bisa merasai, memanipulasi dan berinteraksi dengan lingkungan yang diberikan. 3. Memiliki kemampuan untuk memilih berdasarkan kondisi lingkungan yang

(3)

4. Diprogram. 5. Bergerak.

Kalau melihat sifat-sifat tersebut banyak benda yang bisa dimasukkan dalam robot. Seperti mesin cuci otomatis, escalator otomatis, pintu yang dapat membuka dan menutup sendiri. Tapi ada juga yang tidak dapat didefinisikan sebagai robot, seperti mobil (kecuali mobil otomatis), mesin pemotong rumput, hair dryer dll, dimana alat-alat ini termasuk mesin bukan robot. Dari karakteristik di atas semua robot adalah mesin, tapi tidak semua mesin adalah robot.

1.4. Anatomi Robot

Minimal ada 3 komponen penyususn robot, yaitu:

1. Adanya sensor, yaitu komponen yang dapat merespon kondosi lingkungan yang diberikan. Sensor ini bdapat berupa sensor cahaya, suara, suhu, tekanan dll.

2. Adanya Aktuator atau penggerak, yaitu komponen yang menhasilkan gerak mekanik, actuator ini dapat berupa motor, relay, pnematik atau hidrolik actuator. 3. Adanya Mikrokontroler. Sebagai pusat pemikir untuk memproses data dari sensor

dan memerintahkan actuator untuk bertindak. 1.5 Perbandingan antara Robot dan Manusia

Gambar 1-1. a dan 1-1.b menunjukkan perbandingan struktur antara robot dan manusia. Dimana manusia memungkinkan membuat sebuah robot yang hamper mirif dengan dirinya.

Gambar 1-1.a Struktur Tubuh Manusia

Gambar 1-1.b Struktur Robot

Terlihat pada gambar di atas pada robot terdapat Pengontrol yang berfungsi sama dengan otak manusia, yang fungsinya untuk membaca data dari sensor kemudian data ini

(4)

Untuk robot yang biasanya menjalankan untuk satu tugas maka blok diaram yang dimilikinya ditunjukkan dalam Gambar 1-2.

Gambar 1-2. Blok Diagram dari proses kerja sebuah Robot

Dari Blok diagram di atas terlihat bahwa semua proses yang ada pada dirobot diatur oleh sebuah mikrokontroler, yang fungsinya hampir sama dengan otak pada tubuh manusia.

(5)

Bab 2

Pengantar Mikrokontroler

2.1. Pengantar

Mikrokontroler disebut juga MCU atau μC adalah salah satu komponen elektronik atau IC yang memiliki beberapa sifat seperti komputer, yaitu: CPU (Central Processing Unit) atau unit pemprosesan terpusat, kode memori, data memori, I/O (port untuk input dan output), bentuknya yang kecil dan harganya murah sehingga dapat dicangkokkan (embedded) di dalam berbagai peralatan rumah tangga, kantor, industri atau robot.

Mikrokontroller dapat diprogram melalui program software yang dapat menulis, membaca dan dihapus isi mikrokontroler tersebut.

Mikrokontroler sering digunakan dalam beberapa peralatan otomatik seperti pengontrol mesin di mobil, pengontrol jarak jauh, mesin cuci otomatis, pengkondisian udara (AC) peralatan perkantoran dll. Keuntungan dari penggunaan mikrokontroler yaitu memperkecil ukuran peralatan, mengurangi biaya dan konsumsi listrik.

Ada banyak sekali jenis mikrokontroler di pasaran seperti yang ditunjukkan oleh table 2.1. di bawah ini.

Tabel 2.1 Berbagai Jenis Mikrokontroler Di Pasaran

No Merek atau nama Perusahaan Nama atau No. Seri Mikrokontroler

1. AT-Tiny (Tini 11, Tini 12)

ATmega (ATmega 8, ATmega8535) AT90SXXXX (AT90S1200, AT90S2313)

2. Z8GP, eZ80, Z80P

3. 6HC05, 6HC08, 6HCC11, 6HC12

4. 8051, 8052

5. Kinerja Rendah (Low End) (12 bit):

12C508, 12C508, 12CR509A

Kinerja Menengah (Mid End)(14 bit): 16C61, 16CR84, 16CE624, 16F628 Kinerja Tinggi (High End)(16 bit) 18C242, 18F242, 18F8525

Setiap Mikrokontroler ada kelebihan antara satu dengan lainnya,Dalam buku ini ini peulis akan memperkenalkan PIC mikrokontroler, PIC adalah singkatan dari Programmable Interface Controller atau disingkat dengan nama lain Programmable Intelligent Computer. PIC yang merupakan mikrokontroller produksi dari Microchip yang dapat menggantikan fungsi dari ratusan IC atau transistor. PIC ini sangat populer dikalangan

(6)

pengembang dan penggiat (hobbyists) elektronika dikarenakan harganya yang murah, kemampuannya yang besar untuk berbagai aplikasi, juga tersedia banyaknya buku dan informasi tentangnya, kempuannya diprogram menggunakan serial port dan USB, juga program di dalamnya dapat diprogram berkali-kali menggunakan flash memori, selain itu software penunjangnya terdapat dalam open-source atau free-ware. Karena PIC ini mudah digunakan oleh siapa saja, sehingga banyak yang menggunakannya, hingga saat ini jumlah PIC yang telah menjual lebih dari 6 milyar.

PIC bisa berprilaku seperti kombinasi dari gerbang digital, timer, counter dll. Prilaku kerja dari PIC tergantung kepada program yang kita berikan,

Gambar 2.1 Menunjukkan beberapa keistimewaan yang dimiliki oleh PIC.

Walaupun PIC sangat kecil dibandingkan dengan computer (PC) tetapi fungsi yang dimiliki PIC tidak kalah dengan komputer (PC). Tabel 2.1. menunjukkan perbandingan antara PIC dan computer.

Tabel 2.2. Perbandingan antara PIC and Komputer

Item PIC Komputer (PC)

Program Firmware yaitu program yang disisipkan dalam ROM dan menjadi bagian yang permanen dalam komponen IC

Software yaitu program untuk mengoperasikan komputer

Catu Daya 3 – 6 Volt DC 220 Vac

Tobol Reset Tersedia Tersedia

I/O a. LCD/LED/ 7 segment

b. Buzzer, speaker

c. Keypad, tombol switch d. Serial, parallel, USB port

a. Monitor b. Speaker

c. Keyboard/Mouse

(7)

e. ADC module f. PWM Module

Port e. – f. -

Kecepatan Prosesor Dibawah 40 MHz Beberapa GHz

RAM Beberapa Bytes Beberapa Kbytes

ROM Beberapa Bytes Beberapa Kbytes

Ruang untuk data/program

Flash, EEPROM (lectrically erasable programmable read-only memory), ROM

Beberapa Kbytes

Harddisk Gbytes

Dengan ukurannya yang kecil, murah dan berdaya rendah memungkinkan PIC digunakan untuk tugas-tugas sederhana dalam menggantikan komputer.

Banyak Peralatan yang bekerja menggunakan Mikrokontroler seperti yang ditunjukkan dalam gambar 2-1.

Gambar 2-1 Beberapa aplikasi penggunaan Mikrokontroler

2.2. Cara menggunakan Mikrokontroller

Cara penggunaan mikrokontroler adalah sangat mudah, setelah kita membeli sebuah mikrokontroler kosong dari pasar, lalu kita isi program di dalamnya menggunakan software programmer dan downloader, lalu mikrokontroler siap digunakan. Gambar 2.2 Menunjukkan Proses penggunaan dari Mikrokontroller.

(8)

Gambar 2-2. Proses Pengunaan Mikrokontroler. 2.3. Mengenal PIC 16F88

Pada workshop ini akan diperkenalkan PIC16F88, mikrokontroller ini sangat kecil, hanyak memiliki 18 kaki (pin), harganya cukup murah, dan dapat diaplikasikan untuk proyek-proyek sederhana di sekolah atau proyek Robot.

Gambar 2-3 menunjukkan configurasi dari kaki-kaki PIC16F88

(9)

Konfigurasi I/O Mikrokontroler dapat dilihat dari Datasheet Mikrokontroller tersebut yang disarikan sebagai berikut:

1. Input Mikrokontroler dapat berupa digital atau analog.

Kalau digital maka tegangan inputnya 0V untuk keadaan 0 dan 5V untuk keadaan 1. Kalau analog maka input range tegangannya adalah antara 0 sd 5V

Output Mikrokontroler hanya digital yaitu tegangan outputnya 0V untuk keadaan 0 dan 5V untuk keadaan 1

Pin Input Analog (AN0-AN6): 17, 18, 1, 2, 3, 12, 13

Pin Input Digital:

PORT A (RA0-RA4): 17, 18, 1, 2, 3

PORT B (RB0-RB7): 6, 7,8, 9, 10,11, 12, 13

Pin Output hanya digital:

PORT A (RA0-RA4): 17, 18, 1, 2, 3

PORT B (RB0-RB7): 6, 7,8, 9, 10,11, 12, 13

Pin Mikrokontroler dapat menjadi Input atau Output tergantung Setting pada pemogramannya

PIC adalah komponen semikonduktor yang termasuk golongan CMOS, Complementary metal-oxide-semiconductor (CMOS) yaitu devais yang memiliki struktur fisika dari Field Effect Transistor (Transistor yang dipengaruhi Medan) dimana transistor ini memiliki gerbang elektroda yang diletakkan di atas isolator oksida semikonduktor yang menyusunnya. Karena termasuk CMOS transistor maka karekteristik tegangan input dan out akan mengikuti gambar 2.4. Dimana pada PIC PORT akan mendeteksi input sebagai 0 (LOW atau 0V) jika tegangan sinyal yang masuk adalah dari 0-1.5 V. Lalu akan mendeteksi input sebagai 1 (HIGH atau 5V) jika tegangan sinyal yang masuk adalah 3.5-5V. Untuk tegangan antara 1.5-3.5 V adalah tegangan yang tidak diperhatikan (don’ care) ini tergantung kepada tegangan sebelumnya. Untuk Output, PIC PORT akan memberikan output sebagai 0 (LOW atau 0V) dimana tegangan yang dikeluarannya 0-0,05 V. Dan akan memberikan output sebagai 1 (HIGH atau 5V) dimana tegangan yang dikeluarannya mendekati 4.95-5 V..

(10)

Gambar 2.4. Karakteristik Tegangan Input dan Output dari PIC 2.4. Menggunakan PIC

Untuk menggunakan PIC ada beberapa software dan Hardware yang diperlukan, yaitu: 1. Software: PIC Compiler, yaitu software untuk menulis program lalu mengkompilasi

program tersebut menjadi bahasa assembler dan bahasa mesin (hex file). Dalam buku ini kita menggunakan MikroC. Karena bahasa C adalah bahasa yang paling banyak digunakan di dunia industri dan perguruan tinggi. MikroC adalah software produksi perusahaan Microelektronika. Software ini gratis untuk demo version dan dapat di download pada:

http://www.mikroe.com/en/compilers/mikroc/pic/download.htm.

Dalam CD yang menyertai buku ini juga terdapat program ini. Dalam Demo version tidak ada batas waktu penggunaan, hanya ada batasan maksimal file hex adalah 2kb. Untuk program robot yang digunakan untuk lomba, 2kb sudah mencukupi. Atau kalau tidak puas dengan fasilitas gratis 2kb, maka dapat membeli langsung Full version software tersebut. Untuk metode instalasi software MikroC bisa dibaca pada lampiran 1 buku ini.

2. Software: Winpic800, yaitu software untuk mengirim hex file ke PIC, software ini gratis dan bisa di download pada:

http://www.winpic800.com/index.php?lang=en

Dalam CD yang menyertai buku ini juga terdapat program ini. Dengan menggunakan software ini kita bisa mengecek kondisi PIC, membaca program, menulis program dan menghapus program yang ada di PIC.

Untuk metoda menginstalasi software Winpic800 ini bisa dibaca pada lampiran 1 buku ini.

3. PIC Programmer, yaitu alat atau hardware untuk menuliskan program dari computer ke PIC. Kebanyakan di pasaran saat ini untuk digunakan hardware ICSP (In Circuit Serial Programming) yaitu antar muka serial yang digunakan PC untuk mendownload suatu program kedalam program memori di PIC. Diagram pemograman menggunakan ICSP adalah ditunjukkan dalam gambar 2.4.

4. Rangkaian Dasar, adalah rangkaian minimal yang diperlukan agar PIC dapat bekerja. Rangkaian ini memerlukan PIC, Tombol Reset, Catu Daya 5 V dan Oscillator. Dengan adanya rangkaian dasar ini maka kita siap mengoperasikan PIC . Gambar 2.5 Menunjukkan rangkaian dasar untuk mengopersionalkan PIC. Sedangkan Gambar 2.6

(11)

adalah rangkaian catu daya yang biasa diapakai untuk PIC.

Gambar 2.4.a. Diagram hubungan antara PC, PIC programmer dan PIC Mikrokontroler

(12)

Gambar 2.5 Rangkaian dasar untuk mengoperasikan PIC Mikrokontroler 5V 9V D1 1N1183 IN GN DOUT 2 1 3 U2 LM7805C LED1 CQX35A R2 1k C4 1 m C 3 100n

Gambar 2.6. Rangkaian Catu Daya 5V untuk PIC

2.5. Hal-hal penting dalam menggunakan PIC

1. Arah soket PIC tidak boleh terbalik. Perhatikan no PIN dan kepala PIC. Perhatikan gambar 2.7, pada kepala PIC sebelah kiri terdapat pin No. 1 lalu No 2 dan seterusnya mengikuti arah berlawanan jarum jam (Counter Clock Wise). Bila terbalik maka akan merusak PIC tersebut, ingat harga PIC16F88 perbuah sekitar Rp 30.000,-

(13)

Gambar 2.7 No urut pin di PIC16F88 bila dilihat dari atas

2. Matikan Switch (switch Off) atau putuskan hubungan ke catu daya ketika memasang PIC ke soketnya.

3. Karena tubuh kita memiliki listrik statik, maka sebaiknya sebelum menyentuh PIC tempelkan tangan kita ke lantai atau badan computer.Diusahakan ketika memegang PIC kita tidak menyentuh kaki-kakinya. Pergunakan alat lain (tool) seperti obeng dan pinset ketika membuka PIC dari soketnya.

4. Input tegangan yang lebih dari 5V atau kurang dari 0 V untuk setiap port akan merusak PIC secara permanen, cek dahulu tegangan yang akan kita hubungkan ke PIC untuk menjaga keamanan.

5. Untuk menghemat baterei, sebaiknya ketika kita tidak menggunakan Rangkain PIC kita, kita putuskan hubungan (atau matikan switch) ke baterai.

2.6. Kit Mikrokontroler

Untuk mempelajari Mikrokontroler diperlukan suatu alat yang disebut Kit.

Kit yang dipersembahkan dalam Training ini adalah MINI18 PIC Training Kit yaitu Kit untuk Pendidikan (Educational Mini Microcontroller Kit). Yang didesain untuk

memberikan dasar-dasar mikrokontroller (memogram , mengetes dan mengembangkan) beserta latihan mengerjakan beberapa proyek praktis.

Kit ini terdiri dari Programmer dan Rangkaian Aplikasi.

Kit ini menggunakan PIC16F88, Mikrokontroller ini dipilih karena termasuk yang murah dan lengkap untuk berbagai aplikasi. Terdapat 14 pin I/O juga ada fungsi ADC dan PWM. Sehingga cocok digunakan untuk dunia pendidikan dan lomba Robot.

Gambar 2.8 Menunjukkan Kit yang akan kita gunakan, sedangkang pada gambar 2.9 menunjukkan rangkaian aplikasi yang akan digunakan .

(14)

Gambar 2.8 MINI PIC Training Kit

Gambar 2.9 Rangkiana Aplikasi dalam MINI PIC Training Kit

Cara menggunakan Kit ini adalah dengan mencolokkan langsung Port Programmer ke Serial Port di komputer seperti yang ditunjukkan adalam gambar 2.10.a dan 2.10 b

(15)

Gambar 1.10.a. Menghubungkan Programer ke Komputer

Gambar 1.10.b Kit dihubungkan ke PC mendownload program dari komputer ke PIC Kemudian seteleah setelah selesai mendonload program maka PIC dicabut dari

(16)

Lalu sambungkan catu daya 9 V dan tekan Switch ON untuk menjalankan. 2.7. Perintah Dasar Bahasa C dalam memprogram PIC

Tidak semua perintah bahasa C yang akan kita gunakan untuk memprogram PIC, beberapa hal yang penting adalah:

a. Deklarasi Variabel

Bentuk umum pendeklarasian suatu variable adalah : Nama_tipe nama_variabel;

Contoh :

int x; // Deklarasi x bertipe integer

char y, huruf, nim[10]; // Deklarasi variable bertipe char float nilai; // Deklarasi variable bertipe float

double beta; // Deklarasi variable bertipe double int array[5][4]; // Deklarasi array bertipe integer char *p; // Deklarasi pointer p bertipe char b. Operator Penugasan

Operator Penugasan (Assignment operator) dalam bahasa C berupa tanda sama dengan (“=”). Contoh :

nilai = 80; A = x * y;

Artinya : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalian antara x dan y.

c.Operator Aritmatika

Bahasa C menyediakan lima operator aritmatika, yaitu : * : untuk perkalian

/ : untuk pembagian + : untuk pertambahan - : untuk pengurangan

(17)

Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable. Operator hubungan dalam bahasa C :

d.1 .Operator Arti Contoh

< Kurang dari x < y // x kurang dari y

<= Kurang dari sama dengan x <= y // x kurang dari sama dengan y > Lebih dari x > y // x lebih dari y

>= Lebih dari sama dengan x >= y // x lebih dari sama dengan y == Sama dengan x == y // x sama dengan y

!= Tidak sama dengan x != y // x tidak sama dengan y d.2. Operator Logika

Jika operator hubungan membandingkan hubungan antara dua buah operand, maka operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan. Operator logika ada tiga

macam, yaitu :

• && Logika AND (DAN) • || Logika OR (ATAU)

• ! Logika NOT (INGKARAN)

e. Pemilihan Pernyataan

e.1. Struktur Kondisi if…. dan if..else

Dalam struktur kondisi if...else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut :

if(kondisi) {…..}

if(kondisi){pernyataan-1} else {pernyataan-2 } Contoh:

if (m == 1) {x = x + 20} else {y = y – 10};

// jika m=1 maka harga x baru=x+20, jika tidak maka harga y yang baru = y-10. e.2. Perulangan while

Banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) atau 1 dan akan berhenti bila kondisinya bernilai salah. Bentuk umum dari pengulangan will ini adalah :

(18)

while(kondisi){ pernyataan}; Contoh: int s, i; s = i = 0; while (i < 6) { s = s + 2; i = i + 1; }

Kode ini akan menambah bilangan 2 untuk variabel s sebanyak 6 kali dan di akhir program s akan menjadi 12.

e.3. Pengulangan do..while

Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan struktur do...while sekurangkurangnya akan terjadi satu kali perulangan. Bentuk umum: do {pernyataan} while(kondisi); Contoh: int s, i; s = i = 0; do { s = s + 2; i = i + 1; } while (i < 7);

Kode ini akan menambah bilangan 2 untuk variabel s sebanyak 7 kali dan di akhir program s akan menjadi 14.

2.8. Perintah-perintah Penting untuk Mikrokontroler a. Menegaskan suatu PORT sebagai Input atau Output PORTB sebagai Output

TRISB = 0 ;

PORTB sebagai Input TRISB = 0;

PIN B1 sebagai output saja TRISB.F1 = 0;

(19)

Nilai semua PORTB = 0 V (Keadaan 0) PORTB = 0 ;

Nilai semua PORTB = 5 V (Keadaan 1)

PORTB = 255; (Karena 255= 1111 1111 di binary) Nilai awal PIN B1 = 5 V saja

PORTB.F1 = 1; c. Pernyataan

Pernyataan tidak akan diproses oleh komputer hanya membantu untuk pembuat dan pembaca program.

Menggunakan tanda // untuk satu baris pernyataan atau /*...pernyataan...*/ untuk satu paragraf

PORTB = 0; //Membuat nilai semua PORTB = 0 d. Struktur Program

Untuk setiap program perlu pernyatan memulai dengan pernyataan: void main()

e. Loop (Pengulangan)

Agar program kita diulang terus menerus oleh mikrokontroler maka perlu perintah: do //awal loop { …. …. }

while(1) ; //akhir loop f. Mengecek Nilai digital input

Nilai digital input yang masuk (0V atau 5 V) dapat dicek dengan perintah If (pernyataan) {maka….}

Contoh:jika nilai Port RA1 = 5 V maka Output pada Port RB1 akan 5 V. If (PORTA.F1 == 1) {PORTB.F1=1}

g. Waktu Tunda (pause) yaitu membuat program sebelumnya bekerja dalam jangka waktu tertentu

Untuk menunggu 1 detik (1000 ms) maka perintahnya: Delay_ms(1000)

g. Mengeset Apakah Konversi Analog ke Digital Aktif atau Pasif

Untuk menggunakan agar Input Analog pada mikrokontroler aktif maka dengan mengesetnya menggunakan perintah ADCON0:

Kalau ingin fungsi ADC aktif, maka perintahnya: ADCON0 = 1;

Kalau ingin fungsi ADC tidak aktif, maka perintahnya: ADCON0 = 0;

(20)

h. Mengeset apakah suatu input digital atau anlog dengan perintah ANSEL,

perhatikan gambar 2.9, hanya pin yang berlabel AN saja yang dapat menggunakan fungsi ini.

Misalkan kita ingin mengeset AN0 sebagai analog, maka perintahknya: ANSEL.F0=1;

Kalau ingin pin AN3 sebagai digital maka perintahnya: ANSEL.F3=0;

Kalau semua pin analog digital maka perintahnya: ANSEL=0;

2.9. Bilangan Desimal, Binari dan Hexadesimal

Dalam Pemograman PIC MIkrokontroller ada beberapa cara penulisan bilangan 1. Binari, yaitu bilangan yang terdiri dari 0 dan 1.

2. Desimal, yaitu bilangan yang terdiri dari bilangan 0,1,2,3,4,5,6,7,8,9 3. Bilangan Hexadesimal yang terdiri dari bilangan 0-9, A, B, C, D, E, F Tabel bilangan tersebut ditujukkan dalam Table 3.

(21)

Dalam pemograman kita bisa menentukan nilai suatu port dengan perintah sebagai berikut :

Bilangan Operator Contoh Arti

Binari 0b PORTB=0b00111111; Nilai PORT B0=1, B1=1, B2=1, B3=1, B4=1, B5=1, B6=0, B7=0

Hexadesimal 0x PORTB=0x0F ; 0F setara dengan 00001111, jadi nilai PORT B B0=1, B1=1, B2=1,B3=1,B4=0,B5=0, B6=0, B7=0

Desimal PORTB =12 ; Nilai 12 setara dengan

00001100 dalam binari, maka nilai PORT B B0=0,B1=0, B2=1, B3=1, B4=0,B5=0, B6=0, B7=0 Kita juga dapat menentukan perintah perbit

PORTB.F2=1 ;

Yaitu nilai PORT B2=1 ;

Mengkonversi bilangan dec, hex dan bin

Untuk Mengkonversi antara decimal, binary dan hexadecimal dapat digunakan calculator converse pada microC.

Caranya setelah membuka MikroC. Pada bagian bawah dari Windows MikroC akan kita dapatkan tab-tab: Messages, Find, Qconvertorseperti yang ditunjukkan oleh gambar 1.11. Kemudian klik Qconveror maka kita akan mendapatkan gambar 1.12. Dengan menuliskan salah satu kolom yang ada maka nilai bilangan lainnya bisa kita peroleh. Misalkan kita tulis 255 di decimal, maka akan kita peroleh FF di hexadecimal dan 11111111 di binary.

(22)

Gambar 1.11 Windows di MikroC

(23)

2.10. Proyek Pertama menggunakan PIC a. Persoalan

Pada proyek ini kita akan menghidupkan LED dengan aturan sebagai berikut:

1. Pada satu detik pertama semua LED (Ada 6) yang ada di PORT B (RB0 hingga RB5) hidup semua.

2. Lalu satu detik berikutnya yang hidup hanya LED pada PORT B0, B2, B4. Atau LED Merah-Hijau-Kuning

3. Kemudian satu detik berikutnya yang hidup hanya LED pada PORT B1, B3 dan B5. Atau LED Kuning-Hijau-Merah

4. Proses in berulang ke No. 1 b. Rangkaian Elektronik

Kita menggunakan rangkaian gambar 1.13

Gambar 1.13 Rangkaian PIC dan LED

Pada gambar 1.13 output PIC adalah 5V dan arus 10mA. Karena tegangan maksimal LED hanya 2.1 V, sehingga diperlukan tahanan 470 Ohm. Keterangan secara terperinci tentang hubungan LED, Tegangan dan Tahanan di Jelaskan pada gambar 1.14.

(24)

c. Algoritma dan Flow Chart

lgoritma adalah urutan logis yang disusun secara sistematis untuk memecahkan masalah.

1. Mendefinisikan PORT yang akan kita pakai sebagai output

GH (1) untuk pin di PORT B0-B5

RT B0, B2, B4., lainnya LOW IGH untuk PORT B1, B3 dan B5.

No. 3

lowchart adalah pemaparan algoritma dalam bentuk gambar, yaitu diagram alir dari

ablel. Menunjukkan beberapa symbol dalam Flowchart yang biasa digunakan

imbol Arti A

Penulisannya bisa menggunakan Flow Chart atau dengan urutan biasa. Untuk persolan di atas algoritmanya yaitu.

2. Menentukan nilai awal untuk PORT yang akan kita pakai 3. Memulai Program

4. Membuat output HI

5. Tunggu satu detik atau 1000 ms. 6. Membuat Output HIGH untuk PO 7. Tunggu 1000 ms

8. Membuat Output H 9. Tunggu 1000 ms 10. Mengulang lagi ke F

algoritma yang ada dengan menggunakaan symbol-simbol yang saling terhubung dan membentuk urutan penyelesaian masalah. Biasanya dengan flow chart proses pemograman akan mudah dimengerti.

T S

Terminator, fungsinya sebagai permulaan / akhir program.

au arah alir fungsinya untuk Diagram alir, at

menunjukkan arah aliran program.

Preparation, fungsinya untuk proses inisialisasi/pemberian harga awal atau untuk perulangan/looping

Proses, fungsinya untuk proses perhitungan/proses pengolahan data.

Input data, fungsi untuk proses input data, parameter.

Output data, output data, informasi

Decision, perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya

(25)

On page connector, penghubung bagian-bagian flowchart yang berada pada satu halaman

Off page connector, penghubung bagian-bagian flowchart yang berada pada halaman berbeda

Gambar 21.13 menunjukkan Flowchart dari algoritma di atas adalah sebagai berikut:

Gambar 1.15 Flowchart untuk mengatur LED di PORT B

d. Menulis Program

Langkah berikutnya adalah bagaimana menyusun algoritma di atas kedalam suatu program. Kita menggunakan program MikroC, pertama-tama kita aktifkan program MikroC, dari program yang ada di windows, Start> All Programs > Mikroelectronika > MikroC atau klik dobel dari ikon MikroC di desk top.

(26)

atau klik dobel dari ikon MikroC di desk top.

Setelah itu program MikroC akan keluar. Dilanjutkan dengan Project Wizard dari Menu: Project

(27)

Pada Project Name: Tulislah nama project Anda misalkan PROYEK_PERTAMAKU Isilah Project Path, yaitu tempat/folder mana proyek itu akan disimpan

Discription, anda bisa tulis juga bisa tidak (hanya pilihan)

Pada Device, pilihlah PIC16F88 karena kita akan memakai devais tersebut. Pada Clock anda tuliskan 20.000000 (20 MHz)

Klik default untuk menggunakan konfigurasi default. Lalu klik OK untuk melanjutkan.

Selanjutnya MikroC compiler akan menyiapkan satu proyek file dan source file yang masih kosong. Lalu anda bisa menulis program pada window editor.

(28)

Tulislah Program ini di pada window editor:

/* Nama Program PROYEK_PERTAMAKU

Connection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-H B6_SW1, B7-SW2 A1-Buzzer A0=LDR */ void main() {

PORTB = 0; //nilai awal PORTB=0 TRISB = 0; //PORTB sebagai Output {

do {

PORTB = 0b00111111; //bilangan binari 00111111 Delay_ms(1000);

PORTB = 0b00101010; //bilangan binari 00101010 Delay_ms(1000);

PORTB = 0b00010101; //bilangan binari 00010101 Delay_ms(1000);

}

while(1) ; }

}

Keterangan untuk Program di atas:

Perintah Keterangan

void main() Menunjukkan program Utama dimulai

{ atau } Adalah tanda kurung yang memudahkan kita

membagi/mengidentifikasi program dalam beberapa blok // atau /*…..*/ Adalah komen atau keterangan yang tidak akan dieksekusi

oleh computer

Kalau // untuk satu baris saja, sedangkan

Kalau /* di awal paragraph dan */ diakhir paragraph dapat membuat komen untuk satu paragraf atau banyak baris sekaligus

PORTB = 0b00000000; TRISB = 0b00000000;

Kita memberikan nilai awal PORTB=0 Mengeset PORTB sebagai Output

Dalam bahasa C, apabila angka dimulai dengan 0b maka ini diidentifikasi sebagai angka binary, karena PORTB ada 8 PORT, maka dengan mengeset PORTB = 0b00000000 artinya PORT B0 hingga B7 akan memiliki nilai awal 0.

Untuk bilangan hexadecimal digunakan bilangan yang dimulai 0x, sedangkan bilangan decimal biasa tidak menggunakan 0. Contoh yang bisa kita buat adalah:

0xff akan sama nilainya dengan 0b11111111 juga akan sama dengan 255 di bilangan desimal.

(29)

Dengan mengeset TRISX, maka kita dapat mengkondisikan suatu PORT itu akan menjadi input atau output, conthonya: TRISX = 0x00 membuat PORT X sebagai output dan TRISX = 0xff membuatnya menjadi Input. makes the port as inputs. Sebagian input dan sebagian output juga bisa diset, misalkan TRISA= 0b00001111 artinya PORTA pin A0,A1,A2,A3 segai input (karena set 1) dan pin A4,A5,A6,A7 sebagai output (karena set 0).

do… while(1); Memerintahkan untuk memulai loop yang tak pernah berhenti.

While (1) artinya jika kondisi TRUE atau 1, maka akan kembali ke do lagi.

PORTB = 0b00111111; Pada PORTB kita berikan output

B0=1,B1=1,B2=1,B3=1,B4=1,B5=1, B6=0, B7=0 Dibaca bit dari belakang

Delay_ms(1000); Artinya pause atau tunda waktu selama 1000 ms atau 1 detik. Untuk waktu yang lama maka perlu dibuat kelipatan 1 menit atau Delay_ms(60000);

e. Mengkompilasi Program

Setelah anda tulis program di atas, lalu klik icon save atau dari menu File pilih save

Setelah itu klik Compile Icon atau build project atau tekan Ctrl+F9 atau dari menu Project> Build

(30)

Maka MikroC akan mengkompilasi program tersebut, mengkompail artinya membuat program assembler , debugger dan hex file. Hex file akan digunakan oleh PIC.

f. Mentrasfer Hex File ke PIC

Menstransfer Hex file ke PIC dikenal juga dengan mendownload program ke PIC, caranya kita harus memiliki programmer hardware dan WinPIC800 software. Pertama kita panggil program WinPIC800 dengan cara klik doble icon program tersebut di desktop . Lalu kita hubungkan kabel antara Serial Port COM (RS232) di computer dengan rangkaian programmer. Setelah kita klik dobel program WinPic800 akan keluar windows:

(31)

Pilihlah PIC pada pull down selection yaitu 16F88 seperti yang ditunjukkan pada gambar di atas.

Lalu click untuk mengecek PIC dan juga kabel antara computer dan programmer. Setelah itu klik untuk menghapus semua program yang terdahulu dalam PIC.

Setelah itu klik open File icon untuk memilih file hex yang akan dipindahkan ke PIC.

Lalu klik Open kemudian kembali ke window WinPic800

Lalu klik untuk menulis/menstransfer semua program hex ke PIC.

Setelah All Program selesai maka proses download hex file ke PIC sudah selesai, selanjutnya anda dapat memindahkan PIC yang telah di tulis itu kepada rangkaian PIC LED di atas (gambar 1.16), lalu hubungkan batrei 9V ke batrei socket dan tekan switch ON untuk menyalakan dkemudian anda akan melihat LED akan bergantian menyala seperti yang anda programkan.

(32)
(33)

Bab 3

Membuat Proyek Sederhana dengan PIC

A. Membuat Sistem Lalu Lintas untuk penyebrang Jalan

Lampu lalu lintas adalah hal yang umum kita lihat di jalan sehari-hari, dan menggunakan PIC anda pun bisa membuatnya. Dengan mempelajari proyek ini anda akan tahu bagaimana membaca input digital, juga mengatur waktu untuk menghasilkan output yang dikendaki.

1.Persoalan

Sebuah penyebrangan Jalan sebagaii mana terlihat dalam gambar 3.1. Terdapat lampu lalu lintas untuk penyebrang Jalan dan untuk mobil yang lewat. Pada setiap lampu lalu lintas terdapat tombol yang kita beri nama Switch E0 dan E1.

1. Kondisi normal adalah : Lampu Untuk Mobil Hijau dan Lampu Untuk Penyebrang Merah.

2. Ketika Penyebrang menekan salah satu switch maka lampu akan berubah: Lampu untuk Mobil: Kuning (2 Detik)Æ Merah (7 detik)

Lampu Untuk Penyebrang: Merah 2 detikÆHijau (5 detik)Ækuning (2 detik).

Gambar 3.1. Lampu Lalu Lintas Untuk Penyebrang Jalan 2. Rangkaian Elektronik

Untuk membuat Lampu Lalu Lintas dalam skala Lab atau skala kecil kita memerlukan 6 buah LED dengan warna Hijau, Kuning, Merah dan 2 buah Switch, serta PIC mikrokontroler untuk mengontrol semuanya. Gambar diagram dari rangkaian elektrik yang diperlukan ditunjukkan di gambar 3.2.

(34)

Gambar 3.2. Rangkaian Elektronik untuk Proyek Lampu lalu lintas bagi Penyebrang Jalan

Terlihat bahwa 6 buah LED kita hubungkan dengan PIN B0 – B5, dan switch kita hubungkan dengan Pin E0 dan E1.

3. Algoritma

Untuk persolan di atas algoritmanya yaitu.

1. Mendefinisikan PORT yang akan kita pakai sebagai input dan output 2. Mengeset PORT E0 dan E1 sebagai pembaca input digital.

3. Menentukan nilai awal untuk PORT yang akan kita pakai 4. Memulai Program

5. Set Untuk kondisi normal: LED Merah Penyebrang ON dan LED Hijau Mobil ON 6. Jika Salah satu switch ditekan (Switch 1 atau Switch 2) maka:

• 1. Set 2 detik pertama Lampu LED Merah Penyebrang ON dan Lampu LED Kuning Mobil ON

• 2. Kemudian, Pada waktu 5 detik, Lampu LED Hijau Penyebrang ON dan Lampu LED Merah Mobil ON

• Set 2 detik terakhir, Lampu LED Kuning Penyebrang ON dan Lampu LED Merah Mobil ON

6. Kembali Ke kondisi normal 4. Menulis Program

Gunakan Program Berikut dan tuliskan di MikroC, lalu lakukan kompilasi untuk membuat Hex file dan download ke PIC menggunakan PIC Programer. Kemudian tes program tersebut dan lihatlah apakah program yang anda buat berhasil?

/* Nama Program SWITCH

*Connection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-H B6_SW1, B7-SW2

(35)

A0=LDR

*Warna Lampu Penyebrang Hijau=Port B2, Kuning=B1, Merah=B0 **Warna Lampu Mobil Hijau=B5, Kuning=B4, Merah=B3

**Switch Penyebrang ada di PORT B6 dan B7 */

void main() {

PORTB = 0; //nilai awal PORTB=0 PORTA = 0; //nilai awal PORTA=0 //SET PORT B sebagai INPUT atau OUTPUT TRISB.F0 = 0; //PORT B0 sebagai Output TRISB.F1 = 0; //PORT B1 sebagai Output TRISB.F2 = 0; //PORT B2 sebagai Output TRISB.F3 = 0; //PORT B3 sebagai Output TRISB.F4 = 0; //PORT B4 sebagai Output TRISB.F5 = 0; //PORT B5 sebagai Output TRISB.F6 = 1; //PORT B6 sebagai input TRISB.F7 = 1; //PORT B7 sebagai input //SET PORT A1 SEBAGAI OUTPUT TRISA.F1 = 0;

//Analog Selection

ANSEL.F5 = 0; //Set AN5 sebagai digital ANSEL.F6 = 0; //Set AN6 sebagai digital {

do {

if((PORTB.F6==1) || (PORTB.F7==1)) //jika switch B6 atau B7 HIGH {

/*Penyebrang (B2(M),B1(K),B0(M)): merah 2 detik lalu hijau 5 detik kemudian kuning 2 detik ** Mobil (B5(H),B4(K),B3(M)): kuning 2 detik lalu merah 7 detik

**Set 2 detik pertama B2 ON dan B4 ON */ PORTB.F2 = 0; PORTB.F1 = 0; PORTB.F0 = 1; //P-Merah ON PORTB.F5 = 0; PORTB.F4 = 1; //M-Kuning ON PORTB.F3 = 0;

Delay_ms(2000); //2 detik pertama //Set 5 detik, PORTB.F2 = 1; //P-Hijau ON PORTB.F1 = 0; PORTB.F0 = 0; PORTB.F5 = 0; PORTB.F4 = 0; PORTB.F3 = 1; //M-Merah ON Delay_ms(5000);

//Set 2 detik terakhir PORTB.F2 = 0; PORTB.F1 = 1; //P-Kuning ON PORTB.F0 = 0; PORTB.F5 = 0; PORTB.F4 = 0; PORTB.F3 = 1; //M-Merah ON Delay_ms(5000); } else {

(36)

PORTB.F2 = 0; PORTB.F1 = 0; PORTB.F0 = 1; //P-Merah ON PORTB.F5 = 1; //M-Hijau ON PORTB.F4 = 0; PORTB.F3 = 0; } } while(1) ; } }

B. Membuat proyek Sistem Keamanan di Rumah

Sistem Keamanan di Rumah adalah sesuatu hal yang peling penting untuk setiap orang, karena kita tidak akan membiarkan rumah kita dicereboh oleh pencuri atau perampok. Untuk itu diperlukan suatu system yang mendeteksi kehadiran pencuri atau perampok dan melaporkannya secara cepat kepada kita dalam bentuk suara alarm. Dalam proyek ini anda akan belajar cara membuat sistem kemanan rumah dan mengujinya.

1. Persoalan

Gambar 3.6. Menunjukkan sebuah rumah yang memiliki 2 alat pendeteksi atau sensor kehadiran pencuri. Yang pertama yaitu switch sentuh (micro switch) yang diletakkan di bawah keset dan yang kedua switch yang diletakkan di Jendela. Apabila pencuri menginjak keset atau membuka jendela akan mengaktifkan switch yang ada. Pada keset kita buat suatu kondisi, apabila keset diinjak maka nilai output switch akan HIGH. Sedangkan pada jendela apabila jendela dibuka maka kondisi nilai switch akan LOW. Disini kita sudah mengeset kondisi switch yaitu normali open (NO) (dalam kondisi normal dua elektroda kontak di switch tidak terhubung atau dalam kondisi normal nilai tegangannya LOW) dan normali close (NC) (dalam kondisi Normal dua elektroda kontak terhubung atau dalam kondisi normal nilai tegangannya HIGH). Untuk melaporkan kepada kita, maka kita gunakan lampu merah LED akan kelap-kelip dan buzzer akan akatif menghasilkan suara alarm.

1. Kondisi normal adalah : Switch di set LOW dan Switch di Jendela High, Lampu LED menyala Hijau dan Buzzer Off.

2. Ketika Pencuri masuk dengan Jalan Menginjak Keset Atau Membuka Jendela, maka lampu LED merah akan menyala kelap kelip dan buzzer akan aktif.

(37)

Gambar 3.6 Sistem keamanan pada rumah 2. Rangkaian Elektronik

Untuk membuat Sistem keamanan rumah kita memerlukan 2 buah switch, yang kita letakkan di Pin B6 dan B7 pada PIC, 2 buah LED berwarna hijau dan merah yang kita hubungkan di pin B3 (hijau) dan B0 (Merah) dan satu buah Buzzer yang kita hubungkan dengan pin A2, serta sebuah PIC mikrokontroler untuk mengontrol semuanya. Gambar diagram dari rangkaian elektrik yang diperlukan ditunjukkan di gambar 3.7.

Hubungan antara pin di PIC dan komponen yaitu: LED Hijau Pin B3

LED Merah Pin B0 Switch 1 Pin E6 Switch 2 Pin E7 Buzzer Pin A1

(38)

. Gambar 3.7. Diagram hubungan anatra PIC dan Komponen

3. Algoritma

Untuk persolan di atas algoritmanya yaitu.

1. Mendefinisikan PORT yang akan kita pakai sebagai input dan output 2. Menentukan nilai awal untuk PORT yang akan kita pakai

3. Mengeset PORT E0 dan E1 sebagai pembaca input digital. 4. Memulai Program

5. Set Untuk kondisi normal: LED Hijau selalu ON untuk Menyatakan sitem ready. 6. Jika Salah satu switch ditekan (Switch 1 atau Switch 2) maka:

• Lampu LED Merah menyala Kelap kelip dan Buzzer ON selama 10 detik. Kembali Ke kondisi normal

4. Menulis Program

Gunakan Program Berikut dan tuliskan di MikroC, lalu lakukan kompilasi untuk membuat Hex file dan download ke PIC menggunakan PIC Programer. Kemudian tes program tersebut dan lihatlah apakah program yang anda buat berhasil?

/* Nama Program SWITCH

Connection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-H B6_SW1, B7-SW2 A1-Buzzer A0=LDR */ void main() {

PORTB = 0; //nilai awal PORTB=0 PORTA = 0; //nilai awal PORTA=0

(39)

//SET PORT B sebagai INPUT atau OUTPUT TRISB.F0 = 0; //PORT B0 sebagai Output TRISB.F1 = 0; //PORT B1 sebagai Output TRISB.F2 = 0; //PORT B2 sebagai Output TRISB.F3 = 0; //PORT B3 sebagai Output TRISB.F4 = 0; //PORT B4 sebagai Output TRISB.F5 = 0; //PORT B5 sebagai Output TRISB.F6 = 1; //PORT B6 sebagai input TRISB.F7 = 1; //PORT B7 sebagai input //SET PORT A1 SEBAGAI OUTPUT TRISA.F1 = 0;

//Analog Selection

ANSEL.F5 = 0; //Set AN5 sebagai digital ANSEL.F6 = 0; //Set AN6 sebagai digital {

do {

if((PORTB.F6==1) || (PORTB.F7==1)) //jika switch B6 atau B7 ON {

/*Maka Buzzer ON dan LED Merah Menyala Kelap Kelip */ PORTA.F1 = 1; //PORTE Pin A1 High, Buzzer ON //LED Merah Kelap kelip

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF Delay_ms(500);

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF Delay_ms(500);

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF Delay_ms(500);

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF Delay_ms(500);

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF Delay_ms(500);

Delay_ms(500);

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF Delay_ms(500);

Delay_ms(500);

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF Delay_ms(500);

Delay_ms(500);

PORTB.F0 = 1; //LED Merah ON Delay_ms(500);

PORTB.F0 = 0; //LED Merah OFF

Delay_ms(5000); //Buzzer ON selama 5 detik }

else {

PORTB.F2 = 1; //Kondisi normal LED Hijau ON PORTA.F1 = 0; //Buzzer OFF

(40)

} }

while(1) ; }

}

C. Membaca Data Dari Sensor

Membaca d ata dari sensor, mirip kita melakukan akusisi data menggunakan

mikrokontrler. PIC16F88 dapat digunakan sebagai IC untuk melakukan akusisi data karena memiliki Analog Digital Converter Port, ada 6 analog input yaitu pada PORT AN0 hingga AN5. RA0-RA4 terdapat AN0 hingga AN4, dan pada RB6 dan RB7 terdapat AN5 dan AN6.

jika sinyal yang diterima oleh port ini berupa analog, maka oleh PIC sinyal ini dokonversi menjadi nilai digital untuk diolah dalam proses selanjutnya. Dengan memiliki PORT Analog ini maka PIC dapat menerima output sinyal dari sensor. Selain itu yang perlu diingat adalah sinyal analog yang dapat diterima oleh PIC harus dalam jangkauan tegangan 0-5 V, apabila sinyal tegangan dari sensor berada di luar jangkauan ini, maka harus dibuat rangkaian pengkondisian sinyal agar dapat berada pada 0 – 5 V. Selain itu Polaritas + dan – harus diperhatikan juga, kabel negative dari sensor harus dihubungkan ke ground pada PIC input dan kabel postif dihubungkan ke PORT A0, A1, A2, A3, B6, dan B7

Perintah Dasar ADC

MikroC memiliki library (Kode pustaka) untuk menjalankan operasi ADC yaitu: 1. Adc_Read

Fungsi: Memulai membaca port analog

Penulisan: Adc_Read(No_chanel_analog_port); 2. ADCON1

Fungsi: Mengaktifkan Konversi analog ke digital

Penulisan: ADCON1 = 0; Mengaktifkan ADC pada semua port analog Pengkonversi Analog ke Digital (Analog-Digital Converter)

Disingkat dengan ADC, A/D atau A to D adalah suatu proses mengkonversi sinyal (tegangan) analog ke bilangan digital diskrit. ADC ini terdapat dalam IC ADC atau salah satu bagian di IC yang mengkonversi sinyal kontinyu ke bilangan digital diskrit. Proses pengkonversian meliputi pencuplikan sinyal (sampling) kemudian mengubahnya menjadi bilangan digital yang akan diterima oleh komputer. Ada beberapa istilah yang perlu diketahui ketika menggunakan ADC. Yang pertama adalah bit, yaitu singkatan dari binary digit, unit atau satuan terkecil dari penyimpanan informasi data dan komunikasi digital. Bilangan binary ini berupa 0 atau 1, Panjang Bit adalah jumlah bilangan binary yang dapat diproses oleh suatu instrument, contohnya 10100011 memiliki panjang 8 bit. Sedangkan byte adalah koleksi atau jumlah dari bit. ADC memiliki batasan bit, yaitu

(41)

jumlah bit maksimal yang dapat diproses. Gambar 4.2. menunjukkan proses konversi yang terjadi.pada suatu ADC yang miliki 3 bit dan tegangan input dari 0 hingga 10 V. Untuk ADC yang mimiliki 3 bit maka bilangan binary minimal adalah 000 dan maksimal 111. Jumlah bilangan binary dari 000 ke 111 adalah 23-1=7, yaitu 000, 001, 011, 100, 101, 110, 111.

Gambar 4.2. Proses Konversi dari analog ke digital

Karena tegangan masukan ADC dari 0 hingga 10 V, kemudian ada 7 bilangan binary maka tegangan dari 0 hingga 10 V dibagi 7 tingkatan, dan setiap peningkatan bilangan binary akan berkaitan dengan peningkatan tegangan input sebesar 1.25 V. Dalam ADC juga dikenal istilah resolusi yaitu nilai peningkatan terkecil bilangan binary yang dapat dibaca, untuk menghitung resolusi ini menggunakan rumus

n V V Q 2 min max− = (4.1)

dimana Vmax dan Vmin adalah tegangan maksimal dan minimal input ADC, dan n adalah

jumlah bit ADC. Kalau kita gunakan rumus ini untuk menghitung resulusi ADC pada gambar 4.2 maka akan kita dapatkan resolusi ADC ini adalah 1.25

2 0 10 3 = − . Maka computer akan meninterprestaikan setiap perubahan 1 digit bersesuaian dengan 1.25V. Apabila bilangan digital 110 ini setara dengan tegangan 8.75 V.

Untuk latihan suatu PIC Mikrokontroler memiliki 8 bit ADC, ini berarti tingkatan digital adalah dari 0 – 255. Jika kita set tegangan referensi adalah 5 V, maka 0 – 5 V bisa direpresentasikan sebagai 0-255 dalam format digital. Misalkan 5 V akan ditunjukkan

(42)

dengan 255, dan 2.5 V ditunjukkan dengan 128. Rumus untuk menghitung tagangan dalam unit digital adalah

) 1 2 ( − ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ = n ref in V V x , (4.2)

dimana Vin adalah tegangan masukan ke ADC, Vref adalah tegangan referensi atau

tegangan untuk skala full, n adalah bit ADC. Kalau kita hitung Resolusi ADC PIC 8 bit ini adalah: 5/256=19.5 mV.

Persoalan

Pada bagian berikut kita akan mengambil data dari sensor LDR. LDR adalah optoelektronik sensor, yang akan memberikan response terhadap cahaya. Dengan meningkatnya intensitas cahaya yang diterimanya maka tahanan yang ada pada LDR akan menurun. Dengan menggunakan rangkaian pembagi tegangan, maka perubahan tahanan ini akan dikonversi menjadi tegangan listrik. Diagram dari sensor yang kita gunakan adalah ditunjukkan pada gambar 4.4.

Gambar 4.4. Konfigurasi Sensor Cahaya

Gambar 4.4. Menunjukkan Diagram Rangkaian listrik yang akan kita gunakan, yang terdiri dari 1 LDR sebagai sensor, terletak di PORT A0. Hasilnya kita ingin ditunjukkan dengan perubahan hidup matinya LED di PORT B0 sampai B4.

.

Program untuk menyelesaikan soal di atas ditunjukkan di sini:

/* Nama Program ADC

Connection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-H B6_SW1, B7-SW2

A1-Buzzer A0=LDR */

(43)

unsigned short input_a0; void main()

{

PORTB = 0; //nilai awal PORTB=0 PORTA = 0; //nilai awal PORTA=0 //SET PORT B sebagai INPUT atau OUTPUT TRISB.F0 = 0; //PORT B0 sebagai Output TRISB.F1 = 0; //PORT B1 sebagai Output TRISB.F2 = 0; //PORT B2 sebagai Output TRISB.F3 = 0; //PORT B3 sebagai Output TRISB.F4 = 0; //PORT B4 sebagai Output TRISB.F5 = 0; //PORT B5 sebagai Output TRISB.F6 = 1; //PORT B6 sebagai input TRISB.F7 = 1; //PORT B7 sebagai input //SET PORT A1 SEBAGAI OUTPUT TRISA.F1 = 0;

//Analog Selection

ANSEL.F5 = 0; //Set AN5 sebagai digital ANSEL.F6 = 0; //Set AN6 sebagai digital ANSEL.F0 = 1; //Set A1 sebagai analog input

ADCON1 = 0; //Mengaktifkan ADC pada semua port analog {

do {

input_a0 = ADC_Read(0); // Dapatkan data analog dari A0 PORTB = input_a0; //Nilai binari PORTB = data analog A0 }

while(1); } }

Data yang diterima oleh PORT A0 adalah analog berkisar antara 0- 5V, kemudian diconvert ke binari, lalu nilai binari ini bisa dilihat di nyala LED.

(44)

Lampiran 1

Menginstal Software

1.1. Cara Menginstal MikroC

MikroC adalah software produksi dari mkroElektronika untuk mengetik program untuk PIC dalam bahasa C dan juga mengkompilasi program tersebut menjadi bahasa Asembler dan dalam format hex, cara menginstalasinya adalah sebagai berikut:

1. Click dobel (double click) pada file mikroC installer yang ada di folder software di CD atau download di http://www.mikroe.com/en/compilers/mikroc/pic/download.htm

2. Lalu akan muncul instruksi sebagai berikut:

Klik Next untuk melanjutkan proses instalasi

3. Lalu pilih tombol I accept the terms in the License Agreement.

Kemudian tekan Next untuk melanjutkan

(45)

5. Pilihlah folder di mana anda akan menginstal software ini, kalau anda setuju dengan default directory (directory yang diusulkan oleh software), anda bisa langsung klik Install.

6. Lalu proses instalasi bermula

(46)

8. Untuk instalasi Flash tidak disarankan karena harware programernya tidak sama dengan programmer kit yang kita gunakan. Sebaiknya klik No, tapi anda boleh menginstal jika anda menghendakinya.

9. Setelah selesai proses instalisasi di atas, maka anda dapat menecek di start> All programs > Mikroelektronika > mikroC

Juga anda akan dapatkan sebuah ikon sort cut di desktop PC anda.

(47)

1.2. Cara Menginstal Winpic800

1. Click dobel (double click) pada file winpic800 installer yang ada di folder software di CD atau download di http://www.winpic800.com/index.php?lang=en

2. Lalu akan muncul instruksi sebagai berikut:

Pilih bahasa Inggris, selanjutnya klik Next 3. Lalu akan muncul jendela berikut.

Pilihlah folder di mana anda akan menginstal software ini, kalau anda setuju dengan default directory (directory yang diusulkan oleh software), anda bisa langsung klik Install.

(48)

5. WinPic menannyakan apakah perlu membuat Shortcut di desktop, klik OK jika anda setuju.

6. Lalu proses instalasi akan berlanjut dengan menginstal Driver, lalu klik Next.

7. Proses Instalasi selanjutnya adalah mengeset hardware. Dengan memulai dari menu Windows Start>Programs>WinPic800 atau klik dobel pada shortcut WinPic800 di desktop.

(49)

8. Lalu akan muncul Jendela seperti ini:

9. Mengeset Hardware: Pada Menu: Setting> Hardware, pilihlah JDM Programmer, karena rangkaian elektronik yang digunakan untuk programmer adalah jenis JDM Programmer.

Kemudian klik Save atau Apply edit

10. Proses instalasi sudah selesai, selanjutnya, anda bisa memulai menggunakannya.

(50)

Ada beberapa menu seperti gambar di atas yang perlu diketahui , yaitu:

Detect Device

Untuk Mendeteksi PIC apakah ada atau tidak, kondisinya juga jenisnya. Apabila diklik menu ini akan keluar window hasil deteksi software Winpic terhadap PIC yang kita punyai seperti ini:

Read All Untuk membaca Hex file yang ada di dalam PIC, data ini bisa dicopy, dengan menu File>Save as.

(51)

Write Program All

Untuk menulis program Hex file ke PIC, hasilnya akan terlihat sebagai berikut:

Verify All Untuk verifikasi apakah data yang sudah kita kirim dalam PIC sama dengan data yang terdapat pada hex file di winpic.

(52)

11. Untuk memulai WinPic, pertama sambungkan Kabel RS232 ke COM Port di computer dan ujung kabel lainnya sambungkan ke programmer yang ada di Papan Rangkaian (Circuit Board) di Robot. Lalu klik menu Detect Device, kalau Ok, lalu klik menu Erase All.

12. Lalu pilih File> Open atau klik , pilihlah hex file yang sudah anda buat sebelumnya dengan menggunakan mikroC

(53)

13. Lalu click menu Program All, maka semua hex file tersebut sudah dimuat dalam PIC.

Gambar

Gambar 1-1. a dan 1-1.b menunjukkan perbandingan struktur antara robot dan manusia.
Gambar 1-2. Blok Diagram dari proses kerja sebuah Robot
Tabel 2.1 Berbagai Jenis Mikrokontroler Di Pasaran
Gambar  2.1 Menunjukkan beberapa keistimewaan yang dimiliki oleh PIC.
+7

Referensi

Dokumen terkait

Cilj ovog rada bio je utvrditi kemijski sastav i sadržaj bioaktivnih tvari u uzorcima svježih plodova goji bobica, matičnog soka i kaše te temeljem dobivenih

Berdasarkan bangsa sapi potong dan sebaran umur dari kelompok sapi dengan jumlah sampel lebih dari 10 ekor, ternyata tingkat abnormalitas primer spermatozoa tertinggi ditemukan

 berhubungan dengan komplikasi yang umumnya terjadi. 3 3 Diseluruh dunia diperkirakan antara Diseluruh dunia diperkirakan antara 16–16,6 juta kasus baru demam tifoid ditemukan

Petunjuk Pengisian : Jawablah pertanyaan atau pernyataan berikut ini dengan mengisi jawaban pada titik-titik yang telah disediakan1. atau dengan memberi tanda cek

Nah yang kedua adalah tentukan apa yang ingin Anda lakukan , Anda perlu menentukan apa yang Anda ingin capai di dalam hidup ini, selama saya melakukan coaching

Penentuan titik lebur dari sampel ini dilakukan dengan cara sampel dimasukkan kedalam pipa kapiler yang memiliki betuk yang kecil dengan kedua ujungnya

Responden yang dilayani di apotek 128 merasa sangat puas karena banyak faktor yang dapat dipenuhi oleh apotek tersebut.. Faktor utama yang membedakan apotek

Pada tahap ini dilakukan penyempurnaan dan pemantapan gerak tari dengan musik iringan agar memperoleh keserasian dengan gerak yang dibawakan penari, sehingga garapan tari Sang