Skip to content

Instantly share code, notes, and snippets.

@idriszmy
Created April 4, 2019 04:19
Show Gist options
  • Save idriszmy/ca1de6ab4d4e7a7d3698a7c5cb11d94f to your computer and use it in GitHub Desktop.
Save idriszmy/ca1de6ab4d4e7a7d3698a7c5cb11d94f to your computer and use it in GitHub Desktop.
Mengawal kecerahan LED pada pin keluaran analog.
/*
Fungsi kod: Mengawal kecerahan LED pada pin
keluaran analog.
Penulis: Idris Zainal Abidin
Blog: https://idrisz.my
Kemaskini: 4 Apr 2019
*/
int ledPin[6] = {3, 5, 6, 9, 10, 11}; // Pin keluaran analog disusun
// dalam bentuk pemboleh ubah array
// ledPin[0] merujuk pada LED pin 3
// ledPin[1] merujuk pada LED pin 5
// ledPin[2] merujuk pada LED pin 6
// ledPin[3] merujuk pada LED pin 9
// ledPin[4] merujuk pada LED pin 10
// ledPin[5] merujuk pada LED pin 11
int i = 0; // Pemboleh ubah i
int pwm = 0; // Pemboleh ubah pwm
boolean fadingMode = false; // Pemboleh ubah mod kecerahan
void setup()
{
// Tetapkan pin 3, 5, 6, 9, 10 dan 11 sebagai keluaran
for (i = 0; i < 6; i++) {
pinMode(ledPin[i], OUTPUT);
}
// LED3 akan semakin cerah perlahan-lahan
for (pwm = 0; pwm < 256; pwm++) { // Nilai pemboleh ubah pwm bermula dari 0
// dan naik dengan tambahan 1, sehingga 255
analogWrite(ledPin[0], pwm); // Menghantar isyarat analog (nilai pwm) ke pin LED3
delay(1); // Tunggu 1 mili saat
}
}
void loop()
{
// Corak LED menaik dari LED 3, 5, 6, 9, 10 dan 11
for (i = 0; i < 5; i++) { // Nilai pemboleh ubah i bermula dari 0
// dan naik dengan tambahan 1, sehingga 4
fadingMode = !fadingMode; // Terbalikkan status pemboleh ubah mod kecerahan
// dari true ke false, atau dari false ke true
if (fadingMode == true) { // Jika mod kecerahan adalah true
for (pwm = 255; pwm >= 0; pwm--) { // Nilai pemboleh ubah pwm bermula dari 255
// dan turun dengan tolakan 1, sehingga 0
analogWrite(ledPin[i], pwm); // LED pada array akan semakin malap perlahan-lahan
analogWrite(ledPin[i+1], 255-pwm); // LED pada array akan semakin cerah perlahan-lahan
delay(1); // Tunggu 1 mili saat
}
}
else { // Jika mod kecerahan adalah false
for (pwm = 0; pwm < 256; pwm++) { // Nilai pemboleh ubah pwm bermula dari 0
// dan naik dengan tambahan 1, sehingga 255
analogWrite(ledPin[i], 255-pwm); // LED pada array akan semakin cerah perlahan-lahan
analogWrite(ledPin[i+1], pwm); // LED pada array akan semakin malap perlahan-lahan
delay(1); // Tunggu 1 mili saat
}
}
}
// Corak LED menurun dari LED 11, 10, 9, 6, 5 dan 3
for (i = 5; i > 0 ; i--) { // Nilai pemboleh ubah i bermula dari 0
// dan naik dengan tambahan 1, sehingga 4
fadingMode = !fadingMode; // Terbalikkan status pemboleh ubah mod kecerahan
// dari true ke false, atau dari false ke true
if (fadingMode == true) { // Jika mod kecerahan adalah true
for (pwm = 255; pwm >= 0; pwm--) { // Nilai pemboleh ubah pwm bermula dari 255
// dan turun dengan tolakan 1, sehingga 0
analogWrite(ledPin[i], pwm); // LED pada array akan semakin malap perlahan-lahan
analogWrite(ledPin[i-1], 255-pwm); // LED pada array akan semakin cerah perlahan-lahan
delay(1); // Tunggu 1 mili saat
}
}
else { // Jika mod kecerahan adalah false
for (pwm = 0; pwm < 256; pwm++) { // Nilai pemboleh ubah pwm bermula dari 0
// dan naik dengan tambahan 1, sehingga 255
analogWrite(ledPin[i], 255-pwm); // LED pada array akan semakin cerah perlahan-lahan
analogWrite(ledPin[i-1], pwm); // LED pada array akan semakin malap perlahan-lahan
delay(1); // Tunggu 1 mili saat
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment