PENGERTIAN DAN PENERAPAN APLIKASI MIKROKONTROLER
PENGERTIAN DAN PENERAPAN APLIKASI MIKROKONTROLER
Mikrokontroler adalah single chip computer yang memiliki kemampuan untuk diprogram
dan digunakan untuk tugas-tugas yang berorientasi kontrol. Mikrokontroler
datang dengan dua alasan utama, yang pertama adalah kebutuhan pasar (market
need) dan yang kedua adalah perkembangan teknologi baru. Yang dimaksud
dengan kebutuhan pasar adalah kebutuhan yang luas dari produk-produk elektronik
akan perangkat pintar sebagai pengontrol dan pemroses data. Sedangkan yang
dimaksud dengan perkembangan teknologi baru, yaitu teknologi semikonduktor
dengan kandungan transistor yang lebih banyak namun membutuhkan ruang yang
kecil sehingga memungkinkan pembuatan chip dengan kemampuan komputasi yang
sangat cepat, bentuk yang semakin mungil, dan harga yang semakin murah.
Mikrokontroler AVR
:: Artikel Berbasis Mikrokontroller AVR – Hadir kembali di blog Elektronika Industri yang kali
ini akan mengupas tentang Artikel
Berbasis Mikrokontroller AVR setelah kemarin kita sudah bahas Pengertian Mikrokontroller.
Sebenarnya apakah yang disebut
dengan pengertian mikrokontroler ? Sebuah kontroler digunakan
untuk mengontrol suatu proses atau aspek-aspek dari lingkungan. Satu contoh
aplikasi mikrokontroler adalah untuk memonitor rumah. Ketika suhu naik,
kontroler membuka jendela dan sebaliknya. Pada masanya, kontroler dibangun dari
komponen-komponen logika secara keseluruhan, sehingga menjadikannya besar dan
berat. Setelah itu barulah dipergunakan mikrokprosesor sehingga keseluruhan
kontroler masuk kedalam PCB yang cukup kecil. Hingga saat ini masih sering kita
lihat kontroler yang dikendalikan oleh mikroprosesor biasa (Zilog Z80, Intel
8088, Motorola 6809, dan sebagainya).
Proses pengecilan komponen terus
berlangsung, semua komponen yang diperlukan guna membangun suatu kontroler
dapat dikemas dalam satu keping. Maka lahirlah komputer keping tunggal (one
chip microcomputer) atau disebut juga mikrokontroler. Mikrokontroler adalahsuatu
IC dengan kepadatan yang sangat tinggi, dimana semua bagian yang diperlukan
untuk suatu kontroler sudah dikemas dalam satu keping, biasanya terdiri dari:
o CPU
(Central Processing Unit)
o RAM
(Random Access Memory)
o EEPROM/EPROM/PROM/ROM
o I/O,
Serial & Parallel
o Timer
o Interupt
Controller
o Dan
lain-lain
Biasanya mikrokontroler memiliki
instruksi untuk manipulasi
bit, akses ke I/O secara langsung dan mudah, dan proses
interupt yang cepat dan efisien. Dengan kata lain mikrokontroler adalah ”
Solusi satu Chip” yang secara drastis mengurangi jumlah komponen dan biaya
disain (harga relatif murah).
Mikrokontroller juga bisa
dikatakan sebagai piranti elektronik berupa IC(Integrated Circuit)yang
memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan
instruksi (program) yang dibuat oleh programmer. Mikrokontroller merupakan
contoh suatu sistem komputer sederhana yang masuk dalam kategori embedded komputer. Dalam sebuah
struktur mikrokontroller akan ditemukan juga komponen-komponen seperti:
processor, memory, I/O, clock, dan lain-lain. Gambar dibawah ini
merupakan beberapa bentuk paket mikrokontroller keluaran ATMEL.
Dan Berikut Contoh Aplikasi Mikrokontroler pada penerapannya :
Aplikasi Mikrokontroler dan Programnya
Tahap pertama adalah merancang perangkat keras (hardware), yang meliputi
rangkaian – rangkaian
elektronika dan alat putar keramik. Tahap kedua adalah perancangan algoritma,
listing program pada software Code Vision AVR dan penanaman listing
program pada mikrokontroler AVR ATMega16 dengan menggunakan software ISP
Programmer.
Perancangan Perangkat Keras
Seluruh perangkat atau komponen yang digunakan dalam perancangan pengaturan
kecepatan pada alat putar keramik menggunakan motor AC ini, tersusun seperti pada
blok diagram di bawah ini.
Gambar Blok Diagram Pengaturan Kecepatan Motor
AC
Pada Alat Putar Keramik
Pada Alat Putar Keramik
Blok diagram diatas, secara garis besar dapat
dijelaskan sebagai berikut.
1. Keypad digunakan sebagai alat untuk memasukkan nilai kecepatan putaran
yang diinginkan (nilai setpoint). Keypad dihubungkan ke PORTB
mikrokontroler AVR ATMega16. Nilai dari keypad tersebut mewakili nilai
kecepatan putaran dengan satuan rotation per minute (rpm). Nilai yang diijinkan
sebesar antara 60–150rpm.
2. Nilai setpoint akan diolah sedemikian rupa dengan menggunakan suatu
program yang ditanamkan pada mikrokontroler AVR ATMega16, sehingga nilai
tersebut dapat ditampilkan pada LCD dan digunakan pada register OCR1A yang
berfungsi untuk membangkitkan sinyal PWM.
3. Sinyal PWM dibangkitkan setelah nilai pada register OCR1A terisi (OCR1A ≠
0) dan sinyal PWM dikeluarkan melalui Pin 19 PORTD.5 (OC1A)
pada mikrokontroler AVR ATMega16.
4. Sinyal PWM tersebut akan memicu TRIAC Optoisilator pada rangkaian
driver motor AC. Rangkaian zero crossing detector telah tersedia dalam
satu paket (Onpackage) IC TRIAC Optoisolators MOC3041, sehingga titik
acuan sinyal PWM pada saat mengatur sinyal sinusoidal (tegangan AC)
dimulai pada saat perpotongan titik nol (zero crossing). Keluaran dari
TRIAC Optoisolators tersebut (pin 6) akan memicu gate TRIAC (Q4004LT)
sehingga memberikan arus pada motor AC.
5. Motor AC akan menggerakkan alat putar keramik dan alat putar tersebut
akan dideteksi putarannya setiap 1 detik (Timer 0) oleh sensor putaran
(phototransistor). Pendeteksian putaran alat putar ini bertujuan untuk
mengetahui apakah kecepatan putaran alat putar sama dengan nilai setpoint
yang diberikan. Kecepatan alat putar akan dipengaruhi oleh beban (tanah
liat) yang bervariasi. Kecepatan akan berkurang apabila beban semakin
berat, oleh karena itu sensor pun berfungsi untuk mengetahui kecepatan
alat putar terhadap beban.
fitur interupsi eksternal mikrokontroler akan mengetahui setiap kali
sensor memberikan respon (logika 0).
6. Program pengaturan alat putar pada mikrokontroler ATMega16 akan
mengatur dan membandingkan antara kecepatan setpoint dan kecepatan
yang sesungguhnya (real time). Jika sensor mendeteksi kecepatan alat
putar setpoint-nya, maka program akan mengatur (mengurangi) nilai
pada OCR1A dan jika sensor mendeteksi kecepatan alat putar lebih lambat
dari pada kecepatan setpointnya, maka program akan mengatur (menambahi)
nilai pada register OCR1A.
Perancangan Rangkaian Sistem Minimum AVR ATMega16
Mikrokontroler AVR ATMega16 dapat dioperasikan dengan cara
menambahkan beberapa komponen elektronika yang berfungsi sebagai komponen
pendukungnya.
Mikrokontroler AVR ATMega16 dapat dioperasikan dengan cara menambahkan beberapa komponen elektronika yang berfungsi sebagai komponen pendukungnya.
Mikrokontroler dan komponen komponen pendukung tersebut tergabung dalam
satu rangkaian yang disebut sebagai rangkaian sistem minimum.
Rangkaian Sistem Minimum AVR ATMega16
Kristal yang digunakan pada rangkaian sistem minimum
di atas, mengunakan frekuensi 4 MHz. Kristal tersebut digunakan untuk
pembangkit clock (osilator), dimana setiap 1 intruksi/perintah dalam
program dieksekusi dalam 1 siklus clock. Pin RESET dihubungkan dengan
rangkaian kombinasi RC dan push button, yang bertujuan agar mikrokontroler
dapat di-reset. Fungsi dari port - port lainnya adalah sebagai berikut.
1. PORTA, digunakan sebagai pin masukkan untuk Keypad 3X42. PORTB, digunakan sebagai pin keluaran untuk LCD
3. PORTD.0 dan PORTD.1, digunakan sebagai pin masukan untuk tombol START
dan tombol STOP
4. PORTD.3, digunakan sebagai pin masukkan untuk sensor putaran (Ext. Interrupt)
5. PORTD.5 dan PORTD.6, digunakan sebagai pin keluaran untuk sinyal PWM.
Perancangan Rangkaian Downloader
Rangkaian downloader merupakan rangkaian penghubung antara komputer
dan mikrokontroler yang berfungsi untuk memasukan listing program (berupa
bit – bit logika) ke dalam mikrokontroler. Listing program yang dikirim
oleh software dari komputer ke dalam mikrokontroler biasanya berbentuk
file *.hex (heksadesimal). Pada umumnya rangkaian downloader terdiri dari
kabel penghubung jenis DB25 atau jenis
DB9. Sinkronisasi tegangan antara tegangan dari komputer dan
tegangan mikrokontroler menggunakan sebuah buffer. Rangkaian downloader
ditunjukkan seperti gambar di bawah ini :
Gambar Rangkaian downloader DB 25
Gambar. Rangkaian downloader mikrokontroler
Rangkaian di atas menggunakan port DB 25 sebagai
alat penghubung antara komputer dan alat downloader, sedangkan IC 74HCT244
digunakan sebagai buffer. Software yang digunakan untuk mendownload program
(file: *.hex) ke dalam mikrokontroler ini adalahISP Programmer (Adam
Dybkowsky).
Gambar.Tampilan Software ISP Programmer (Adam
Dybkowsky)
Perancangan Rangkaian Keypad dan LCD
Keypad merupakan tombol elektronik yang terdiri dari kombinasi beberapa
saklar yang terrangkai dalam bentuk kolom dan baris. Pada perancangan alat
putar ini, keypad digunakan sebagai alat untuk masukan nilai setpoint
kecepatan putaran alat putar keramik. Keypad yang digunakan adalah keypad
3×4 yang terdiri dari 3 kolom dan 4 baris (7 pin). Untuk mengetahui tombol
mana yang sedang ditekan, keypad diatur oleh
mikrokontroler dengan cara memberikan bit – bit logika pada baris atau
kolomnya. Keypad ini dihubungkan melalui kabel pin (7 pin) ke salah satu
port mikrokontroler. Rangkaian keypad ditunjukkan seperti Gambar 3.6 di
bawah ini.
Gambar. Rangkaian Keypad 3×4
Keypad ini akan diaktifkan dan dideteksi oleh bit bit
logika dari port port mikrokontroller (PORT B1......7). Bagian kolom keypad
akan diberi logika "0" oleh mikrokontroller, sedangkan bagian baris
akan diberi logika "1". Pada setiap port pada mikrokontroler AVR
ATMega16 telah terintegrasi rangkaian pull up resistor, sehingga apabila salah
satu baris dari keypad terhubung (short) dengan salah satu kolom, maka akan
memberikan logika "0" pada baris yang terhubung tersebut. Cara
mendeteksi bit bit untuk bagian baris tersebut menggunakan teknik scanning
port.
Liquid crystal display (LCD) merupakan suatu jenis media tampilan yang
menggunakan kristal cair sebagai penampil utama. Pada perancangan ini, LCD akan
digunakan sebagai alat penampil kode ASCII (huruf dan angka) yang berdasarkan
masukan dari keypad. LCD yang digunakan berjenis LCD 16×2 seri DV-16230
data vision taiwan. LCD ini tidak memiliki cahaya latar (backlight)
akan tetapi dapat diatur kekontrasannya. Bentuk dan rangkaian LCD
ditunjukkan oleh gambar dibawah ini :
Gambar rangkaian LCD
Software Code Vision AVR telah menyediakan
fitur LCD untuk mengatur port I/O LCD, sehingga tidak akan banyak
mengalami kesulitan dalam merancang instruksi programnya. LCD akan
menampilkan nilai kecepatan (setpoint), hasil deteksi sensor putaran dan
nilai register OCR1A untuk mengatur duty cycle Fast PMW.
Perancangan Rangkaian Driver Motor AC
Komponen uta ma
dari rangkaian driver
motor AC ini adalah
IC TRIAC Optoisolators Tipe M OC3041 dan TRIAC Tipe Q4004LT.
TRIA C Optoisolators yang digunakan telah memiliki rangkaian zero
crossing di dalamnya.. Rangkaian driver motor AC akan memicu
motor AC jika pin 2 pada IC MOC3041 diberi logika “0” (low). Bit – bit logik
a yang diberikan pada IC tersebut berupa si nyal PWM yang diatur oleh register OCR1A
(duty cycle) pada mikrokontroler. Rangkaia n driver motor AC ini
ditunjukkan oleh Gambar di bawah ini
Gambar Rangkaian motor driver AC
Rangkaian Zero Crossing
yang terdapat IC MOC3 041
berfungsi untuk menentukan titik nol gelombang sinusoidal,
dimana titik nol ter sebut merupakan titik acuan untuk dimulain ya pemicuan
oleh sinyal PWM.
Perancangan Rangkaian Sensor Putaran
Rangkaian sensor
untuk mendeteksi putaran alat
pu tar ini, terdiri dari Phototransistor tipe
H21A1 dan piringan sensor dengan lubang sebanyak 12 lubang
Gambar alat sensor putaran
Gambar rangkaian photo transistor
Sensor putaran akan memberikan logika “0” pada saat celah
pada
phototransistor men deteksi lubang dan sensor
putaran akan memberikan logika “1” pada saat celah pada phototransistortidak
mendeteksi lubang. Jarak antar lubang pada piringan sensor dari keenam lubang
tersebut mewakili 5 rpm dan banyaknya lubang yang dideteksi sensor akan
dijumlahkan setiap 1 detik sekali oleh interupsi Timer 0.
(Contoh:
|
60rpm
|
=
|
12 lubang per detik).
|
Hal ini bertujuan
|
untuk
|
membandingkan
|
kecepatan
|
antara
|
kecepatan setpoint dan
|
kecepatan real
|
time.
|
Pendeteksian ini
|
menggunakan fitur interupsi eksternal 0 (pin INT0)
pada mikrokontroler ATMEGA 16
Perancangan Alat Putar Keramik
Alat putar
keramik yang akan dirancang
terbuat dari bahan semen dan berporoskan
batang besi. Pada bagian besi poros tersebut dipasan gi bearing, pulley dan
piringan sensor. Pulley dihubungkan motor AC dengan menggunakan tali
penghubung (belt). Gambar di bawah ini menunjukkan gambar rancangan alat putar
keramik
Perancangan Program Mikrokontroler
Tahap kedua dari perancangan ini adalah merancang
suatu program mikrokontroler yang bertujuan untuk mengolah nilai suatu
variabel (keypad dan sensor), menampilkan suatu karakter pada LCD,
mengatur interupsi eksternal 1, mengubah nilai setpoint menjadi
sinyal Fast PWM dan mengatur kecepatan motor AC.
Program mikrokontroler yang akan dibuat menggunakan
b ahasa C dan beberapa bahasa assembly pada software Code Vision.
Cara kerja dari program pengaturan motor AC terhadap beban bervariasi adalah
seperti flowchart di bawah ini.
Gambar flowchart pengaturan putaran
Gambar flowchart
Interupsi eksternal 0 digunakan untuk mendeteksi bit
“0” pada PORD.3 (pin INT0).
Banyaknya bit “0” yang masuk pada PORD.3 akan
dihitung dan disimpan dalam register “sensor” setiap 1 detik sekali.
Dengan kata lain, nilai pada register “sensor” akan dinolkan
terlebih dahulu jika sudah mencapai 1 detik.
Interupsi timer 1 digunakan untuk membuat interupsi
setiap 1 detik. Pada saat interupsi timer 1 ini terjadi, nilai padaregister “sensor”
akan di-update dan dibandingkan dengan nilai register “PWM”.
Nilai register OCR1A akan diubah (ditambah/dikurangi) apabila hasil perbandingan
berbeda.
Timer/Counter 1A berfungsi sebagai pembangkit sinyal Fast PWM.
Besar duty cycle dari Fast PWM ini diatur oleh
register OCR1A, sehingga dari register inilah motor AC dapat
diatur kecepatannya.
Program Keypad
Listing program keypad yang digunakan
pada perancangan alat putar ini dapat dilihat pada potongan program
dibawah ini.
Keypad diaktifkan dengan cara memberikan bit low pada
bagian kolom keypad dan
memindai bit low pada bagian baris.
Program LCD
Listing program LCD yang digunakan pada perancangan
alat putar ini dapat dilihat pada potongan program dibawah ini.
Program Interupsi Eksternal 1 dan Timer/Counter 0
Program interupsi eksternal 1 diatur oleh fitur
interupsi eksternal 0 (INT0) ATMEGA16. Interupsi eksternal 1 ini akan
berfungsi jika register – register yang berhubungan dengan interupsi
eksternal 1 diatur. Interupsi eksternal 1 akan terjadi apabila PORTD.3
diberi logika 0 (clear bit). Listing program Interupsi Eksternal 1
yang digunakan pada perancangan alat putar ini dapat dilihat pada potongan
program
dibawah ini.
Jika phototransistor mendeteksi lubang pada piringan
sensor, maka rangkaian sensor akan memberikan logika “0” ke PORTD.3 dan
logika 1 jika tidak mendeteksi lubang. Program Timer/Counter 1 pada
perancangan ini digunakan untuk membuat interupsi setiap 1 detik. Besarnya
waktu selama 1 detik ini dapat diperoleh dengan menggunakan persamaan
(2.9). Timer/Counter 0 (TCNT0) hanya mempunyai register
sebesar FF (255), sehingga TMAX dapat dihitung
sebagai berikut.
Untuk mempermudah mendapatkan waktu 1 detik dapat
dilakukan dengan cara membuat interupsi setiap 20mS, kemudian pada program
interupsi tersebut ditambahkan program counter untuk menghitung kejadian
interupsi sebanyak 50 kali. Contoh listing program interupsi pada
Timer/Counter 0 seperti dibawah ini.
Program Fast PWM
Motor AC yang digunakan untuk memutar alat putar
keramik, menggunakan listrik bertegangan 220VAC dengan frekuensi sebesar
50Hz. Tegangan tersebut akan diatur oleh sinyal PMW dari mikrokontroler
dengan memanfaatkan fitur Timer/Counter 1 dengan mode Fast PWM.
Maka, Fast PWM yang diatur oleh Timer/Counter 1 akan
mengatur kedua siklus tersebut setiap 10mS sekali.
Nilai prescaler yang
tersedia hanya sebesar 0, 1, 8, 64, 256 dan 1024, maka diambil yang nilai
lebih mendekati nilai tersebut, yaitu 64. Listing program Fast PWM yang
digunakan pada perancangan alat putar ini dapat dilihat pada potongan
program dibawah ini :
Program Pengaturan Kecepatan Motor AC
Listing program pengaturan motor AC yang digunakan
pada perancangan alat putar ini dapat dilihat pada potongan program
dibawah ini.
Pengisian Program Ke Mikrokontroler
Listing program yang telah di-compile ke dalam
bentuk file *.hex oleh Code Vision AVR dapat langsung diisikan ke dalam
mikrokontroler. Berikut ini langkah – langkah pengisian program ke
mikrokontroler ATMega 16 dengan menggunakan software ISP Programmer.
1. Rangkaian downloader (DB25) dihubungkan terlebih
dahulu ke port DB25 (komputer) menggunakan kabel konektor DB25 dan
rangkaian downloader (mikrokontroler) menggunakan kabel konektor 6 pin.
2. Rangkaian downloader diberi tegangan sebesar 5V.
3. Komputer diaktifkan dan Software ISP Programmer
dijalankan, sehingga tampil seperti gambar ISP program di atas, kemudian
pilih “AVR” pada List Box di sebelah “Current RESET Status” dan pilih
frekuensi sebesar 4MHz.
4. Untuk mengetahui apakah rangkaian downloader
berfungsi dan mikrokontroler
terbaca, tombol “Read signature:” ditekan. Jika
mikrokontroler belum terbaca,
maka akan tampil seperti Gambar 3.22 di bawah ini.
Jika mikrokontroler terbaca,
maka akan tampil seperti Gambar 3.23.
Gambar tampilan program mikrokontroler jika belum
terbaca
Dikutip dari : Hasil karya TA mahasiswa yang tidak
diketahui identitasnya, dengan di edit seperlunya tanpa mengurangi isi dan
makna
dipostingkan di sini hanya
untuk tujuan pembelajaran tanpa adanya maksud lain .referensi
0 komentar:
Posting Komentar
Silakan berkomentar,komentar Anda sangat membantu dalam membangun Blog ini.
Terimakasih ... ^_^