Mata Pelajaran: Sistem Kendali M I K R O K O N T R O L (S K M) MODUL PRESENTASI Mata Pelajaran: Sistem Kendali M I K R O K O N T R O L (S K M)
Kompetensi Dasar (KD): Standar Kompetensi (SK): Mengoperasikan Sistem Kendali Mikrokontrol Kompetensi Dasar (KD): Prinsip pengoperasian sistem pengendali mikro kontroler (KKM : 74) Merencanakan rangkaian kendali mikrokontroler sederhana (KKM : 72) Membuat Rangkaian kendali mikrokontroler sederhana (KKM : 70) Mengoperasikan sistem kendali mikrokontroler (KKM: 72) Memahami data operasi sistem kendali mikrokontroler (KKM : 72) Melakukan Tindakan Pengamanan pada sistem kendali Mikrokontrol yang mengalami gangguan (KKM : 75) Kriteria Ketuntasan Minimal (KKM) mapel : 72
Apa “Mikrokontroler” itu ? Mikrokontroler adalah suatu komponen semikonduktor yang didalamnya sudah terdapat suatu sistem mikroprosesor, Read Only Memory (ROM), Random Access Memory (RAM), dan port I/O
Dasar-dasar teknik digital Bilangan Biner (Mempunyai basis data 2) Bilangan Desimal Bilangan Biner 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
Perubahan Biner ke desimal diperoleh Contoh : rubahlah biner 101 ke desimal Langkah 1 : 1 0 1 Langkah 2 : 4 2 1 Langkah 3 : 4 2 1 Langkah 4 : 4 +0+1=5 Kesimpulan : 101 = 5
Latihan : Rubahlah biner ini menjadi desimal 10101 11011 10100 11111
Perubahan Desimal ke Biner Sistem Double-Dabble (Ganda-plus Sisa) Anda terus menerus membagi bilangan desimal dengan 2, dan menuliskan sisanya setelah dibagi. Kemudian sisanya diambil dalam urutan kebalikannya. Contoh : Rubah lah desimal 12 ke bilangan binernya 12/2 6 sisa 0 6/2 3 sisa 0 3/2 1 sisa 1 1/2 0 sisa 1 Jika dibaca dari bawah ke atas bilangan binernya 1 1 0 0
Latihan : Rubahlah desimal ke biner 5 10 25 40 97
Bilangan Heksa desimal (Mempunyai basis data 16)
Bilangan Heksa desimal Bilangan Desimal Bilangan Biner Bilangan Heksadesimal 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F
Contoh Bilangan heksa : 9AF Bilangan Heksa desimal Ke Biner Contoh Bilangan heksa : 9AF 9 A F 1001 1010 1111
Rubahlah Bilangan heksa ini ke biner C5E2 F8E6 AB12
1000 1100 C 8 Contoh Bilangan biner : 1000 1100 Bilangan Biner ke heksadesimal Contoh Bilangan biner : 1000 1100 1000 1100 C 8
Rubahlah Bilangan heksa ini ke biner 1110 1011 1011 1101 1011 1011
Buatlah konversi bilangan : 0 s.d 100 Desimal Biner Heksa
Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan output spesifik berdasarkan inputan yang diterima dan program yang dikerjakan.
Seperti umumnya komputer, mikrokontroler adalah alat yang mengerjakan instruksi-instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer.
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 adalah perkembangan teknologi semikonduktor yang memungkinkan pembuatan chip dengan kemampuan komputasi yang sangat cepat, bentuk yang semakin mungil, dan harga yang semakin murah
(Central Prosesor Unit) Program LED switch Memory Buzzer 1 2 3 4 5 6 7 8 9 + - keypad CPU (Central Prosesor Unit) Relay sensor Clock Sistem kerja mikrokontroler
LDR Sensor Cahaya LM35 Sensor suhu
Sistem Input Mikrokontroler Piranti input menyediakan informasi kepada sistem komputer dari dunia luar. Hampir semua input mikrokontroler hanya dapat memproses sinyal input digital dengan tegangan yang sama dengan tegangan logika dari sumber. Level nol (0) disebut dengan VSS dan tegangan positif sumber (VDD) umumnya adalah 5 volt. Ada beberapa mikrokontroler yang dilengkapi dengan piranti konversi ini, yang disebut dengan ADC, dalam satu rangkaian terpadu.
(Analog to Digital Converter) Sinyal digital Sinyal analog V t 5 V t 5 ADC (Analog to Digital Converter)
Sistem Output Mikrokontroler Piranti output digunakan untuk berkomunikasi informasi maupun aksi dari sistem komputer dengan dunia luar. Sistem mikrokontroler mempunyai output yang jauh lebih sederhana seperti lampu indikator atau beeper. Mikrokontroler mengolah sinyal secara digital, sehingga untuk dapat memberikan output analog diperlukan proses konversi dari sinyal digital menjadi analog. Piranti yang dapat melakukan konversi ini disebut dengan DAC (Digital to Analog Converter).
Tanpa DAC Dengan DAC Suhunya sekarang : Mikrokontroler 0110 0100 DAC ADC Sensor suhu Dengan DAC DAC Mikrokontroler ADC Sensor suhu Suhunya sekarang : 100
(Digital to Analog Converter) Sinyal analog Sinyal digital V t 5 V t 5 DAC (Digital to Analog Converter)
Keunggulan mikrokontroler Kehandalan tinggi (high reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration) Ukuran yang semakin dapat diperkecil (reduced in size) Penggunaan komponen dipersedikit (reduced component count) yang juga akan menyebabkan biaya produksi dapat semakin ditekan (lower manufacturing cost) Waktu pembuatan lebih singkat (shorter development time) sehingga lebih cepat pula dijual ke pasar sesuai kebutuhan (shorter time to market) Konsumsi daya yang rendah (lower power consumption)
Mikrokontroler AVR merupakan salah satu jenis arsitektur mikrokontroler yang menjadi andalan Atmel. Arsitektur ini dirancang memiliki berbagai kelebihan dan merupakan penyempurnaan dari arsitektur mikrokontroler-mikrokontroler yang sudah ada. Berbagai seri mikrokontroler AVR telah diproduksi oleh Atmel dan digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high performance. Di Indonesia, mikrokontroler AVR banyak dipakai karena fiturnya yang cukup lengkap, mudah untuk didapatkan, dan harganya yang relatif terjangkau. Antar seri mikrokontroler AVR memiliki beragam tipe dan fasilitas, namun kesemuanya memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda.
Berikut tabel perbandingan beberapa seri mikrokontroler AVR buatan Atmel
Keterangan: Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal
Arsitektur AVR Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta sudah menerapkan single level pipelining. Selain itu mikrokontroler AVR juga mengimplementasikan RISC (Reduced Instruction Set Computing) sehingga eksekusi instruksi dapat berlangsung sangat cepat dan efisien.
Seri ATtiny2313 banyak digunakan untuk sistem yang relatif sederhana dan berukuran kecil. Berikut adalah feature-feature mikrokontroler seri ATtiny2313. Kapasitas memori Flash 2 Kbytes untuk program Kapasitas memori EEPROM 128 bytes untuk data Maksimal 18 pin I/O 8 interrupt 8-bit timer Analog komparator On-chip oscillator Fasilitas In System Programming (ISP)
Sedangkan ATmega8535 banyak digunakan untuk sistem yang kompleks, memiliki input sinyal analog, dan membutuhkan memori yang relatif lebih besar. Berikut adalah feature-feature mikrokontroler seri ATmega8535. Memori Flash 8 Kbytes untuk program Memori EEPROM 512 bytes untuk data Memori SRAM 512 bytes untuk data Maksimal 32 pin I/O 20 interrupt Satu 16-bit timer dan dua 8-bit timer 8 channel ADC 10 bit Komunikasi serial melalui SPI dan USART Analog komparator 4 I/O PWM Fasilitas In System Programming (ISP)
PENJELASAN FUNGSI PIN MIKROKONTROLER AVR ATmega8535
A. Port A Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D converter.
B. Port B Merupakan 8-bit directional port I/O B. Port B Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.
Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
C. Port C Merupakan 8-bit directional port I/O C. Port C Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2.
D. Port D Merupakan 8-bit directional port I/O D. Port D Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.
Fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
E. RESET RST pada pin 9 merupakan reset dari AVR E. RESET RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset. F. XTAL1 XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit. G. XTAL2 XTAL2 adalah output dari inverting oscillator amplifier. H. AVcc Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.
AREF AREF adalah kaki masukan referensi bagi A/D Converter AREF AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini. J. AGND AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah
Sistem minimum (sismin) mikrokontroler adalah rangkaian elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan fungsi tertentu. Di keluarga mikrokontroler AVR, seri 8535 adalah salah satu seri yang sangat banyak digunakan. Untuk membuat rangkaian sismin Atmel AVR 8535 diperlukan beberapa komponen yaitu: IC mikrokontroler ATmega8535 1 XTAL 4 MHz atau 8 MHz (XTAL1) 3 kapasitor kertas yaitu dua 22 pF (C2 dan C3) serta 100 nF (C4) 1 kapasitor elektrolit 4.7 uF (C12) 2 resistor yaitu 100 ohm (R1) dan 10 Kohm (R3) 1 tombol reset pushbutton (PB1) Selain itu tentunya diperlukan power suply yang bisa memberikan tegangan 5V DC.
Pemrograman Bahasa C untuk AVR Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat dipelajari sebagai berikut.
1. Struktur penulisan program #include < [library1.h] > // Opsional #include < [library2.h] > // Opsional #define [nama1] [nilai] ; // Opsional #define [nama2] [nilai] ; // Opsional [global variables] // Opsional [functions] // Opsional void main(void) // Program Utama { [Deklarasi local variable/constant] [Isi Program Utama] }
2. Tipe data char : 1 byte ( -128 s/d 127 ) unsigned char : 1 byte ( 0 s/d 255 ) int : 2 byte ( -32768 s/d 32767 ) unsigned int : 2 byte ( 0 s/d 65535 ) Long : 4 byte ( -2147483648 s/d 2147483647 ) unsigned long : 4 byte ( 0 s/d 4294967295 ) float : bilangan desimal array : kumpulan data-data yang sama tipenya.
3. Deklarasi variabel & konstanta Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. Penulisan : [tipe data] [nama] = [nilai] ; Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah. Penulisan : const [nama] = [nilai] ; Tambahan: Global variabel/konstanta yang dapat diakses di seluruh bagian program. Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya.
4. Statement Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar. suhu=adc/255*100; //contoh rumus perhitungan suhu
5. Function Function adalah bagian program yang dapat dipanggil oleh program utama. Penulisan : [tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2]) { [statement] ; }
6. Conditional statement dan looping if else : digunakan untuk penyeleksian kondisi if ( [persyaratan] ) { [statement1]; [statement2]; } else { [statement3]; [statement4]; }
for : digunakan untuk looping dengan jumlah yang sudah diketahui for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement1]; [statement2]; }
while ( [persyaratan] ) { [statement1]; [statement2]; } while : digunakan untuk looping jika dan salama memenuhi syarat tertentu while ( [persyaratan] ) { [statement1]; [statement2]; }
do { [statement1]; [statement2]; } while ( [persyaratan] ) do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali do { [statement1]; [statement2]; } while ( [persyaratan] )
switch case : digunakan untuk seleksi dengan banyak kondisi switch ( [nama variabel] ) { case [nilai1]: [statement]; break; case [nilai2]: [statement]; break; }
7. Operasi logika dan biner Logika AND :&& NOT : ! OR : || Biner AND : & OR : | XOR : ^ Shift right : >> Shift left : << Komplemen : ~
8. Operasi relasional (perbandingan) Sama dengan : == Tidak sama dengan : != Lebih besar : > Lebih besar sama dengan : >= Lebih kecil : < Lebih kecil sama dengan : <=
9. Operasi aritmatika + , - , * , / : tambah,kurang,kali,bagi += , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator % : sisa bagi ++ , -- : tambah satu (increment) , kurang satu (decrement) Contoh : a = 5 * 6 + 2 / 2 -1 ; maka nilai a adalah 30 a *= 5 ; jika nilai awal a adalah 30, maka nilai a = 30x5 = 150. a += 3 ; jika nilai awal a adalah 30, maka nilai a = 30+5 = 33. a++ ; jika nilai awal a adalah 5 maka nilai a = a+1 = 6. a-- ; jika nilai awal a adalah 5 maka nilai a = a-1 = 4.
Dengan subject / judul : TUGAS SKM PENUGASAN TIDAK TERSTRUKTUR (PTT) XII TPTL-1 Carilah data sheet dari IC mikrokontroller dari type dibawah ini : boleh foto copy, download internet…terserah anda sumbernya !! Tugas Dapat dikirim Via e-mail ke : rokhmad_sragen@yahoo.com Dengan subject / judul : TUGAS SKM Dilengkapi dgn nama kelompok Atau dapat di Print, dikumpulkan ke Bp. Rokhmad Absen 1-4 Absen 5-8 Absen 9-12 Absen 13-17 Absen 18-20 Absen 21-24 Absen 25-28 Absen 29-32 Absen 33-34 Absen 35 -36
Dengan subject / judul : TUGAS SKM PENUGASAN TIDAK TERSTRUKTUR (PTT) XII-TPTL-2 Carilah data sheet dari IC mikrokontroller dari type dibawah ini : boleh foto copy, download internet…terserah anda sumbernya !! Tugas Dapat dikirim Via e-mail ke : rokhmad_sragen@yahoo.com Dengan subject / judul : TUGAS SKM Dilengkapi dgn nama kelompok Atau dapat di Print, dikumpulkan ke Bp. Rokhmad Absen 1-4 Absen 5-8 Absen 9-12 Absen 13-16 Absen 17-20 Absen 21-24 Absen 25-28 Absen 29-30 Absen 31-32 Absen 33 -34
LATIHAN 1 BUATLAH PROGRAM UNTUK : TOMBOL START DITEKAN LED1 MENYALA, KETIKA TOMBOL STOP DITEKAN, LED 1 MATI. LATIHAN 1
LATIHAN 2 BUATLAH PROGRAM UNTUK : TOMBOL START1 DITEKAN LED1 MENYALA, KETIKA TOMBOL STOP DITEKAN, LED 1 & LED 2 MATI. LATIHAN 2
LATIHAN 3 BUATLAH PROGRAM UNTUK : MENYALAKAN LED SECARA BERURUTAN, DIMULAI DARI START1 UNTUK LED 1, KEMUDIAN START2 UNTUK LED2. TOMBOL STOP UNTUK MEMATIKAN SEMUA LED LATIHAN 3
LATIHAN 4 BUATLAH PROGRAM UNTUK : MENYALAKAN LED SECARA BERGANTIAN, START1 UNTUK LED 1, KEMUDIAN START2 UNTUK LED2. TOMBOL STOP1 UNTUK MEMATIKAN LED1, TOMBOL STOP2 UNTUK MEMATIKAN LED2 LATIHAN 4
LATIHAN 5 BUATLAH PROGRAM UNTUK : MENYALAKAN LED BERGANTIAN, SECARA OTOMATIS DENGAN SELANG WAKTU 1 DETIK. TOMBOL START UNTUK MULAI, TOMBOL STOP UNTUK MEMATIKAN. LATIHAN 5