PRAKTIKUM 1 MEMULAI ARDUINO 1.1 Tujuan Istruksional Umum 1. Mahasiswa memahami cara kerja mikrokontroller arduino 2. Mahasiswa memahami pemrograman pada arduino menggunakan bahasa C 1.2 Tujuan Instruksional Khusus 1. Mahasiswa mampu mempersiapkan peralatan untuk menjalankan Ardunio 2. Mahasiswa mampu membuat program blink pada led internal arduni 3. Mahasiswa mampu mengembangkan struktur program C standart, perulangan dan fungsi pada arduni. 4. Mahasiswa memahami dan mampu memprogram komunikasi arduino dengan komputer 1.3 DASAR TEORI Sebagai sebuah mikrokontoller, arduino didukung sebuah komunitas di seluruh dunia yang terdiri dari pelajar, penggemar, seniman, programer, dan profesional yang memberikan berbagai kontribusi yang luar biasa sehingga arduino dapat digunakan untuk para pemula maupun tenaga ahli dengan sangat mudah. Tidak lagi sesulit kita memprogram mikrokontroller dengan bahasa Asembly murni. Ada berbagai macam Mikrokontroller Arduino seperti gambar dibawah ini. Gb. 1. Berbagai macam tipe mikrokontroller arduino yang ada di pasaran Arduino adalah platform open-source untuk projek elektronik yang terdiri dari 1.3.1 • perangkat keras/ Modul/ (papan Arduino) dan • perangkat lunak (ArduinoIDE). PAPAN ARDUINO Papan Arduino merupakan papan mikrokontroler yang berukuran kecil yang didalamnya terdapat komputer berbentuk suatu chip yang kecil seperti Pada Gambar 1 (Contoh Arduino Uno). Gb. 2. Hardware Arduino Uno berserta penjelasannya Pada hardware arduino terdiri dari 20 pin yang meliputi: a. 14 pin IO Digital (pin 0–13) Sejumlah pin digital dengan nomor 0–13 yang dapat dijadikan input atau output yang diatur dengan cara membuat program IDE. b. 6 pin Input Analog (pin 0–5) Sejumlah pin analog bernomor 0–5 yang dapat digunakan untuk membaca nilai input yang memiliki nilai analog dan mengubahnya ke dalam angka antara 0 dan 1023. c. 6 pin Output Analog (pin 3, 5, 6, 9, 10 dan 11) Sejumlah pin yang sebenarnya merupakan pin digital tetapi sejumlah pin tersebut dapat diprogram kembali menjadi pin output analog dengan cara membuat programnya pada IDE Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 1 Papan Arduino Uno dapat mengambil daya dari USB port pada komputer dengan menggunakan kabel USB atau dapat pula mengambil daya dengan menggunakan AC adapter 9 volt. Jika tidak terdapat power supply yang melalui AC adapter, maka papan Arduino akan mengambil daya dari USB port. Tetapi apabila diberikan daya melalui AC adapter secara bersamaan dengan USB port maka papan Arduino akan mengambil daya melalui AC adapter secara otomatis. 1.3.2 Software Arduino IDE Software arduino yang digunakan adalah driver dan IDE, walaupun masih ada beberapa software lain yang sangat berguna selama pengembangan arduino. IDE atau Integrated Development Environment adalah suatu program khusus pada komputer agar dapat membuat program dan di kompile serta di upload untuk papan Arduino. IDE arduino merupakan software yang sangat canggih ditulis dengan menggunakan java. IDE arduino terdiri dari: 1. Editor Program Sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam bahasa C. 2. Compiler Sebuah modul yang mengubah kode program menjadi kode biner (bahasa mesin) yang akan diupload ke arduino. 3. Uploader Sebuah modul yang memuat kode biner dari komputer ke dalam memory di dalam papan arduino Gb. 3. Icon (kiri) dan Tampilan IDE (kanan) dari arduino app. Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 2 1.3.3 KONSEP BAHASA C PADA ARDUINO Dalam bahasa pemrograman arduino ada tiga bagian utama yaitu struktur, variabel dan fungsi. 1.3.3.1 Kerangka Program Kerangka program arduino sangat sederhana, yaitu terdiri atas dua blok. Blok pertama adalah void setup() dan blok kedua adalah void loop. Blok Void setup () : Berisi kode program yang hanya dijalankan sekali sesaat setelah arduino dihidupkan atau di-reset.Merupakan bagian persiapan atau instalasi program. Blok void loop() : Berisi kode program yang akan dijalankan terus menerus. Merupakan tempat untuk program utama. 1.3.3.2 Sintaks Program Baik blok void setup loop () maupun blok function harus diberi tanda kurung kurawal buka “{“ sebagai tanda awal program di blok itu dan kurung kurawal tutup “}” sebagai tanda akhir program. 1.3.3.3 Variabel Tempat penampungan data pada program. Akan di bahas di bab berikutnya. 1.3.3.4 Fungsi Pada bagian ini meliputi fungsi input output digital, input output analog, advanced I/O, fungsi waktu, fungsi matematika serta fungsi komunikasi. Fungsi dan prosedur pada konsep pemrogaman Bahasa C dapat juga dipergunakan disini. 1.4 LANGKAH PERCOBAAN 1.4.1 Install Software Arduino IDE Download software IDE (Integrated Development Environment) ARDUINO jika belum, dan lakukan instalasi. Softwarenya dapat di download di sini. https://www.arduino.cc/en/main/software 1.4.2 Install Arduino Uno Pasang Kabel USB standart (printer) ke modul Arduni Uno, tapi jangan di pasang ke PC. Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 3 1.4.3 Deteksi Pengecekan Serial di Komputer Perintah ini hanya cukup sekali, untuk memastikan bahwa driver arduino terpasang dan terdeteksi di komputer. • Buka device manager • Pasang Kabel USB ke Komputer (mestinya ada suara usb terdeteksi dan tampilan di device manager melakukan refresh) • Di bagian Ports (COM & LPT) Akan muncul Arduino Uno (COM10). Angka Com bisa berubah sesuai PC masingmasing. • Click di bagian tersebut. • Jika sudah muncul, maka arduino sudah terkoneksi dan siap di Program Gb. 4. Device manager mendeteksi kehadiran Com Serial. Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 4 1.4.4 Persiapan Software IDE Arduino Jalankan program IDE Arduino, cek 2 (DUA) Hal berikut ini agar jalan. • Click Tools • Pastikan BOARD sudah terpilih ArduniGenuino Uno • Pastikan PORT sesuai dengan COM di langkah sebelumnya. Gb. 5. Setting Awal IDE untuk board dan PORT 1.4.5 CODING pada IDE Arduino Sebagai langkah pertama, anda tidak usah khawatir untuk menuliskan Coding. Cukup menggunakan file contoh atau Example yang sudah disiapkan oleh arduino. Gb. 6. Memilih File example → 01.Basic → Blink Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 5 1.4.6 UPLOAD Coding ke Arduino Tekan tombol Ctrl+U atau click Icon seperti gambar di bawah. Jika sudah ada pesan Done uploading, maka harusnya LED akan berkedip. Menyala selamat 1 detik, padam 1 detik dan terus berulang-ulang. Gb. 7. Tombol upload dan status File Sudah di Upload Gb. 8. Led arduino berkedip Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 6 1.4.7 Catat pada Lember kerja Praktikum a. Apakah anda melihat led berkedip setelah melakukan langkah 1.4.6 ? b. Buatlah flowchart Blink Led soal no a. c. Apa arti perintah: a. b. c. d. e. f. g. h. 1.4.8 void setup(); void loop(); pinMode(); digitalWrite(); delay(); LED_BUILTIN OUTPUT HIGH Beberapa modifikasi tampilan BLINK LED dan model program. a. Ketikkanlah Coding sederhana berikut ini.. 1. void setup() { 2. pinMode(13, OUTPUT); 3. } 4. void loop() { 5. digitalWrite(13, HIGH); 6. delay(700); 7. digitalWrite(13, LOW); 8. delay(700); 9. } b. Baris 6, GANTI nilai delay menjadi 200ms. UPLOAD, catat bagaimana karakteristik nyala LED ? c. Kembalikan baris 6 delay menjadi 700ms, Ganti baris 8 menjadi 200ms. UPLOAD, catat bagaimana karakteristik nyala LED ? 1.4.9 Perulangan MANUAL a. Berikutnya akan dibahas cara membuat blink led cepat sebanyak 5 kali, kemudain tunggu sebentar, dan blink kembali. Ikuti langkah berikutnya. Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 7 b. Ketikkanlah coding berikut: void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, digitalWrite(13, digitalWrite(13, digitalWrite(13, digitalWrite(13, digitalWrite(13, digitalWrite(13, digitalWrite(13, digitalWrite(13, digitalWrite(13, delay(1000); } HIGH);delay(200); LOW);delay(200); HIGH);delay(200); LOW);delay(200); HIGH);delay(200); LOW);delay(200); HIGH);delay(200); LOW);delay(200); HIGH);delay(200); LOW);delay(200); Upload dan catat apa yang tampil pada LED. FOR c. Mirip dengan kasus di atas, namun perulangan menggunakan for. Ketikkan coding berikut: void setup() { pinMode(13, OUTPUT); } void loop() { int i; for( i=0; i<7; i++) { digitalWrite(13, HIGH);delay(200); digitalWrite(13, LOW);delay(200); } delay(1000); } Upload dan catat apa yang tampil pada LED. FUNGSI d. Menggunakan Prosedur dengan jumlah blink bisa di atur void setup() { pinMode(13, OUTPUT); } void loop() { int i; blinkled(9); delay(1000); } void blinkled(int maksimal) { int i; for( i=0; i<maksimal; i++) { digitalWrite(13, HIGH);delay(200); digitalWrite(13, LOW);delay(200); } } Upload dan catat apa yang tampil pada LED. Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 8 1.4.10 Komunikasi Serial Menggunakan Serial Monitor Tanpa disadari, saat kita menghubungkan PC / Laptop dengan arduino sesungguhnya di USB PC/ laptop sudah terbentuk sebuah PORT COM Serial. PORT COM Serial ini adalah sebuah interface untuk berkomunikasi dengan Standart komunikasi RS232. Dengan demikian, PC sudah siap dengan standart Komunikasi RS232. Pada arduino sendiri, USB selain sebagai Power, juga sebagai PORT Serial dengan standart RS 232 juga. Dan standart ini juga tersambung ke PIN 1 dan 2 jika diperlukan. Setelah selesai UPLOAD, maka program akan tersimpan di memory Arduino. USB (Port serial) arduino dan USB (Port serial) PC dalam kondisi tersambung dan tidak terpakai. Kita dapat mengambil atau mengirim data melalui serial Monitor pada Arduino IDE dengan menekan CTRL + Shift + M atau Tools → Serial Monitor. a. Menampilkan Nama dan Nim anda di serial Monitor. Ketikkan coding berikut, isikan nama dan nim anda di program. Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 9 Upload, buka Serial monitor, catat apa yang terjadi di arduino dan serial monitor? b. Ketikkan listing berikut ini, isikan nama dan nim anda di program Upload, buka Serial monitor, catat apa yang terjadi di arduino dan serial monitor? c. Jawablah: a. Apa Perbedaan Serial.print(); dan Serial.println(); b. Apa perbedaan coding a dan b di atas? 1.5 LATIHAN Buatlah Coding untuk menampilkan kode SOS di Lampu LED, dan animasi tulisan LED di serial Monitor. Ini adalah timechart untuk kode SOS Silahkan untuk memilih menggunakan coding native, for, prosedur atau gabungan yang menurut anda paling ideal. Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 10 1.6 TUGAS Dengan menggunakan Simulator Proteus, buatlah dua buah lampu LED di port X dan Y. Port X adalah 1 digit terakhir nim anda, Y adalah X+1. Buatlah program Blink sederhana untuk menyalakan dan memadamkan bersamaan led di port X dan Y. a. Capture codingnya b. Capture Skema hasil saat led menyala dan padam. Jangan Lupa tambahkan Nama dan NIM di desain Anda. LED ON LED OFF Praktikum Asembly [Arduino] – Politeknik Negeri Banjarmasin– oleh : Agus SBN | 11