Handout Bahasa Pemrograman Mikrokontroler PDF Free
Handout Bahasa Pemrograman Mikrokontroler PDF Free
Dibuat oleh:
Febri Handoyo
TEKNIK MEKATRONIKA
TUJUAN PEMBELAJARAN:
Peserta didik dapat menjelaskan bahasa pemrograman arduino IDE pada sistem
mikrokontroler
Peserta didik dapat menguraikan cara menginterpretasikan kontrol open loop
menggunakan bahasa arduino dalam sistem mikrokontroler.
Peserta didik dapat menguraikan cara menginterpretasikan kontrol closed loop
menggunakan bahasa arduino dalam sistem mikrokontroler.
Berikut ini adalah bagian-bagian serta fungsi dari lima ikon utama software
arduino IDE:
Tabel 1. Ikon Utama Software Arduino IDE
No Ikon Nama Ikon Fungsi Ikon
Berfungsi untuk melakukan checking code yang
1 Verify telah dibuat apakah sudah sesuai dengan kaidah
pemrograman yang ada atau belum.
Berfungsi untuk melakukan kompilasi program atau
2 Upload kode yang telah dibuat menjadi bahasa yang mudah
dipahami oleh arduino.
Befungsi membuat sketch baru.
3 New
Software arduino IDE juga memiliki lima menu bar yang di dalamnya berisi
beberapa fitur yang diperlukan dalam mendukung pembuatan sketch dan proses
uploading pada board arduino.
Tabel 2. Menu Bar dan Bagian-bagiannya
Menu Bar Bagian Fungsi
New Untuk membuat sketch baru yang terdiri setup() dan
void loop.
Open Membuka sketch yang pernah dibuat dalam drive.
Open Recent Membuka sketch yang baru di buat.
Sketchbook Menunjukkan hirarki sketch sketch yang kamu buat
termasuk struktur foldernya.
Example Berisi contoh-contoh pemrograman yang disediakan
pengembang.
File Close Menutup jendela arduino IDE dan menghentikan
aplikasi
Save Menyimpan sketch yang dibuat atau perubahan sketch
Save as Menyimpan sketch yang sedang dikerjakan atau sketch
yang sudah disimpan sebelumnya dengan nama berbeda
Page Setup Mengatur tampilan page pada proses pencetakan.
Print Mengirim file sketch ke mesin cetak untuk dicetak.
Preference Merubah tampilan interface IDE Arduino.
Quit Menutup semua jendela arduino.
Undo/ Redo Mengembalikan perubahan yang dilakukan.
Cut Meremove teks terpilih pada editor.
Copy Menduplikasi teks yang terpilih pada editor.
Copy for Forum Melakukan copy kode dari editor dan melakukan
formatting agar sesuai untuk ditampilkan dalam forum.
Copy as HTML Menduplikasi teks yang terpilih dalam editor dan
menempatkan teks dalam bentuk HTML
Paste Menyalin data pada clipboard ke dalam editor.
Edit
Select All Melakukan pemilihan teks atau kode
Comment/Uncomment Memberikan atau menghilangkan tanda // pada kode
atau teks.
Increase/Decrease Mengurangi atau menambahkan identitas pada baris
indent kode tertentu.
Find Memanggil jendela window find and replace
Find Next Menemukan kata selanjutnya dari kata pertama
Find Previous Menemukan kata sebelumnya dari kata pertama
Verify Mengecek apakah sketch yang dibuat ada kekeliruan
dari segi sintaks atau tidak
Upload Mengirim program yang sudah dikompilasi ke board
arduino
Upload Using Menuliskan bootloader ke dalam IC mikrokontroler
Sketch
Programmer arduino.
Export Compiled Menyimpan file dalam bentuk .hex
Binary
Show Sketch Folder Membuka folder sketch yang saat ini dikerjakan
Include Library Menambahkan pustaka ke dalam sketch yang dibuat
dengan menyertakan sintaks #include di awal kode.
Add File Menambahkan file ke dalam sketch arduino.
Auto Format Melakukan pengaturan format kode pada jendela editor
Archive Sketch Menyimpan sketch ke dalam file .zip
Fix Encoding & Berfungsi memperbaiki kemungkinan perbedaan antara
Reload pengkodean peta karakter editor dan peta karakter
operasi lain
Serial Monitor Membuka jendela serial monitor untuk melihat
pertukaran data.
Board Memilih dan melakukan konfigurasi board yang
Tools
digunakan.
Port Memilih port sebagai kanal komunikasi antara software
dengan hardware
Programmer Menu ini digunakan ketika hendak melakukan
pemrograman chip mikrokontroler tanpa menggunakan
koneksi Onboard USB-Serial.
Burn Bootloader Mengkopikan program bootloader ke dalam IC
mikrokontroler.
Berisi dokumentasi terkait masalah-masalah yang
Help -
sering muncul.
3. Fungsi (Function)
Mengelompokkan kode ke dalam fungsi memungkinkan programer membuat
potongan modular kode yang melakukan tugas yang ditetapkan dan kemudian
kembali ke area kode dari mana fungsi itu “dipanggil”. Kasus yang khas untuk
membuat suatu fungsi adalah ketika seseorang perlu melakukan aksi yang sama
beberapa kali dalam suatu program.
Untuk programer yang terbiasa menggunakan BASIC, fungsi dalam arduino
menyediakan utilitas menggunakan subrutin (GOSUB dan BASIC). Standarisasi
fragmen kode menjadi beberapa fungsi memiliki beberapa keuntungan, antara lain:
a. Fungsi membantu programer tetap teratur. Sering kali ini membantu membuat
konsep program
b. Fungsi mengkodifikasi satu tindakan di satu tempat sehingga fungsi hanya harus
dipikirkan dan dibebani sekali.
c. Fungsi membuat keseluruhan sketsa menjadi lebih kecil dan lebih ringkas karena
bagian-bagian kode digunakan berkali-kali.
d. Fungsi membuat lebih mudah untuk menggunakan kode dalam program lainnya.
Ada dua funsi yang dibutuhkan dalam sketsa arduino yaitu setup() dan loop().
Fungsi lain harus dibuat di luar kurung dari dua fungsi tersebut. Sebagai contoh, kita
akan membuat fungsi sederhana untuk mengalikan dua angka.
Untuk “memanggil” fungsi sederhana yang telah dibuat, diberikan parameter
tipe data yang diharapkan:
D. Bahasa Pemrograman Arduino untuk Aplikasi Sistem Open Loop pada Mobile
Robot
Sistem open loop menggunakan peralatan penggerak untuk mengontrol proses
secara langsung tanpa umpan balik. Pada sistem ini harga keluaran sistem tidak dapat
dibandingkan terhadap harga masukannya. Dengan kata lain variabel yang dikontrol
tidak dapat dibandingkan dengan harga yang diinginkan.
Penerapan sistem open loop dapat diterapkan pada mobile robot. Salah satu
contohnya adalah robot mobil-mobilan tanpa diberikan sensor sebagai feedback. Berikut
adalah sketch atau program dari robot mobil-mobilan sistem open loop.
const int IN1 = 7;
const int IN2 = 6;
const int IN3 = 5;
const int IN4 = 4;
void setup() {
void loop() {
//analogWrite(ENA, 255);
//analogWrite(ENB, 255);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
E. Bahasa Pemrograman Arduino untuk Aplikasi Sistem Closed Loop pada Mobile
Robot
Sistem close loop adalah sistem kontrol yang sinyal keluarnya mempunyai
pengaruh langsung pada aksi pengontrolan dengan umpan balik. Sinyal kesalahan
penggerak, yang merupakan selisih antara sinyal masukan dan sinyal umpan balik,
diumpankan ke kontroler untuk memperkecil kesalahan dan membuat harga sistem
mendekati harga yang diinginkan. Dengan kata lain istilah “close loop” berarti
menggunakan aksi umpan balik untuk memperkecil kesalahan sistem. Jika dalam hal ini
manusia bekerja sebagai operator, maka manusia akan menjaga sistem agart tetap pada
keadaan yang diinginkan. Ketika terjadi perubahan pada sistem, manusia akan
melakukan langkah-langkah awal pengaturan sehingga sistem kembali bekerja pada
keadaan yang diinginkan.
Penerapan sistem closed loop dapat diterapkan pada mobile robot. Salah satu
contohnya adalah robot obstacle avoider dengan diberikan sensor ultrasonic sebagai
feedbacknya. Berikut adalah sketch atau program dari robot mobil-mobilan sistem open
loop.
//sensor pins
#define trig_pin A1 //analog input 1
#define echo_pin A2 //analog input 2
pinMode(RightMotorForward, OUTPUT);
pinMode(LeftMotorForward, OUTPUT);
pinMode(LeftMotorBackward, OUTPUT);
pinMode(RightMotorBackward, OUTPUT);
servo_motor.write(115);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
}
void loop(){
int distanceRight = 0;
int distanceLeft = 0;
delay(50);
int lookRight(){
servo_motor.write(50);
delay(500);
int distance = readPing();
delay(100);
servo_motor.write(115);
return distance;
}
int lookLeft(){
servo_motor.write(170);
delay(500);
int distance = readPing();
delay(100);
servo_motor.write(115);
return distance;
delay(100);
}
int readPing(){
delay(70);
int cm = sonar.ping_cm();
if (cm==0){
cm=250;
}
return cm;
}
void moveStop(){
digitalWrite(RightMotorForward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorBackward, LOW);
}
void moveForward(){
if(!goesForward){
goesForward=true;
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
}
}
void moveBackward(){
goesForward=false;
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorForward, LOW);
}
void turnRight(){
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorForward, LOW);
delay(500);
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
void turnLeft(){
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
delay(500);
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
}
F. Soal Evaluasi
Jawablah soal-soal di bawah ini sesuai dengan benar!
1. Apakah yang disebut dengan Arduino IDE?
2. Jelaskan fungsi dari ikon-ikon berikut ini.
3. Jelaskan perbedaan antara sistem closed loop dan sistem open loop!
4. Buatlah sketch operasi aritmatika * / + - secara terpisah dengan menggunakan
Arduino IDE!
5. Buatlah sketch operasi aritmatika gabungan (misal : 2 + 3 * 5) dengan menggunakan
Arduino IDE!
G. Referensi
1. Santoso, Hari. 2017. Monster Arduino: Panduan Praktis Belajar Arduino untuk
Pemula. Jakarta : Elang Sakti.
2. Agarwal, Mayur. 2008. Robot line follower Robot. EEE Department : Robotic
Worksop.
JOBSHEET
PEMBUATAN SKETCH UNTUK APLIKASI SISTEM KONTROL TERTUTUP
DAN SISTEM KONTROL TERBUKA
1. Tujuan
1.1 Peserta didik dapat memanipulasi bahasa pemrograman mikrokontroler dengan
arduino IDE untuk aplikasi sistem kontrol open loop pada mobile robot
1.2 Peserta didik dapat memanipulasi bahasa pemrograman mikrokontroler dengan
arduino IDE untuk aplikasi sistem kontrol closed loop pada mobile robot
3. Dasar Teori
Arduino IDE merupakan sebuah software yang digunakan untuk membuat program
atau sketch yang kemudian di upload pada board Arduino. Arduino dapat digunakan
untuk membuat aplikasi sistem open loop dan sistem closed loop.
Sistem open loop menggunakan peralatan penggerak untuk mengontrol proses
secara langsung tanpa umpan balik. Pada sistem ini harga keluaran sistem tidak dapat
dibandingkan terhadap harga masukannya. Dengan kata lain variabel yang dikontrol
tidak dapat dibandingkan dengan harga yang diinginkan. Penerapan sistem open loop
dapat diterapkan pada mobile robot. Salah satu contohnya adalah robot mobil-mobilan
tanpa diberikan sensor sebagai feedback.
4. Prosedur Percobaan
a. Siapkan alat-alat yang dibutuhkan.
b. Hubungkan kabel downloader pada laptop dan arduino.
c. Tuliskan sketch di bawah ini pada jendela kerja software arduino IDE
//sensor pins
#define trig_pin A1 //analog input 1
#define echo_pin A2 //analog input 2
pinMode(RightMotorForward, OUTPUT);
pinMode(LeftMotorForward, OUTPUT);
pinMode(LeftMotorBackward, OUTPUT);
pinMode(RightMotorBackward, OUTPUT);
servo_motor.attach(10); //our servo pin
servo_motor.write(115);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
}
void loop(){
int distanceRight = 0;
int distanceLeft = 0;
delay(50);
digitalWrite(RightMotorForward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorBackward, LOW);
}
void moveForward(){
if(!goesForward){
goesForward=true;
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
}
}
void moveBackward(){
goesForward=false;
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorForward, LOW);
}
void turnRight(){
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorBackward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorForward, LOW);
delay(500);
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
void turnLeft(){
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
delay(500);
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
}
d. Setelah menulis sketch di atas, pilih dan klik ikon verify untuk memastikan program
jalan atau tidak.
e. Tuliskan sketch di bawah ini pada jendela kerja arduino IDE.
void setup() {
}
void loop() {
//analogWrite(ENA, 255);
//analogWrite(ENB, 255);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
f. Setelah program selesai ditulis, klik verify untuk memastikan program berjalan atau
tidak.
g. Upload secara bergantian program tersebut pada board arduino.
6. Kesimpulan
........................................................................
........................................................................
........................................................................