Program yang telah kita buat sebelumnya akan dibaca dan dilaksanakan oleh Arduino baris perbaris secara berurutan dan ketika program sudah sampai ke baris yang paling bawah maka Arduino akan membaca program dari atas kembali, perhatikan kembali program mengedipkan lampu dibawah ini:
int waktu = 100;
int Pin = 3;
void setup () {
pinMode(Pin, OUTPUT);
}
void loop () {
digitalWrite(Pin, HIGH);
delay(waktu);
digitalWrite(Pin, LOW);
delay(waktu);
waktu=waktu + 50;
}
Pada program diatas digitalWrite(Pin, HIGH) akan pertama kali dibaca oleh Arduino lalu dilanjutkan ke baris berikutnya yakni delay(waktu). Begitu seterusnya sampai baris terakhir, lalu program akan membaca ulang dari atas kembali.
Waktu delay secara otomatis dan bertahap akan bertambah dengan penambahan nilai 50 setiap kali perulangan program yang mengakibatkan lama-kelamaan lampu akan kedipan lampu akan melambat seperti pada video dibawah ini:
Program diatas memiliki 1 kelemahan, yaitu nilai variabel “waktu” akan bertambah terus sampai akhirnya lampu LED tidak berkedip lagi. Pada tulisan ini, kita akan mencoba untuk menambah beberapa baris program agar nilai variabel “waktu” akan kembali ke nilai awal ketika mencapai kondisi tertentu.
Perhatikan program berikut ini:
int waktu = 100;
int Pin = 3;
void setup () {
pinMode(Pin, OUTPUT);
}
void loop () {
digitalWrite(Pin, HIGH);
delay(waktu);
digitalWrite(Pin, LOW);
delay(waktu);
waktu=waktu + 50;
if(waktu == 1000){
waktu = 100;
}
}
Penjelasan
Pada baris ke 13, nilai variabel “waktu” saat ini ditambah 50, sehingga setiap kali perulangan nilai “waktu” akan bertambah 50 menjadi 150, 200, 250 dst.
Pada baris ke 15 kita tambahkan fungsi logika IF:
if(waktu == 1000) {
waktu = 100;
}
fungsi logika diatas bermakna “jika nilai variabel waktu sama dengan 1000, maka nilai variabel waktu kembali ke 100”. Dengan cara ini setiap kali nilai variabel “waktu” yang digunakan oleh delay mencapai nilai 1000, maka pada perulangan berikutnya akan kembali ke nilai 100 sehingga lampu LED berkedip cepat kembali. perhatikan video berikut ini:
Logika IF ini bisa diaplikasikan ke berbagai project seperti mengendalikan output berdasarkan hasil pembacaan sensor. Kita juga dapat membuat beberapa kondisi bertingkat dengan menambahkan ELSE. Sebagai contoh, kita bisa mengendalikan sebuah buah kipas angin dan sebuah AC berdasarkan kondisi suhu yang dirasakan sensor saat ini. perhatikan contoh dibawah ini.
if(suhu>=30){
hidupkanAC;
matikanKipas;
}
else {
hidupkanKipas;
matikanAC;
}
Jika (if) suhu ruangan lebih besar atau sama dengan 30 derajat celcius, maka hidupkan AC dan matikan kipas angin, jika lain daripada itu (else) hidupkan kipas angin dan matikan AC.
fungsi logika IF juga bisa terdiri dari banyak kondisi, misalnya kita akan mengendalikan kecepatan sebuah kipas angin berdasarkan jumlah orang yang masuk kedalam ruangan. Perhatikan lagi contoh program dibawah ini:
if (orang==1){
kipasSpeed1;
}
else if (orang <=3) {
kipasSpeed2;
}
else if (orang > 5) {
kipasSpeed3;
}
else {
matikanKipas;
}
Jika orang didalam ruangan berjumlah sama dengan 1 maka hidupkan kipas dengan kecepatan 1, jika orang kurang dari atau sama dengan 3 orang, maka kipas kecepatan 2, jika orang lebih dari 5, maka hidupkan kipas kecepatan 3, selain daripada itu matikan kipas.
Pada program diatas, kita menggunakan operator sama dengan (==), lebih kecil dari atau sama dengan (<=) dan lebih besar dari (>). Lambang lengkap dari operator-operator diatas beserta fungsinya bisa kita lihat pada tabel dibawah ini
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
| < | Kurang dari | 7 < 8 8 > 7 | true false |
| > | Lebih dari | 8 > 7 7 > 8 | true false |
| <= | Kurang dari sama dengan | 8 <= 7 7 <=7 | true true |
| >= | lebih dari sama dengan | 7 >= 7 8 >= 7 | true true |
| == | Sama dengan | 8 == 8 8 == 9 | True False |
| != | tidak sama dengan | 8 != 8 8 != 9 | false true |
Jadi, dengan logika IF, ELSE IF, dan ELSE kita bisa membuat sistem kendali Arduino dengan berbagai kondisi atau syarat sesuai keinginan kita atau sesuai pembacaan sensor.
Demikian tulisan ini, sampai jumpa di materi berikutnya yang akan membahas tentang fungsi perulangan for dan while.

Pingback:Ringkasan Materi Informatika Semester 1 – Helmy Aswan Daniel