You are on page 1of 27

BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER

IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
BASCOM-AVR
Apa itu Bascom-AVR? Sejenis peralatan dapur kah?
BASCOM-AVR adalah salah satu perangkat software untuk pembuatan program, yang
ditanamkan dan dijalankan pada mikrokontroler keluarga AVR seperti ATMega8, ATMega16,
dll. BASCOM-AVR juga bisa disebut sebagai IDE (Integrated Development Environment) yaitu
lingkungan kerja yang terintegrasi, karena disamping tugas utamanya (meng-compile kode
program menjadi file HEX / bahasa mesin), BASCOM-AVR juga memiliki kemampuan / fitur
lain yang berguna sekali, contoh :
- Simulator
- Programmer (untuk menanamkan program yang sudah di-compile ke mikrokontroler).
Screenshot BASCOM-AVR :



















BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Dan perlu diketahui, sesuai dengan namanya BASCOM (Basic Compiler) bahasa yang
digunakan adalah bahasa BASIC. Jadi, jika anda sudah pernah menggunakan bahasa BASIC
(Visual Basic, Turbo Basic, dll), akan menjadi modal penting untuk mempelajari tool ini karena
secara struktur pemrograman dasar tidak ada perbedaan.
Mikrokontroler keluarga AVR bermacam-macam jenisnya beberapa contoh yang umum
digunakan untuk aplikasi dan alat otomasi adalah ATMega 8 dan ATMega 16 :











ATMega 8 ATMega 16

Sangat disarankan bagi Anda untuk membaca karakteristik dari mikrokontroler yang anda
gunakan terlebih dahulu.










BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Langkah Awal Penulisan Program pada BASCOM-AVR

Untuk memulai pembuatan program dengan BASCOM-AVR, klik menu File -> New.
Langkah awal penulisan program adalah dengan menentukan file register dan kristal yang
digunakan, yakni dengan menuliskan :

$regfile = "m16def.dat"
$crystal = 8000000

Dimana "m16def.dat" adalah nama file yang berisi konfigurasi alamat register pada
mikrokontroler AVR ATMega 16, jika anda menggunakan jenis lain, maka anda harus
mengganti nama file register ini sesuai dengan mikrokontroler yang anda gunakan. Sedangkan
8000000 adalah frekuensi denyut kristal yang digunakan, satuannya adalah dalam Hertz
(8000000 = 8 MHz). Pada mikrokontroler keluarga AVR terdapat crystal internal : 1 MHz, 2
MHz, 4 MHz, dan 8 MHz, silahkan dipilih sesuai dengan keperluan anda.

Variabel & Tipe data
Di dalam pemrograman tipe data adalah hal yang sangat penting untuk diketahui sebelum kita
memulai pemrograman itu sendiri. Pada bahasa Basic yang telah disesuaikan dengan BASCOM-
AVR, tipe-tipe data yang dikenal dan dapat digunakan adalah sebagai berikut :
Bit (1/8 byte). Satu bit hanya bisa menampung nilai 1 atau 0. Kumpulan dari bit
sebanyak 8 disebut byte.
Byte (1 byte). Byte bisa menampung angka binari 8 bit dengan jangkauan 0 sampai 255.
Integer (2 byte). Integer bisa menampung angka bulat 16 bit dengan jangkauan -
32,768 sampai +32,767.
Word (2 byte). Words memiliki daya tampung yang sama dengan Integer, perbedaannya
adalah Wor tidak mendukung nilai negatif adapun jangkauannya adalah dari 0 sampai
65535.
Long (4 byte). Long mampu menampung angka bulat 32 bit mulai dari -
2147483648 sampai 2147483647.
Single. Single mampu menampung angka pecahan (desimal) 32 bit dengan jangkauan
dari 1.5 x 10^45 sampai 3.4 x 10^38
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Double. Double mampu menampung angka pecahan (desimal) 64 bit dengan jangkauan
dari 5.0 x 10^324 sampai 1.7 x 10^308
String (bisa sampai 254 byte). String bisa menampung karakter ataupun kumpulan
karakter. Misalnya : "IVAN ANTARIKSA" => merupakan kumpulan karakter, sehingga
bisa ditampung ke dalam variabel dengan tipe data String.

Cara mendeklarasikan sebuah variabel pada BASCOM-AVR adalah sebagai berikut :

Dim nama_variabel as tipedata, contoh : Dim x as Byte.

Khusus untuk tipe data String ada sedikit tambahan yakni jumlah karakter maksimal yang bisa
ditampung oleh variabel tersebut. Contoh :
Dim X as String * 10, berarti variabel X mampu menampung karakter sepanjang 10 karakter.

Di dalam penulisan nama variabel terdapat beberapa aturan yang harus di perhatikan :
1. Tidak boleh menggunakan karakter khusus seperti : */#$@!%^&*(),;'~`?<>+=-\
2. Tidak boleh menggunakan kata kunci yang telah ada di dalam bahasa pemrograman,
contoh : for, next, do, loop, while, until, dll.
3. Karakter pertama dalam nama varibel tidak boleh angka, contoh : 1var => salah, var1 =>
benar.
4. Tidak boleh ada spasi, jika nama variabel lebih dari satu kata dapat dihubungkan dengan
underscore(_).









BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Operator
Operator yang digunakan secara umum adalah, operator pembanding, operator aritmatik, dan
operator logika.

1. Operator Pembanding
Operator Keterangan Penggunaan
= Sama Dengan A=B
<> Tidak Sama Dengan A<>B
> Lebih Besar Dari A>B
< Lebih Kecil Dari A<B
>= Lebih Besar Sama Dengan A>=B
<= Lebih Kecil Sama Dengan A<=B

Hasil dari operasi dengan menggunakan operator pembanding adalah true atau false.

2. Operator Aritmatik
Operator Keterangan Penggunaan
+ Tambah A=B+C
- Kurang A=B-C
* Kali A=B*C
/ Bagi A=B/C
\ Pembagian Bulat (Div) A=B\C
^ Pangkat A=B^C

3. Operator Logika
Operator Keterangan Penggunaan
AND Konjungsi A AND B
OR Disjungsi A OR B
XOR Exclusive Or A XOR B
NOT Komplemen NOT A







BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Perulangan / Looping
Perulangan / looping tidak bisa dipisahkan dengan bahasa pemrograman. di dalam bahasa basic,
perulangan yang dapat digunakan adalah sebagai berikut :
1. Do ... Loop Until Kondisi
Contoh penggunaan :
Dim x as byte
x = 0
Do
statement
...
x = x + 1
Loop until x = 10
2. While Kondisi ..... Wend
Contoh penggunaan :
Dim x as byte
x = 0
While x < 10
statement
...
x = x + 1
Wend
3. For..... Next
Contoh penggunaan :
Dim x as byte
For x = 1 to 10
statement
...
Next x



BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Konfigurasi Dasar Port
Agar dapat digunakan, Port yang terdapat pada mikrokontroler harus dikonfigurasi terlebih
dahulu. Pada kesempatan ini kita hanya akan mengkonfigurasi Port sebagai I/O (Input atau
Output).

Konfigurasi Port Sebagai Output
Dengan mengkonfigurasi Port sebagai output berarti Port tersebut ditugaskan untuk
mengeluarkan suatu logika. Untuk mengkonfigurasi Port sebagai output dapat dilakukan dengan
2 cara :
Konfigurasi Semua Pin dalam suatu Port secara keseluruhan. Dengan mengggunakan
cara ini berarti kita menginginkan semua pin pada Port tertentu dikonfigurasi sebagai
output. Adapun cara penulisannya adalah :
Config PORTX= output. Contoh : Config PORTA = output.

Konfigurasi Pin tertentu dalam suatu Port. Dengan menggunakan cara ini berarti kita
menginginkan salah satu Pin atau beberapa Pin pada Port tertentu dikonfigurasi sebagai
output. Adapun cara penulisannya adalah:
Config PORTX.y = output. Contoh : Config PORTA.3 = output.
Pada contoh tersebut dapat dilihat bahwa hanya Pin 3 (Pin ke 4, karena penomoran Pin
dimulai dari 0) pada PORTA yang dikonfigurasi sebagai output.

Konfigurasi Port Sebagai Input
Dengan mengkonfigurasi Port sebagai input berarti Port tersebut ditugaskan untuk menangkap
perubahan logika dari suatu sumber tertentu (misalnya sensor). Untuk mengkonfigurasi Port
sebagai input dapat dilakukan dengan 2 cara :
Konfigurasi Semua Pin dalam suatu Port secara keseluruhan. Dengan mengggunakan
cara ini berarti kita menginginkan semua pin pada Port tertentu dikonfigurasi sebagai
input. Adapun cara penulisannya adalah :
Config PORTX= input. Contoh : Config PORTA = input.

BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Konfigurasi Pin tertentu dalam suatu Port. Dengan menggunakan cara ini berarti kita
menginginkan salah satu Pin atau beberapa Pin pada Port tertentu dikonfigurasi sebagai
input. Adapun cara penulisannya adalah:
Config PINX.Y = input. Contoh : Config PINA.3 = input.
Pada contoh tersebut dapat dilihat bahwa hanya Pin 3 (Pin ke 4, karena penomoran Pin
dimulai dari 0) pada PORTA yang dikonfigurasi sebagai input.

Setting Programmer
Seiring dengan berkembangnya jaman, saat ini begitu banyak jenis
downloader/programmer yang dijual dipasaran. USBASP adalah salah satu
downloader/programmer yang umum digunakan oleh user, bagi anda yang masih menggunakan
downloader/programmer parallel, BASCOM-AVR juga support karena saya masih hobi
menggunakannya tapi karena port parallel pada PC sudah semakin jarang. Sekarang sudah
semakin jarang yang menggunakan, dan lebih memilih USBASP karena setiap PC atau laptop
pasti ada port USBnya. Berikut cara setting untuk downloader/programmer parallel :
Option => Programmer => pilih STK200/STK300 Programmer => centang AUTOFLASH
=> OK
Sedangkan untuk USBASP anda harus menginstal terlebih dahulu drivernya libusb_0.1.12.1
silahkan download search aja di mbah google, bagi yang belum punya. Berikut cara setting untuk
downloader/programmer USBASP :
Option => Programmer => pilih USB ASP => centang AUTOFLASH => OK

Cukup mengenai pengenalan dasar BASCOM-AVR. Mari kita langsung bermain dengan
mikrokontrolernya







BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
APLIKASI SEDERHANA
MENGGUNAKAN BASCOM-AVR DAN
MIKROKONTROLER ATMEGA 16

1. Mikrokontroler Sebagai Output (Menggunakan LED).
Aplikasi sederhana yang biasa digunakan sebagai pengujian awal mikrokontroler. Buat
rangkaian sebagai berikut.


BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Rangkaian output diatas menggunakan LED dimana untuk mengaktifkan (menyalakan) LED
dengan memberikan logika 0. Ini yang disebut dengan rangkaian aktif low. Berikut listing
program pada BASCOM-AVR.

Listing Program:
$regfile "m16def.dat"
$crystal = 8000000
Config Portb = Output

Do
Portb = &B11111110
Wait 1
Portb = &B11111101
Wait 1
Portb = &B11111011
Wait 1
Portb = &B11110111
Wait 1
Portb = &B11101111
Wait 1
Portb = &B11011111
Wait 1
Portb = &B10111111
Wait 1
Portb = &B01111111
Wait 1
Loop
End
Hasil Pengujian :
Anda akan melihat nyala LED yang berjalan (running LED). Berikut hasil pengujian yang
ditampilkan pada tabel.
No. Port B
Output (LED)
PB .7 PB .6 PB .5 PB .4 PB .3 PB .2 PB .1
L
PB .0
1. &B11111110 1 1 1 1 1 1 1 0
2. &B11111101 1 1 1 1 1 1 0 1
3.
&B11111011
1 1 1 1 1 0 1 1
4.
&B11110111
1 1 1 1 0 1 1 1
5. &B11101111 1 1 1 0 1 1 1 1
6. &B11011111 1 1 0 1 1 1 1 1
7. &B10111111 1 0 1 1 1 1 1 1
8. &B01111111 0 1 1 1 1 1 1 1
NB : 1 = LED mati, 0=LED nyala

BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
2. Mikrokontroler Sebagai Output (Menggunakan LED).
Aplikasi berikutnya juga biasa digunakan sebagai pengujian awal I/O pada
mikrokontroler. Buat rangkaian sebagai berikut.


Rangkaian output diatas menggunakan switch sebagai input dan LED sebagai output. Berikut
listing program pada BASCOM-AVR.



BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Listing Program:
$regfile "m16def.dat"
$crystal = 8000000
Config Portb = Output
Config Portd = Input
Portb=&11111111
Portd=&11111111

Do
Portb = Pind
Loop
End

Hasil Pengujian :
Anda akan melihat nyala LED sesuai dengan urutan switch yang ditekan. Berikut hasil
pengujian yang ditampilkan pada tabel.

Kondisi Switch
(SW)
LED
PortB.7 PortB.6 PortB.5 PortB.4 PortB.3 PortB.2 PortB.1 PortB.0
PortD.0 ditekan 1 1 1 1 1 1 1 0
PortD.1 ditekan 1 1 1 1 1 1 0 1
PortD.2 ditekan 1 1 1 1 1 0 1 1
PortD.3 ditekan 1 1 1 1 0 1 1 1
PortD.4 ditekan 1 1 1 0 1 1 1 1
PortD.5 ditekan 1 1 0 1 1 1 1 1
PortD.6 ditekan 1 0 1 1 1 1 1 1
PortD.7 ditekan 0 1 1 1 1 1 1 1
NB : 1 = LED mati, 0=LED nyala







BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
3. LCD
Kali ini kita akan mencoba, menggunakan lcd yang umum digunakan yaitu lcd 16x2,
hanya beberapa pin yang digunakan untuk mengendalikan LCD,yaitu pin : RS, Enable,
DB4, DB5, DB6, DB7. 6 pin ini dihubungkan dengan 6 pin pada mikrokontroler,
peletakan pin pada mikrokontroler sesuka anda. Berikut contoh rangkaian lcd 16x2 yang
dikendalikan menggunakan mikrokontroler.






BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Listing Program:
$regfile "m16def.dat"
$crystal = 11059200
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4
, Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2
Cursor Off mematikan cursor pada LCD
Cls clearscreen = bersihkan layar LCD
Do
upperline
Lcd " Ivan antariksa "
lowerline
Lcd " G1D007041 "
Loop
End

Hasil Pengujian



4. Motor Servo
Motor servo adalah sebuah motor DC yang dilengkapi rangkaian kendali dengan
sistem closed feedback yang terintegrasi dalam motor tersebut. Pada motor servo posisi
putaran sumbu (axis) dari motor akan diinformasikan kembali ke rangkaian kontrol yang
ada di dalam motor servo.
Motor servo disusun dari sebuah motor DC, gearbox, variabel resistor (VR) atau
potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas
maksimum putaran sumbu (axis) motor servo. Sedangkan sudut dari sumbu motor servo
diatur berdasarkan lebar pulsa yang pada pin kontrol motor servo.
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Operasional motor servo dikendalikan oleh sebuah pulsa selebar 20 ms, dimana
lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir dari range sudut maksimum.
Apabila motor servo diberikan pulsa dengan besar 1.5 ms mencapai gerakan 90, maka
bila kita berikan pulsa kurang dari 1.5 ms maka posisi mendekati 0 dan bila kita berikan
pulsa lebih dari 1.5 ms maka posisi mendekati 180. Berikut gambaran untuk pulsa yang
diberikan pada motor servo, menyebabkan servo bergerak pada sudut tertentu.
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang

Banyak aplikasi dari penggunaan motor servo seperti misalnya : tutup dan buka jendela,
pendorong pada alat/mesin penjual rokok, robot lengan, robot laba-laba, dll.
Berikut contoh sederhana untuk mengendalikan satu buah motor servo menggunakan
mikrokontroler ATMega16.
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang

Menggunakan port A.0, tidak ada pin khusus pada mikrokontroler untuk pemasangan motor
servo, semua pin bisa digunakan, hanya butuh melakukan konfigurasi. Berikut listing program
menggunakan BASCOM AVR.
Listing Program:
$regfile "m16def.dat"
$crystal = 11059200
Config Servos = 1 , Servo1 = Porta.0 , Reload = 10
Config Porta.0 = Output
Enable Interrupts


Do
Servo(1) = 45
Wait 3
Servo(1) = 90
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Wait 3
Loop
End 'end program

Hasil Pengujian
Gerakan servo putar kanan dan kiri

5. Relay, driver relay dan Motor DC
Pada pengendalian relay kita membutuhkan penguat arus. Yang umum digunakan
adalah rangkaian transistor atau langsung menggunakan IC ULN2803. Kenapa
dibutuhkan penguat arus? karena mikrokontroler memiliki kemampuan mengeluarkan
arus yang kecil sehingga tidak mampu untuk mengaktifkan koil pada relay. Berikut
rangkaiannya.

Menggunakan port A.0, tidak ada pin khusus pada mikrokontroler untuk pemasangan output
seperti relay ini, semua pin bisa digunakan, hanya butuh melakukan konfigurasi. Berikut listing
program menggunakan BASCOM AVR.
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Listing Program:
$regfile "m16def.dat"
$crystal = 11059200
Config Porta.0 = Output
Motor1a alias porta.0
Motor1b alias porta.1
Porta=0
Do
Motor1a = 0
Motor1b= 1
Wait 3
Motor1a = 1
Motor1b = 0
Wait 3
Loop
End 'end program


Hasil Pengujian
Gerakan Motor DC searah putaran jam selama 3 detik dan dan berputar berlawanan
selama 3 detik.

6. Seven Segment
Pada sebuah alat elektronik tampilan berupa angka, biasa menggunakan seven
segment. Bagian dalam dari setiap segmennya adalah LED yang di rangkai seri atau
parallel tergantung produknya. Ada dua jenis seven segmen, yaitu : common anoda dan
common katoda. Untuk yang common anoda berarti anoda dari setiap segmentnya telah
menjadi satu jadi dan dihubungkan dengan tegangan positif, sedangkan untuk
menyalakan masing-masing segmennya dibutuhkan tegangan negatif. Sebaliknya utk
common katoda berarti katoda dari setiap segmentnya telah menjadi satu jadi dan
dihubungkan dengan GND, sedangkan untuk menyalakan masing-masing segmennya
dibutuhkan tegangan positif. Banyak metode yang digunakan untuk mengendalikan
penyalaan seven segment menggunakan mikrokontroler. Salah satunya adalah masing-
masing segment (a,b,c,d,e,f,g,h) dihubungkan dengan pin pada mikrokontroler. Berikut
rangkaiannya.

BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang

Listing program
$regfile "m16def.dat"
$crystal = 11059200
Config Porta = Output
Porta = 255

Do
Porta = &B11000000 '0
Wait 1
Porta = &B11111001 '1
Wait 1
Porta = &B10011011 '2
Wait 1
Porta = &B11001111 '3
Wait 1
Loop


BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Hasil Pengujian seven segmen
Akan menampilkan angka 0,1,2, dan 3 secara bergantian dengan selang waktu 1 detik.

7. Sensor Cahaya
Sensor cahaya banyak digunakan dalam dunia otomatisasi, misalnya pada alat
penghitung(counter) kendaraan, penyalaan lampu jalan otomatis, pengukuran kecepatan
kendaraan, pintu gerbang otomatis, dll. Salah satu sensor cahaya yang umum digunakan
adalah photodiode. Photodiode akan melewatkan arus jika terkena cahaya matahari,
semakin besar cahaya yang diterima, maka akan semakin banyak arus yang dapat
dilewatkan. Berikut rangkaian sensor cahaya yang dihubungkan dengan mikrokontroler
dan LCD 16x2 sebagai tampilan hasil pengolahan mikrokontroler dari masukan sensor
cahaya.


BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Pada rangkaian sensor cahaya seperti ini, dapat digunakan sebagai inputan, yang dapat
memberikan logika 1 jika sensor terkena cahaya dan memberikan logika 0 ke mikrokontroler jika
tidak terkena cahaya matahari. Masukkan program berikut :
Listing Program
$regfile "m16def.dat"
$crystal = 11059200
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5
= Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2
Config porta.0 = input konfigurasi porta.0 sbg inputan dari sensor
Cursor Off mematikan cursor pada LCD
Cls clearscreen = bersihkan layar LCD
upperline
Lcd " Sensor Cahaya "
lowerline
Lcd " Ivan antariksa "
Wait 1
cls
Porta.0=1
Do
If pina.0 =0 then
Upperline
Lcd Gak Kena Cahaya
Else
Lowerline
Lcd Kena Cahaya
End if
Loop
End

Hasil Pengujian
Tampilan pada LCD Gak Kena Cahaya ketika sensor ditutupi, dan tampilan pada LCD
Kena Cahaya ketika sensor diberi cahaya.

8. Sensor Suhu (LM35)
Sensor suhu yang umum digunakan adalah LM35. Cukup ekominis, banyak dijual
dipasaran, dan mudah penggunaannya adalah alasan kenapa sensor ini banyak
diminati. Keluaran sensor berupa tegangan, dimana setiap kenaikan 1
o
C, tegangan
keluaran sensor akan naik 10mV. Mikrokontroler yang kita gunakan ATMega16
yang memiliki fasilitas ADC (Analog to Digital Converter) 10 bit. Keluaran
sensor langsung dihubungkan dengan ADC. Berikut rangkaiannya.
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang



Ada beberapa metode yang digunakan untuk mengkonversi nilai adc yang ditangkap
mikrokontroler menjadi data suhu. Saya lebih suka menggunakan rumus, berikut rumusnya :
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang



Dimana telah kita ketahui dari datasheet LM35 bahwa setiap kenaikan 1
o
C, tegangan keluaran
sensor akan naik 10mV. Dan Vref adalah tegangan referensi, tegangan yang masuk ke kaki
AREF pada mikrokontroler, dapat diukur menggunakan AVO. Kita misalkan Vref yang
digunakan adalah = 3,5 Volt. Dan pembacaan nilaiADC sensor LM 35 adalah 210. Maka,



Vin, kita konversi ke mV sehingga menjadi 718 mV dan dibagi 10 untuk mendapatkan data
suhunya.
.
Silahkan masukkan program dibawah dengan Vref= 3,5 Volt, silahkan ukur terlebih dahulu
tegangan referensi yang anda gunakan.

Listing Program
$regfile "m16def.dat"
$crystal = 11059200
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5
= Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2
Deflcdchar [0],28,20,28,32,32,32,32,32 karakter
o

Config Adc = Single , Prescaler = Auto
Dim nilaiadcsensor as word
Dim suhu as single
Dim vin as single

Cursor Off mematikan cursor pada LCD
Cls clearscreen = bersihkan layar LCD
upperline
Lcd "Pengujian S.Suhu"
lowerline
Lcd " Ivan Anatariksa "
Wait 1
cls
Start Adc
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Do
Nilaiadcsensor=getadc(0)
Vin = Nilaiadcsensor*3.5
Vin=Vin/1023
Vin=Vin*1000 biar jadi mV
Suhu=vin/10 kenaikan 10mV setiap kenaikan 1
o
C
upperline
Lcd "Suhu = "; fusing(suhu, "#.##");chr(0);C

Loop
End

Hasil pengujian
Tampilan suhu pada LCD dengan 2 digit angka dibelakang koma.


9. Optokopler
Optokopler terdiri dari bagian pemancar dan penerima, bagian pemancarnya
menggunakan LED dan penerimanya menggunakan sensor cahaya, ada yang
menggunakan photodiode atau phototransistor. Banyak sekali jenis optokopler di pasaran,
ada yg model IC misalnya 4n25, PC817, dll sedangkan yang model lain ada yang berupa
optokopler U. Opkopler dapat digunakan untuk pendeteksi logika high/low, penghitung
pulsa, dll. berikut gambaran dari optokopler.

BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Pada aplikasi kali ini akan menggunakan optokopler U seperti pada gambar di atas (sebelah kiri),
untuk mendeteksi ada dan tidaknya benda yang melewati celah. Berikut rangkaiannya.

Masukkan program berikut.
Listing Program
$regfile "m16def.dat"
$crystal = 11059200
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5
= Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2
Config porta.0 = input konfigurasi porta.0 sbg inputan dari sensor
Cursor Off mematikan cursor pada LCD
Cls clearscreen = bersihkan layar LCD
upperline
Lcd " Optokopler U "
lowerline
Lcd " Ivan Antariksa "
Wait 1
cls
Porta.0=1
Do
If pina.0 =0 then
Upperline
Lcd Ada Benda
BUKU SEDERHANA ANTARA CINTA DAN MIKROKONTROLER
IVAN ANATARIKSA
Jln. Jalan Pembangunan No:19 Rt:05 Rw:02 Pasar Ujung Kepahiang
Else
Lowerline
Lcd Tidak Ada Benda
End if
Loop
End

You might also like