DAFTAR ISI
Modul 1, Percobaan 1, Nomor 15
Hidupkan LED
seluruhnya, lalu mati bergantian dari kiri ke kanan
int led [ ] = {2, 3, 4, 5, 6, 7, 8, 9}; //mendeklarasikan pin 2-9 yang digunakan
void setup() //semua kode dalam fungsi ini hanya dibaca sekali
{
for (int i = 0; i <= 8; i++) //perulangan dari 0 dengan nilai batas kecil sama dengan 8; increase
{
pinMode (led[i], OUTPUT); //menyatakan pin yang dihubungkan ke LED sebagai OUTPUT
}
}
void loop() //Semua kode dalam fungsi ini dibaca berulang
{
for (int hidup = 0; hidup <= 8; hidup++) //Kondisi perulangan dari 0 dengan batas nilai 8; untuk memnghidupkan LED
{
digitalWrite(led[hidup], HIGH); //LED diberi logika 1 sehingga LED menyala
}
delay(300); //Jarak waktu 100 ms sebelum memulai perulangan
for (int mati = 0; mati <= 8; mati++) //Kondisi perulangan dari 0 dengan batas nilai 8; untuk mematikan LED
{
digitalWrite(led[mati], LOW); //LED diberi logika 0 sehingga LED mati
delay(100); //Jarak waktu 100 ms antar LED yang akan mati
}
delay(100); //Jarak waktu 100 ms sebelum memulai perulangan
}
Dalam rangkaian, terdapat power tegangan dan ground yang terhubung ke Arduino (disini menggunakan SIMULANO). Kemudian, dari pin 2-13 dari Arduino terhubung ke masing-masing resistor dengan hambatan 220 ohm. Masing-masing resistor terhubung ke LED dan terakhir ke ground.
Untuk dapat menjalankan rangkaian, diperlukan program untuk Arduino. Dengan menggunakan Arduino IDE, pertama mendeklarasikan pin Arduino dari 2-13 dengan tipe data int dengan array (berguna untuk perulangan). Kemudian, fungsi void setup() yang hanya dibaca satu kali untuk menyatakan pin mode menjadi OUTPUT dengan perulangan for (int i = 0; i <= 8; i++). Ketika kondisi i<=8 sudah tidak terpenuhi, dijalankan fungsi void loop() yang dibaca berulang. Di dalamnya, terdapat perulangan for (int hidup = 0; hidup <= 8; hidup++) untuk menghidupkan LED dengan digitalWrite(led[hidup], HIGH) ; tanpa ada delay. Ketika kondisi hidup<=8 sudah tidak terpenuhi, dijalankan delay selama 300 ms untuk jeda waktu sebelum perulangan selanjutnya. Setelahnya, dijalankan perulangan for (int mati = 0; mati <= 8; mati++) untuk mematikan LED dengan digitalWrite(led[mati], LOW); dan dilanjutkan dengan delay selama 100 ms, sehingga delay tersebut menandakan berapa lama waktu yang dibutuhkan LED pertama untuk mati sebelum LED selanjutnya juga mati. Ketika kondisi mati<=8 sudah tidak terpenuhi, maka selanjutnya dijalankan delay selama 100 ms sebelum memulai perulangan void loop() kembali.
Setelah program dibuat dan dipasangkan pada Arduino di proteus, ketika dijalankan akan terlihat LED hidup secara bersamaan karena pada program perulangan for (int hidup = 0; hidup <= 8; hidup++) tidak memiliki delay dimana delay berguna untuk LED terlihat hidup secara bergantian. Selanjutnya setelah delay 300 ms, LED akan terlihat mati secara bergantian dari kiri ke kanan karena pada perulangan for menggunakan increase dari 0-8 dan terdapat delay untuk masing-masing LED tersebut. Setelah semua LED mati, terdapat delay 100 ms kembali sebelum perulangan ke awal kembali dan seterusnya.
Rangkaian simulasi download
Video simulasi download
Program Arduino download
File HTML download
No comments:
Post a Comment