Arduino: Menghasilkan Corak Cahaya LED

Topik menghasilkan corak cahaya LED berkait rapat dengan topik mengawal pin keluaran digital. Ia lebih memfokuskan kepada teknik pengaturcaraan supaya kita lebih kreatif menggunakan pernyataan berulang seperti for, do dan while.

Ulangkaji:
  1. Muat Naik Pengaturcaraan ke Maker UNO
  2. Mengawal Pin Keluaran Digital

Contoh Kod Pengaturcaraan

1. Corak Cahaya LED Berlari 1 Arah

Cahaya LED bergerak bermula dari LED L2 sehingga L13 dan proses ini berulang semula.

/*
Fungsi kod: Menghasilkan corak cahaya LED di
papan Maker UNO.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 19 April 2019
*/
int ledPin = 0; // Pemboleh ubah pin LED
void setup()
{
// Tetapkan semua pin 2 hingga 13 yang bersambung
// dengan LED sebagai keluaran
for (ledPin = 2; ledPin < 14; ledPin++) {
pinMode(ledPin, OUTPUT);
}
}
void loop()
{
// Nyalakan LED satu persatu dari pin 2 hingga pin 13
for (ledPin = 2; ledPin < 15; ledPin++) {
digitalWrite(ledPin, HIGH); // Nyalakan LED semasa
digitalWrite(ledPin-1, LOW); // Padamkan LED sebelumnya
delay(100); // Tunggu 100 ms
}
}
2. Corak Cahaya LED Berlari 2 Arah

Cahaya LED bergerak bermula dari LED L2 sehingga L13. Kemudian, cahaya LED berpatah kembali dari LED L13 sehingga ke L2. Proses ini berulang-ulang.

/*
Fungsi kod: Menghasilkan corak cahaya LED di
papan Maker UNO.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 19 April 2019
*/
int ledPin = 0; // Pemboleh ubah pin LED
void setup()
{
// Tetapkan semua pin 2 hingga 13 yang bersambung
// dengan LED sebagai keluaran
for (ledPin = 2; ledPin < 14; ledPin++) {
pinMode(ledPin, OUTPUT);
}
}
void loop()
{
// Nyalakan LED satu persatu dari pin 2 hingga pin 13
for (ledPin = 2; ledPin < 14; ledPin++) {
digitalWrite(ledPin, HIGH); // Nyalakan LED semasa
digitalWrite(ledPin-1, LOW); // Padamkan LED sebelumnya
delay(100); // Tunggu 100 ms
}
// Nyalakan LED satu persatu dari pin 13 hingga pin 2
for (ledPin = 13; ledPin > 1; ledPin--) {
digitalWrite(ledPin, HIGH); // Nyalakan LED semasa
digitalWrite(ledPin+1, LOW); // Padamkan LED sebelumnya
delay(100); // Tunggu 100 ms
}
}
3. Corak Cahaya LED Berlari Zig Zag

Cahaya LED bermula di dua LED iaitu L2 dan L13. Cahaya ini bergerak kearah berlawanan sehingga bertembung dan melantun semula. Proses ini berulang-ulang.

/*
Fungsi kod: Menghasilkan corak cahaya LED di
papan Maker UNO.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 19 April 2019
*/
int ledPin = 0; // Pemboleh ubah pin LED
int ledUpperPin = 0; // Pemboleh ubah pin untuk set LED atas
int ledLowerPin = 0; // Pemboleh ubah pin untuk set LED bawah
void setup()
{
// Tetapkan semua pin 2 hingga 13 yang bersambung
// dengan LED sebagai keluaran
for (ledPin = 2; ledPin < 14; ledPin++) {
pinMode(ledPin, OUTPUT);
}
}
void loop()
{
ledLowerPin = 3; // Mula dengan LED L3 untuk set LED bawah
ledUpperPin = 12; // Mula dengan LED L12 untuk set LED atas
do {
// Cahaya LED bergerak ke atas untuk set LED bawah
digitalWrite(ledLowerPin, HIGH);
digitalWrite(ledLowerPin-1, LOW);
// Cahaya LED bergerak ke bawah untuk set LED atas
digitalWrite(ledUpperPin, HIGH);
digitalWrite(ledUpperPin+1, LOW);
delay(100); // Tunggu 100 ms untuk setiap pertukaran cahaya LED
ledLowerPin++; // Naikkan kedudukan LED untuk set bawah
ledUpperPin--; // Turunkan kedudukan LED untuk set atas
} while (ledLowerPin < 8);
ledLowerPin = 6; // Mula dengan LED L6 untuk set LED bawah
ledUpperPin = 9; // Mula dengan LED L9 untuk set LED atas
do {
// Cahaya LED bergerak ke bawah untuk set LED bawah
digitalWrite(ledLowerPin, HIGH);
digitalWrite(ledLowerPin+1, LOW);
// Cahaya LED bergerak ke atas untuk set LED atas
digitalWrite(ledUpperPin, HIGH);
digitalWrite(ledUpperPin-1, LOW);
delay(100); // Tunggu 100 ms untuk setiap pertukaran cahaya LED
ledLowerPin--; // Mula dengan LED L6 untuk set LED bawah
ledUpperPin++; // Mula dengan LED L9 untuk set LED atas
} while (ledLowerPin > 1);
}
Ubah Kod Pengaturcaraan

Anda boleh mengubah masa menunggu untuk lihat pergerakan cahaya LED lebih cepat atau perlahan. Jika anda sukakan cabaran, anda boleh hasilkan corak cahaya LED anda sendiri. Jangan lupa kongsikan pautan video di ruangan komen.

Hari Raya dah nak dekat. Bolehlah anda hasilkan corak cahaya LED sendiri selepas ini! 😁


Semoga perkongsian ini bermanfaat. Bagi membolehkan saya terus mengusahakan blog ini, amatlah berbesar hati sekiranya tuan/puan dapat memberi sumbangan ikhlas bagi menampung kos (hosting, domain, masa, barang, dll). Terima kasih. Maybank Idris Zainal Abidin 162731011315

Leave a Reply