int led_status[3] = {0, 0, 0};
int led_enabled[3] = {1, 1, 1};
unsigned long X;
void update_led()
{
digitalWrite(2, led_status[0]);
digitalWrite(3, led_status[1]);
digitalWrite(4, led_status[2]);
}
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
Serial.begin(9600);
Serial.println("Ketiga LED akan berkedip dengan rate yang berbeda.");
Serial.println("Blinking bisa di RUN/STOP dengan perintah melalui Serial Monitor.");
Serial.println("Send 1 untuk RUN/STOP LED 1.");
Serial.println("Send 2 untuk RUN/STOP LED 2.");
Serial.println("Send 3 untuk RUN/STOP LED 3.");
Serial.println("https://blog.teknikelektrolinks.com");
}
void loop()
{
if (Serial.available())
{
char ch = Serial.read();
if (ch=='1' || ch=='2' || ch=='3')
{
ch = ch - 49;
led_enabled[ch] = !led_enabled[ch];
Serial.print("LED "); Serial.print(ch+1); Serial.print(" ");
Serial.println(led_enabled[ch] ? "enabled" : "disabled");
}
}
X++;
if (led_enabled[0] && X%1000 == 0) led_status[0] = !led_status[0];
if (led_enabled[1] && X%3000 == 0) led_status[1] = !led_status[1];
if (led_enabled[2] && X%6000 == 0) led_status[2] = !led_status[2];
update_led();
}