WELCOME

This is not profesional blog. Just share and learn together. For optimum display please use google chrome browser. Thanks for visiting

Minggu, 07 Oktober 2012

Contoh 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

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 3X4
2. 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 LCD


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). Bitbit 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 phototransistor tidak 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
                                                                klik pada bagian gambar untuk memeperbesar gambar

                                       Gambar flowchar lanjutan gambar di atas
                                            klik pada bagian gambar untuk memperbesar

                                                                  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 pada register “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.
                                                              Gambar rancangan program
                                                                                 klik pada bagian gambar untuk memperbesar

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.

                                                   Gambar rancangan listing program LCD
                                                                        klik pada bagaian gambar u ntuk memperbesar gambar

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.


                                            Gambar rancangan gambar sensor putaran

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.

                                              Gambar program interupsi timer/ counter

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 : 
                                    Gambar rancangan listing program pada fast PWM


Program Pengaturan Kecepatan Motor AC
Listing program pengaturan motor AC yang digunakan pada perancangan alat putar ini dapat dilihat pada potongan program dibawah ini.
                                     Gambar rancangan program pengaturan kecepatan motor

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

                                   Gambar tampilan program mikrokontroler jika sudah terbaca






Dikutip dari : Hasil karya TA mahasiswa yang tidak diketahui identitasnya, dengan di edit seperlunya tanpa mengurangi isi dan makna
                    diposting kan di sini hanya untuk tujuan pembelajaran tanpa adanya maksud lain


























.

6 komentar:

  1. makasi infonya sangat bermanfaat mas :)

    BalasHapus
  2. sugguh membantu.oh ya yang pengen dapet dollar gratis.register get free $2.any unique visitor clicking your referral link get $0.5.minimum payout $30.visit:
    http://visitors2cash.com/ref.php?refId=24288

    BalasHapus
  3. mas minta source kode diatas yang lengkap ada gag??
    soalnya kepotong kyak gitu saya jadi bingung
    mkasih sebelumnya :)

    BalasHapus
  4. terima kasih mas tutorial mengenai mikrokontrolernya
    salam kenal

    BalasHapus
  5. Mikrokontroler memang kontroler yang paling populer saat ini dan sangat asyik untuk dipelajari

    BalasHapus
  6. Sangat bermanfaat, izin copas sebagai referensi

    BalasHapus