Created
April 4, 2019 04:19
-
-
Save idriszmy/ca1de6ab4d4e7a7d3698a7c5cb11d94f to your computer and use it in GitHub Desktop.
Mengawal kecerahan LED pada pin keluaran analog.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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