Bagaimana ya untuk membuat mode LED agar seperti lampu Strobo yang bisa menyala dan mati secara berurutan? Nah, pada kesempatan kali ini Lavaintech akan berbagi mengenai hal tersebut. Pernah lihat kan lampu strobo yang menyala dan mati secara berurutan? Langsung saja kita bahas!
1.Persiapan
Untuk memulainya, beberapa instrumen yang perlu dipersiapkan adalah sebagai berikut,
- Lampu LED
Gambar 1. Lampu LED 5mm
- Resistor 220 ohm
Gambar 2. Resistor
- Kabel Jumper
Gambar 3. Kabel Jumper Male to Male
- Breadboard
Gambar 4. Breadboard/PCB tanpa solder
- Arduino Uno
Gambar 5. Arduino Uno
- Kabel USB Arduino
Gambar 6. Kabel USB Arduino Uno
Pastikan semua instrumennya lengkap ya, agar bisa mengikuti tutorial Flowing LED ini 😊.
2. Skematik Rangkaian
Ikuti rangkaian yang telah disajikan berikut ini untuk memulai membuat Flowing LED!
Gambar 7. Diagram Rangkaian Flowing LED
Sesuai dengan Gambar 7 di atas, wajib mengetahui mana kaki positif dari LED dan mana yang merupakan kaki negatif pada LED. Pastikan LED yang memiliki kutub negatif langsung dikoneksikan ke ground atau GND pada Arduino. Kemudian yang memiliki kutub positif disambungkan secara seri pada resistor 220 ohm. Kemudian dari resistor disambungkan lagi ke Pin yang sudah ditentukan.
Untuk proyek ini, cukup menggunakan masukan daya 5V dari Arduino, tidak perlu menggunakan power supply dari luar. Pastikan jarak antar ground atau GND pada breadboard tidak terlalu jauh ya! Hal ini sangat penting untuk menjaga kestabilan arus pada rangkaian yang dibuat.
3. Membuat Program
Langsung ke pembuatan programnya, nih! Kalian bisa unduh kode program yang telah kita buat di bagian bawah atau akhir artikel ini. Atau kalian juga bisa copy dan paste kode program di bawah ini.
// Program Flowing LED Lights
// https://Lavaintech.com
/* LED akan hidup secara berurutan dari pin pertama sampai pin terakhir
kemudian LED akan Mati dari pin terakhir ke pin pertama.
Untuk pengembangan lebih lanjut bisa bervariasi, sebagai contoh
di kode ini .*/
const int Pinpertama = 2; //Menentukan pin pertama pada rangkaian
const int Pinterakhir = 5; //Menentukan pin Terakhir pada rangkaian
void setup()
{
//Membuat pin 2 sampai dengan 5 sebagai Output
for(int Semuapin = Pinpertama; Semuapin <= Pinterakhir; Semuapin++)
{
pinMode(Semuapin,OUTPUT); //Inisialisasi “Semuapin” sebagai output pada Arduino
}
}
void loop()
{
//untuk memudahkan menghidupkan led, gunakan fungsi for seperti dibawah ini
for(int Semuapin = Pinpertama; Semuapin <= Pinterakhir; Semuapin++)
//menghidupkan LED dari pin pertama sampai pin terakhir
{
digitalWrite(Semuapin,HIGH); //Menghidupkan Lampu LED
delay(200); //Menunggu 200 microsecond untuk setiap LED proses
}
//mematikan LED dari pin terakhir sampai pin pertama
for(int Semuapin = Pinterakhir; Semuapin>=Pinpertama; Semuapin--)
{
digitalWrite(Semuapin,LOW); //Mematikan Lampu LED
delay(200);//wait for 100 microseconds
}
//menghidupkan LED dari pin terakhir sampai pin pertama
for(int Semuapin = Pinterakhir; Semuapin>=Pinpertama; Semuapin--)
{
digitalWrite(Semuapin,HIGH);//turn this led off
delay(200);//wait for 100 microseconds
}
//mematikan LED dari pin pertama sampai pin terakhir
for(int Semuapin = Pinpertama; Semuapin <= Pinterakhir; Semuapin++)
{
digitalWrite(Semuapin,LOW);//turn this led on
delay(200);//wait for 100 microseconds
}
}
Kita akan sedikit bahas mengenai struktur program di atas. Kalian bisa menemukan fungsi void setup() dan void loop() pada artikel yang sudah kita tulis ya! Kali ini ada hal baru yaitu fungsi for loop. Apa sih for loop itu? Ini adalah proses pengulangan pada bahasa pemrograman. Struktur for loop menggunakan batasan untuk memulai dan mengakhiri proses yang diinginkan.
Pada proyek ini, for loop digunakan untuk menghidupkan lampu dari pin pertama sampai “pinterakhir” yang mana pin itu adalah 2 dan 5. Kemudian kita bisa lihat strukturnya seperti di bawah ini:
for(int Semuapin = Pinpertama; Semuapin <= Pinterakhir; Semuapin++)
{
pinMode(Semuapin,OUTPUT); //Inisialisasi “Semuapin” sebagai output pada Arduino
}
Pada kode di atas, kita membuat integer yang dipanggil sebagai “Semuapin”. Kemudian, bahasa program ini seolah mengatakan pada otak Arduino bahwa ketika “Semuapin” sama dengan “Pinpertama” maka lakukan sesuatu. Dimana sesuatu ini adalah perintah yang kita tulis pada bagian {} setelah kurung tutup. Pada bagian {} di atas, dia mengatakan bahwa ketika “Semuapin” sama degan “Pinpertama” (dimana Pinpertama = 2, berarti “Semuapin” juga sama dengan 2) lakukan deklarasi bahwa “Semuapin” (atau pin 2) adalah sebagai outputdari Arduino. Ketika proses selesai dilakukan, maka lanjut ke pernyataan berikutnya yang ditandai dengan “;” . Jika “Semuapin” (atau pin 2) lebih kecil atau sama dengan “Pinterakhir” (dalam kode ini Pinterakhir = 5) maka lakukan sesuatu. Nah, sesuatu untuk yang kedua ini tidak berada di dalam {} melainkan ada di pernyataan setelah tanda “;”. Jadi seolah dia berkata, jika “Semuapin” (atau pin 2) lebih kecil atau sama dengan “Pinterakhir” (atau pin 5), maka lakukan “Semuapin++” Jika “Semuapin” tidak lebih kecil atau sama dengan “Pinterakhir” maka proses loop selesai dan melanjutkan ke proses selanjutnya.
Memang agak membingungkan, namun fungsi for loop ini sangat mempermudah kita dan memiliki fungsi yang sangat penting dalam pembuatan sebuah program. Kalian bisa lihat artikel mengenai dasar pemrograman pada Arduino untuk lebih memahami struktur kode yang ada di atas.
4.Hasil
Jika rangkaian dan program sudah diikuti, kalian akan melihat hasil seperti gambar di bawah ini.
Gambar 8. Rangkaian Flowing LED pada Breadboard
Gambar 9. Rangkaian dan Program Flowing LED Berjalan
Video Hasil
Semoga penjelasan kali ini bermanfaat bagi kalian! Tetap semangat dalam mempelajari mikrokontroler sampai kalian dapat membuat sesuatu! Terima kasih telah membaca artikel ini!
Penulis: Malik Athafarras
Editor: Ariq Naufal Rabbani