Fungsi for dalam Arduino berguna untuk perulangan dalam jumlah tertentu. Misal nya contoh membaca sensor selama 10 kali, atau menyalakan LED 5 kali atau waiting data Serial 100 kali. Fungsi For ini juga bisa mempersingkat program sehingga kita tidak perlu mengetikkan kode secara berulang-ulang.
Memahami for dengan Serial.println();
Untuk memahami fungsi for ini kita akan menggunakan Serial.println dan melihat nya di serial monitor. Saya harap teman-teman sudah paham cara check Serial.println di serial monitor.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println();
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("perulangan");
for (int i = 0; i < 10; i++) {
Serial.print("di ulang: ");
Serial.println(i);
}
delay(1000);
}
Penjelasa program di atas adalah sebagai berikut.,
for (int i = 0; i < 10; i++) {
Serial.print("di ulang: ");
Serial.println(i);
}
int i adalah sebuah variable i dengan tipe data int di set nilai awal nya 0. Jika nilai i masih lebih kecil dari pada 10, maka nilai di tambah 1 ( i++ atau i=i+1). Untuk membuktikan nya. check di serial monitor dan lihat perubahan data i. Hasil nya adalah sebagai berikut,
Fungsi for dalam for
Fungsi for juga bisa kita sisipkan dalam for. Sering juga di sebut fungsi for bertingkat. Bagaimana kah contoh nya, yuk kita lihat contoh program lagi di bawah ini.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println();
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("perulangan");
for (int i = 0; i < 10; i++) {
Serial.print("nilai i----->: ");
Serial.println(i);
for (int k = 5; k > 0; k--) {
Serial.print("nilai k: ");
Serial.println(k);
delay(1000);
}
}
delay(1000);
}
Setelah kita tahu cara kerja fungsi for, apakah manfaat nya? yuk kita coba kendalikan LED dengan fungsi For
Control LED dengan Fungsi for
Pada gambar di atas, ada keterangan LED pada modul trainner iot kita terhubung ke GPIO ESP32. Jika teman-teman masih ingin mengulang pelajaran tentang led ini bisa tekan tombol di bawah ini.
byte pin_led[] = {17, 16, 2, 15, 5, 18, 19, 23};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println();
}
void loop() {
// put your main code here, to run repeatedly:
Serial.print("jumlah pin_led: ");
Serial.println(sizeof(pin_led));
for(int i=0; i<sizeof(pin_led); i++){
Serial.print(pin_led[i]);
Serial.print(",");
}
Serial.println();
delay(1000);
}
Penjelasa program di atas adalah sebagai berikut
byte pin_led[] = {17, 16, 2, 15, 5, 18, 19, 23};
pin_led[]; adalah sebuah variable array dengan tipe data byte, sementara di dalam tanda kurung krawal adalah data yang disimpan. Variable array ini sama saja seperti berikut ini,
byte pin_led[0] = 17;
byte pin_led[1] = 16;
byte pin_led[2] = 2;
byte pin_led[3] = 15;
byte pin_led[4] = 5;
byte pin_led[5] = 18;
byte pin_led[6] = 19;
byte pin_led[7] = 23;
namun penulisan kode di atas akan menjadi panjang, sehingga di rubah ke dalam bentuk array
sizeof(pin_led);
Maksud nya adalah panjang variable dalam array. Panjang nya adalah 8. 🙂 silahkan hitung sendiri jumlah data yang ada dalam variable
for(int i=0; i<sizeof(pin_led); i++){
Serial.print(pin_led[i]);
Serial.print(",");
}
disini kita akan menampilkan data pin_led[0] sampai dengan pin_led[7]. Sesuai dengan fungsi for yang sudah kita jelaskan di atas. Nah sekarang bagaimanakah cara memanfaatkan fungsi for dan array untuk mempersingkat code program arduino kita? yuk kita coba
byte pin_led[] = {17, 16, 2, 15, 5, 18, 19, 23};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
for (int i = 0; i < sizeof(pin_led); i++) {
pinMode(pin_led[i], OUTPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
on_off();
}
void on_off(){
for (int i = 0; i < sizeof(pin_led); i++) {
digitalWrite(pin_led[i], HIGH);
}
delay(100);
for (int i = 0; i < sizeof(pin_led); i++) {
digitalWrite(pin_led[i], LOW);
}
delay(100);
}
pada fungsi loop() kita akan memanggil fungsi on_off();
Tugas fungsi for
Untuk mematangkan penggunakan fungsi for dan variable array. Coba selesaikan Tugas di bawah ini
- Buat lah program LED ON dan OFF selama 50ms sebanyak 5 kali kemudian di tahan selama 1000ms
- Buat lah program LED Geser ke kiri dengan interval waktu 20ms sebanyak 5kali kemudian di tahan selama 1000ms
- Buat lah program LED Geser ke kanan dengan interval waktu 20ms sebanyak 5kali kemudian di tahan selama 1000ms
Semua tugas di atas menggunakan fungsi for dan Array, Selamat mencoba
Semoga bermanfaat.