Pengenalan Arduino

Arduino IDE (Integrated Development Environment) adalah software yang digunakan untuk membuat/mengedit program papan tunggal mikrokontroler Arduino (Arduino Single Board Microcontroller). Pada IDE ini terdapat editor, compiler dan programmer yang terintegrasi sehingga hanya dengan menggunakan satu software saja, sebuah aplikasi dapat ditanam ke dalam sebuah mikrokontroler untuk satu kegunaan tertentu. Selain itu, pustaka (library) bisa teroganisasi dengan baik di software ini, yang secara umum pengguna dapat menambahkan library dan memanggil contoh yang sesuai dengan penggunaan. Pustaka (library) adalah koleksi dari berbagai rutin program untuk pengembangan program mikrokontroler. Rutin program ini bisa dianalogikan sebagai bentuk sistem moduler sehingga penulisan program bisa lebih singkat tanpa harus menulis secara detail. Rutin juga bisa dikatakan sub-program yang biasanya akan dipanggil secara berulang-ulang.

Dari program paling kiri tersebut, dapat dilihat bahwa program penyertakan pustaka L1 dan L2 sebagai bahan dalam pengembangan program. L1 terdiri dari sub program X dan Y masing-masing terdiri dari instruksi C, D dan D, E. L2 terdiri dari sub program Z1 dan Z2 yang masing-masing terdiri dari instruksi F, G dan H, I. Sehingga kalau dijalankan, maka program utama akan menjalankan instruksi-instruksi dengan urutan sebagai berikut: A, B, C, D, F, G, D, E.

Struktur program Arduino terdiri dari tiga jenis sub program yaitu setup(), loop() dan sub program tambahan sesuai keinginan pengguna. Sub program setup() hanya dijalankan sekali saja yang dimulai pada saat mikrokontroler dijalankan. Sub program loop() dijalankan secara berulang-ulang tidak terbatas. Sedangkan sub program tambahan adalah sub program yang dibuat yang akan dipanggil oleh sub program setup() maupun loop().

Sebelum mencoba contoh program lampu berkedip (LED blinking), tentukan terlebih dahulu jenis papan Arduino yang akan digunakan. Pilih Tool > Board ... > pilih jenis mikrokontroler (Arduino Nano/Uno/Mega dll.) Setelah itu ambil contoh program yang telah disediakan dengan cara klik menu: File > Examples > 01.Basic > Blink. Akan terlihat isi program seperti di bawah ini:


Komunikasi Serial

Komunikasi serial merupakan transmisi data dari pengirim ke alat penerima yang dilakukan secara berurutan (seri) melalui sebuah jalur kirim dan sebuah jalur terima. Pada pengiriman data yang besarnya 1 byte diubah terlebih dahulu menjadi 8 bit agar bisa terkirim melalui sinyal yang nilainya 0 atau 1 secara berurutan. Sebuah mikrokontroler biasanya memiliki mekanisme khusus untuk mengirim data yang tersimpan di sebuah memori khusus (transmit buffer). Pengguna hanya memberikan data yang akan dikirim ke sebuah transmit buffer yang selanjutnya akan dikirim oleh mikrokontroler. Demikian juga sebaliknya, sebuah mikrokontroler memiliki memori untuk penerimaan data (receive buffer) yang bisa dipanggil setiap saat ketika ada data yang masuk.

Ada dua jenis Serial port pada mikrokontroler, yaitu Hardware Serial dan Software Serial. Pada hardware serial mekanisme komunikasinya diatur oleh mikrokontroler dan pin RX dan TX telah didefinisikan secara tetap. Sedangkan pada software serial, mekanisme komunikasinya diatur oleh program (disediakan library tersendiri) dan penggunaan pin RX dan TX bisa fleksibel sesuai dengan kebutuhan pengguna. Jika dalam satu sistem hanya memerlukan satu jalur komunikasi serial, maka disarankan untuk menggunakan hardware serial saja, karena memiliki memory buffer, interrupt dan interrupt handler secara terpisah dari program utama sehingga tidak mengurangi sumber daya memori atau prosesor.

Latihan: Komunikasi serial antara PC - Mikrokontroler

Buatlah sistem komunikasi serial antara mikrokontroler dengan sebuah komputer untuk menggerakkan sebuah piranti (misalnya LED) dan untuk membaca sensor digital (misalnya tombol) yang terpasang di sebuah mikrokontroler. Jalur yang digunakan adalah RX dan TX (mohon dilihat tipe mikrokontrolernya untuk menentukan nomor pin yang digunakan). Susunlah sendiri protokol data yang digunakan untuk mengaktifkan LED dan membaca tombol.

Latihan: Komunikasi antar dua Mikrokontroler

Sistem terdiri dari dua buah mikrokontroler, masing-masing terdiri dari sebuah tombol dan 4 buah LED. Jika tombol pada mikrokontroler 1 ditekan, maka lampu LED ke-1 pada mikrokontroler 2 akan menyala. Jika tombol ditekan lagi, maka lampu LED ke-2 pada mikrokontroler 2 akan menyala, LED ke-1 padam, demikian seterusnya sampai lampu ke-4 kembali ke lampu ke-1. Hal yang sama juga berlaku untuk tombol pada mikrokontroler 2 untuk mengendalikan LED pada mikrokontroler 1.


Komunikasi I2C

Komunikasi Inter Integrated Circuit (I2C) merupakan komunikasi sinkron antar dua atau lebih piranti dengan konsep master-slave. I2C menggunakan jalur Serial Data (SDA) untuk pertukaran data (dua arah, bidirectional) dan jalur Serial Clock (SCL) sebagai sinkronisasi yang dikendalikan oleh sebuah piranti master menuju ke semua piranti slave. Secara fisik, jalur SDA dan SCL dirangkai resistor pull-up ke tegangan 5 volt atau 3.3 volt, dan yang juga penting adalah semua ground (0v) masing-masing piranti terhubung.

Masing-masing piranti slave memiliki alamat sebesar 7 bit dan berbeda satu sama lain dalam satu jalur. Alamat ini terletak pada bit ke-7 sampai 1 pada sebuah bilangan 1 byte (8 bit), sedangkan bit ke-0 sisanya (LSB) memiliki arti apakah piranti ini digunakan untuk membaca atau menulis data. Jika bit ke-0 nilainya 1 maka piranti master akan membaca slave dan sebaliknya.

Piranti slave yang diproduksi memiliki alamat yang tidak dapat diubah, dapat diubah sebagian bit-nya dan dapat diubah keseluruhan bit-nya. Dengan alamat yang dapat diubah, kita bisa rangkai beberapa jenis piranti sejenis dalam sebuah jalur yang sama.

Latihan: Sistem komunikasi I2C pada beberapa mikrokontroler

Pemprograman mikrokontroler berkenaan dengan I2C dapat dicoba menggunakan Arduino IDE dengan contoh pada menu File > Example > Wire. Untuk mencobanya, diperlukan 2 buah mikrokontroler, yang pertama bertindak sebagai master, yang lain sebagai slave. Buatlah pasangan master-reader dengan slave-sender atau pasangan master-writer dengan slave-receiver. Tambahkan sebuah mikrokontroler lagi untuk membentuk sistem komunikasi master dan multi slave, yang masing-masing slave memiliki alamat yang berlainan.
*semua data yang diterima dpaat diamati melalui Serial Port (gunakan Arduino serial monitor)

Latihan: Accelerometer / Gyroscope

MPU-6050 merupakan modul accelormeter dan gyroscope untuk mengukur percepatan di ruang tiga dimensi searah aksis x,y,z dan orientasi berdasarkan putaran aksis tersebut (yaw, pitch, roll). Bisa dikatakan juga sensor ini memiliki 6 DoF pengukuran. Komunikasi antara modul MPU-6050 dengan mikrokontroler dilakukan dengan protokol I2C yang dirangkai melalui pin SCL dan SDA yang terhubung dalam ground (GND) yang sama.


Komunikasi WiFi

NodeMCU 8266 merupakan mikrokontroler dengan tambahan modul WiFi yang terdapat diprogram menggunakan Arduino IDE. Sebelum melakukan pengembangan program pada mikrokontroler ini, maka perlu disiapkan terlebih dulu library-nya agar dapat terintegrasi dengan Arduino IDE. Pertama, masuk ke menu preferences. Klik File > Preferences

Tambahkan Aditional Board Manager URLs dari papan ESP8266 sebagai berikut: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Klik Ok, lalu keluar menuju menu: Tools > Board Manager

Klik esp pada bagian pencarian, lalu klik install pada bagian esp8266 community. Tunggu sampai proses download selesai.


Contoh program LED Blinking

Untuk mencoba apakah mikrontroler ESP8266, dapat dites menggunakan file contoh yang disediakan. Klik File > Example > ESP8266 > Blink. Pada program LED blink ini akan menyalakan LED (biru) yang terpasang pada papan secara berkedip. Klik Tool> Port lalu pilih port yang sesuai. Setelah itu klik upload untuk kompilasi dan unggah ke mikrokontroler. Jika berhasil, maka LED akan berkedip.

Mada Jimmy