Mengenal Microcontroller

Baca dulu disclaimer dari saya

Dalam tulisan ini, saya akan berusaha memperkenalkan microcontroller dengan cepat, tanpa definisi formal ataupun banyak teori. Berbagai macam teori bisa dilihat di bagian lain seri tulisan mengenai microcontroller (yang akan saya tulis nanti). Tulisan bagian ini hanya menjelaskan seperti apa rangkaian sirkuit sederhana microcontroller, dan sama sekali tidak membahas detail pemrogramannya.

Bagian pertama adalah pengenalan microcontroller tanpa development kit, dan bagian kedua berisi link ke pengenalan pemakaian development kit tertentu. Pengetahuan pemakaian microcontroller tanpa development kit sangat diperlukan ketika kita akan mengaplikasikan microcontroller di dunia nyata.

Ini juga akan memberikan gambaran pada Anda: apa saja yang disediakan oleh development kit (seperti Arduino).

Tanpa Development Kit

Anda memiliki sebuah microcontroller, mungkin bentuknya seperti ini (ini adalah PIC16F672A, yang saya dapat dari sebuah buku yang disertai dengan kit microcontroller):

pic16f627a.jpg

Mungkin juga dalam bentuk lain (chipnya bisa lebih besar/kecil, jumlah kakinya bisa lebih sedikit atau banyak). Anggap saja chip itu seperti komputer desktop (casing berikut isinya: CPU, Memori, Harddisk). Apa yang dilakukan pertama kali dilakukan untuk menyalakan desktop? Colok dulu listriknya. Tentunya untuk microcontroller, Anda tidak akan mencolokkan langsung ke listrik rumah. Anda akan butuh batere atau adaptor. Voltase listrik untuk desktop biasanya sudah jelas 110/220V, tapi untuk microcontroller voltasenya tergantung spesifikasi microcontrollernya. Ada yang hanya butuh 1.5 V, ada yang butuh 5V (dan mungkin lebih).

Untuk mengetahuinya, kita baca spesifikasinya. Untuk chip ini, bisa dibaca di sini. Bagian yang menunjukkan spesifikasinya adalah:

voltage.jpg

Jadi ternyata microcontroller yang saya contohkan ini bisa beroperasi di 2V-5.5V.

Biasanya kita memakai batere untuk sumber tenaga, tapi bisa juga memakai adaptor AC ke DC (misalnya charger handphone) atau bahkan dari USB. Kalau di komputer, di motherboard ada modul voltage regulator yang menurunkan voltase ke level yang dipakai mikroprosessor dan sekaligus mengatur voltase. Di microcontroller kita juga butuh sesuatu seperti itu. Biasanya yang kita butuhkan adalah Linear regulator yang akan menjaga agar voltase tetap konstan.

Untuk contoh ini saya pakai tegangan 5V, alasannya adalah karena di kotak peralatan di dekat saya cuma ada LM7805. Seri linear regulator LMXX (terutama 7805) ini sangat terkenal dan murah (artikelnya bisa dibaca di wikipedia). Jika butuh tegangan lain, ada 7806 (6 volt), 7808 (8 volt), 7809 (9 volt), 7810 (10 volt), 7812 (12 volt), 7815 (15 volt), 7818 (18 volt), dan 7824 (24 volt).

7805.jpg

Kita bisa melihat contoh penggunaan voltage regulator ini di datasheet. Banyak produsen chip (misalnya Texas Instrument, Fairchild, dsb) yang menghasilkan seri yang sama (sama-sama LM7805), jadi kita bisa melihat datasheet dari manufaktur manapun (biasanya sama saja). Biasanya voltage regulator ini dihubungkan dengan dua kapasitor agar tegangannya lebih smooth. Walau ada yang bilang: kalau cuma untuk coba-coba tanpa kapasitor juga tidak apa-apa, tapi biasanya saya tetap memakainya.

contoh7805.jpg

Perhatikan bahwa kapasitansi kapasitornya tidak harus seperti yang tercantum. Biasanya saya pakai 100 mikrofarad dan 10 mikrofarad.

Nah masalah berikutnya adalah: disambung ke mana kabel powernya?

kakinya microprogessor kelihatan sama semua. Di sini Anda harus mulai membaca dokumentasi chipnya, mana pin Vcc (atau Vdd) alias sisi positif dan Vee (atau vss) alias sisi negatif . Setelah ketemu maka bisa Anda sambungkan kabelnya. Perhatikan di gambar yang saya cantumkan, saya memberi kotak berwarna hijau, di dalamnya Anda bisa melihat ada bulatan, bulatan itu juga ada di microcontroller, supaya Anda tahu sisi mana yang merupakan bagian "atas".

pinout.jpg

Mengikat kabel ke microcontroller tentunya tidak mudah, cara paling mudah adalah dengan memakai breadboard. Breadboard adalah papan yang bisa digunakan untuk merangkai rangkaian elektronik tanpa perlu menyolder. Cukup colokkan kaki microcontroller, LED, dsb, dan nanti akan mudah dicabut lagi. Di dalam breadboard juga sudah ada konduktor di dalamnya dalam arah tertentu.

breadboard.jpg

Perhatikan bagian hijau, itu artinya ada konduktor/konektor di kotak hijau tersebut, artinya kalau Anda mencolokkan sesuatu di 1A, itu akan menyambung ke 1B, 1C, 1D, 1E, tapi tidak ke baris lain (2 dst) atau ke kolom lain (f sampai j). Untuk lubang di bagian pinggir, konektornya adalah vertikal, bukan horizontal.

OK sekarang microcontrollernya sudah berjalan. Tapi kok gak kelihatan apa-apa? Ini sama seperti Anda menyalakan dekstop tanpa monitor. Di desktop masih jelas ada bunyi dari power supply, tapi di microcontroller Anda tidak mendengar bunyi apa-apa. Anda tidak bisa dengan mudah mencolokkan kabel VGA ke microcontroller, jadi yang pertama dilakukan biasanya adalah menambahkan LED.

led.jpg

OK saya punya LED. Nah dicolok ke mana lagi ini LEDnya? Anda perlu balik lagi membaca dokumentasi, mencari pin output digital. Setelah ketemu, sambungkan LEDnya. Nah di sini pelajaran elektronika diperlukan. Tambahkan resistor supaya arus yang lewat tidak terlalu besar (nanti LED-nya bisa terbakar atau cepat mati). Ada hitungan pemilihan resistor ini, tapi gampangnya pakai saja yang 500 ohm.

Perhatikan: LED adalah Diode, dan diode punya polaritas, artinya: jangan dipasang terbalik. Kaki yang panjang menghadap ke arah + batere, dan kaki pendek ke arah - batere

led-mati.jpg

Loh kok masih mati LEDnya? Microcontrollernya tidak punya program di dalamnya, jadi tidak ada instruksi untuk menyalakan LEDnya. Ini seperti komputer yang booting tanpa OS. Di PC masih bagus ada BIOS yang menampilkan sesuatu, di microcontroller tidak ada "BIOS"-nya, jadi tidak ada apa-apa yang muncul. Berikutnya adalah: isikan program ke dalam microcontrollernya. Bagaimana caranya? Ada alat yang namanya flasher atau programmer.

Cara yang paling mudah adalah mencari program yang sudah dikompilasi (biasanya file HEX), yang tinggal diupload. Jika ingin berniat langsung memprogram, ini saatnya Anda mencari contoh program "mengedipkan LED" yang merupakan program paling sederhana (seperti "Hello World" di PC).

Beberapa chip/programmer mengharuskan kita mencabut chipnya, mencolokkan chip ke programmernya, kita kirimkan program dari PC, kemudian kita cabut lagi chipnya, masukkan lagi ke breadboardnya. Chip yang baru biasanya bisa diprogram hanya dengan menyambungkan kabel ke chipnya, mengirimkan programnya, lalu kita cabut lagi kabelnya (istilahnya in circuit programming, karena tidak perlu mencabut chipnya dari sirkuit).

Saya tidak punya programmer in circuit, jadi saya memakai programmer bawaan buku yang saya beli. Programmer ini hanya bisa dihubungkan ke serial port.

programmer.jpg

Nah sekarang setelah saya masukkan program ke dalamnya, saya punya program LED yang berkedip.

led-nyala.jpg

Setelah mengetahui dasar ini, Anda bisa mulai maju sendiri membuat rangkaian lain. Biasanya berikutnya kita membuat program yang membaca sesuatu (setelah output, kita coba input). Yang paling mudah, adalah saklar/switch hanya 0/1. Misalnya kita bisa membuat program: kalau saklar ditekan sekali, LED berkedip, ditekan sekali lagi, kedipannya berhenti. Menhubungkan saklar ke microcontroller sangat mudah. Ambil salah satu pin input digital, lalu hubungkan ke saklar, sisi saklar yang lain ke ground.

Jika Anda lihat di berbagai tutorial, Anda akan melihat ada pull-up atau pull-down resistor ketika menjelaskan mengenai saklar. Gunanya adalah agar input tidak "mengambang" (nilainya tidak jelas karena tidak dihubungkan ke mana-mana). Kebanyakan microcontroller saat ini memiliki built in pull-up/down resistor. Untuk microcontroller yang tidak punya built-in pull up/down resistor, Anda harus menambahkan resistor. Contohnya seperti gambar di wikipedia di artikel mengenai Pull-up resistor.

Tambahan: sebagian microcontroller lama membutuhkan rangkaian oscillator (biasanya kita perlu menambah kristal), tapi di berbagai microcontroller yang baru sudah ada built-in oscillator.

Dengan Development Kit/Board

Karena mempersiapkan semua hal dasar (masalah power, masalah LED, dsb) cukup merepotkan, maka sudah ada beberapa development kit yang memudahkan pengembangan aplikasi microcontroller. Biasanya dengan development kit kita tetap butuh breadboard untuk komponen tambahan. Untuk development board yang memakai USB, masalah power supply dan regulator sudah ditangani (power diambil dari USB). Biasanya development board ini minimal punya 1 LED, sehingga kita bisa mencoba program sederhana (mengedipkan LED). Lalu kadang ada saklar, dan beberapa komponen tambahan (seperti misalnya sensor temperatur, cahaya).

Saat ini saya cuma punya 2 development board: MSP430 Launchpad dan EZ430-F2013.

Penutup

Jika ingin memulai mengoprek microcontroller, benda-benda yang sebaiknya dimiliki bisa dilihat di halaman persiapan.

Copyright © 2009-2018 Yohanes Nugroho