A. Uraian Materi
1. Struktur program Arduino
Program arduino disebut juga dengan istilah sketch. Program ini dibuat dengan menggunakan struktur dasar bahasa C. Berikut ini adalah struktur dasar program Arduino.
void setup(){
}
void loop(){
}
Penulisan kode program diletakkan di antara dua tanda kurung kurawal pada struktur dasar program Arduino di atas. Penulisan kode program yang dimaksud dapat diletakkan di dalam fungsi void setup() atau pada void loop(). Apabila kode program diletakkan pada fungsi void setup() maka kode program tersebut akan dijalankan hanya satu kali. Sedangkan apabila diletakkan pada fungsi void loop(), maka kode program akan dijalankan secara berulang-ulang.
Penulisan kode program Bahasa C yang dipergunakan pada Arduino memiliki sifat Case Sensitive, artinya huruf kapital dan huruf kecil dianggap sebagai dua kode program yang berbeda. Sehingga programmer perlu berhati-hati dalam pembuatan kode program. Bahasa C termasuk dalam bahasa pemrograman tingkat menengah, artinya perintah-perintah yang dipergunakan masih mengandung bahasa manusia. Hal ini mempermudah dalam pembuatan kode program.
2. Proses eksekusi program oleh mikrokontroler
Alur proses eksekusi program pada Arduino digambarkan oleh diagram alir berikut ini :
Keterangan :
- Tahap Inisialisasi menentukan konstanta (nilai awal), variabel, library yang digunakan, dan menamai pin I/O.
- Eksekusi fungsi void setup(); fungsi tersebut berisi deretan program yang hanya dijalankan satu kali.
- Eksekusi fungsi void loop(); fungsi tersebut berisi deretan program yang dijalankan secara berulang-ulang.
- Jika tombol RESET ditekan, program akan mulai dari awal.
- Selama board arduino dialiri listrik, fungsi loop akan terus menerus dijalankan.
3. Menentukan variabel dan konstanta
Setelah kerangka dasar program dibuat, langkah selanjutnya yaitu membuat blok program inisialisasi. Dalam blok program tersebut kita harus menentukan variabel dan konstanta. Variabel perlu ditentukan untuk menyimpan nilai dalam sebuah lokasi memori. Konstata perlu ditentukan agar suatu variabel memiliki nilai awal. Syntax untuk menentukan variabel dan konstanta adalah sebagai berikut.
tipe_data nama_konstanta = nilai_awal;
tipe_data variabel-1, variabel-2, ..., variabel-n;
Contoh:
int kecepatan = 100; // kecepatan awal bernilai 100
boolean led = LOW; // led mula-mula padam
char hitungan;
// sebuah variabel dengan tipe data char untuk menyimpan nilai hitungan.
float tegangan, kecepatan, hitungan, putaran;
// 4 buah variabel dengan tipe data float untuk menyimpan nilai tegangan, kecepatan, hitungan, dan putaran.
4. Menamai pin
Board arduino memiliki 14 pin I/O digital dan 6 pin input analog. Masing masing pin sudah memiliki nama bawaan sesuai nomor urutnya. Pin digital 1 memiliki nama bawaan 1, Pin digital 2 memiliki nama bawaan 2, dan seterusnya sampai pin digital 13. Hal tersebut berlaku juga pada pin input analog. Agar mudah diidentifikasi, pin perlu dinamai. Nama biasanya ditentukan sesuai dengan komponen yang terhubung pada pin tersebut. Syntax program untuk menamai pin adalah sebagai berikut.
tipe_data nama_pin = no_pin;
atau
#define nomor_pin nama_pin
Contoh:
int led1 = 3; // led1 terhubung dengan pin digital 3
int led2 = 2; // led2 terhubung dengan pin digital 2
int led3 = 1; // led3 terhubung dengan pin digital 1
#define 2 led1 // led2 terhubung dengan pin digital 2
#define 9 motorDC // motorDC terhubung dengan pin digital 9
5. Menentukan mode pin
Semua pin I/O digital dan analog dapat diatur modenya menjadi input atau output. Mode pin diatur sesuai komponen yang terhubung menuju pin tersebut. Jika pin diatur dalam mode INPUT, maka pin tersebut bertugas membaca perubahan tegangan terhadap ground. Jika pin diatur dalam mode OUTPUT, maka pin tersebut dapat memberikan perubahan tegangan terhadap ground. Syntax menentukan mode pin adalah sebagai berikut.
pinMode(nama_pin, mode_pin);
Keterangan :
- nama_pin diubah sesuai yang ditentukan saat inisialisasi.
- mode_pin hanya dapat diubah menjadi INPUT atau OUTPUT
Contoh :
pinMode(led1, OUTPUT); // led1 berperan sebagai OUTPUT
pinMode(7, OUTPUT); // pin digital 7 berperan sebagai OUTPUT
pinMode(tombol, INPUT); // tombol berperan sebagai INPUT
6. Mengatur output pin digital
Output sebuah pin digital dapat diatur agar dapat memberikan tegangan terhadap ground. Jika nilai output pin diatur menjadi HIGH, maka pin tersebut memberikan tegangan sebesar 5V terhadap ground. Jika nilai output pin diatur menjadi LOW, maka pin tersebut tidak memberikan tegangan sebesar terhadap ground. Syntax menentukan mode pin adalah sebagai berikut.
digitalWrite(nama_pin, nilai);
nama_pin diubah sesuai yang ditentukan saat inisialisasi
nilai hanya dapat diubah menjadi HIGH atau LOW
Contoh:
digitalWrite(led1, HIGH); // nyalakan led 1
digitalWrite (6, LOW);
// tegangan antara pin 6 dan pin GND = 0 Volt
digitalWrite (6, HIGH);
// tegangan antara pin 6 dan pin GND = 5 Volt
7. Memberi tunda waktu
Program arduino dieksekusi oleh mikrokontroler baris demi baris. Kita dapat memberikan waktu tunda agar satu atau beberapa baris program dieksekusi selama waktu tunda yang kita inginkan.. Syntax untuk memberikan waktu tunda adalah sebagai berikut.
delay(waktu_tunda);
Waktu tunda diberikan dalam satuan mili detik
Contoh:
digitalWrite(led1, HIGH);
delay(2000);
// nyalakan led1 selama 2000 mili detik
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(2000);
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
delay(5000);
// led2 padam, led1 menyala selama 2000 mili detik
// led2 menyala, led1 padam selama 5000 mili detik
B. Latihan Soal
1. Perhatikan struktur dasar program Arduino di bawah ini !
a. Sebelum tanda kurung kurawal buka pada void setup ()
b. Sebelum tanda kurung kurawal buka pada void loop()
c. Setelah tanda kurung kurawal buka pada void setup ()
d. Setelah tanda kurung kurawal buka pada void loop()
e. Setelah tanda kurung kurawal tutup pada void loop()
2. Apa yang akan terjadi jika tombol RESET ditekan berdasarkan proses eksekusi program oleh mikrokontroler pada gambar beikut ini?
a. Program akan dimulai dari bagian awal
b. Program akan diakhiri
c. Menjalankan void loop()
d. Power ON
e. Power OFF
3. Maksud dari potongan program pada tahap inisialisai di bawah ini adalah?
int kecepatan = 100;
a. Kecepatan maksimal 100
b. Kecepatan minimal 100
c. Kecepatan awal 100
d. Kecepatan akhir 100
e. Selisih kecepatan awal dan akhir 100
4. Perintah untuk memberikan tunda waktu selama 1 detik adalah...
a. delay(1);
b. delay(10)
c. delay(100);
d. delay(1000);
e. delay(0,1);
5. Perintah untuk membuat pin 1 berfungsi sebagai keluaran/output adalah...
a. PinMode(led1, OUTPUT);
b. pinMode(led1, OUTPUT);
c. Pinmode(led1, OUTPUT);
d. pinmode(led1, OUTPUT);
e. PINMODE(led1, OUTPUT);
C. Jawaban Latihan Soal
1. D
2. A
3. C
4. D
5. B
Tidak ada komentar:
Posting Komentar