int led1 = 12; // กำหนดขาใช้งาน
int led2 = 11; // กำหนดขาใช้งาน
int led3 = 10; // กำหนดขาใช้งาน
int buttonPin1 = 2;
int buttonPin2 = 3;
int buttonPin3 = 4;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int PrevBtnSt1=0;
//Assign delays intervals for different LEDs
const unsigned long Blink_LED_1_interval = 200;
const unsigned long Blink_LED_2_interval = 1000;
const unsigned long Blink_LED_3_interval = 3000;
// Declaring the variables holding the timer values for each LED.
unsigned long Blink_LED_1_timer = 0;
unsigned long Blink_LED_2_timer = 0;
unsigned long Blink_LED_3_timer = 0;
void setup()
{
pinMode(led1, OUTPUT); // กำหนดขาทำหน้าที่ให้ขา 2 เป็น OUTPUT
pinMode(led2, OUTPUT); // กำหนดขาทำหน้าที่ให้ขา 2 เป็น OUTPUT
pinMode(led3, OUTPUT); // กำหนดขาทำหน้าที่ให้ขา 2 เป็น OUTPUT
pinMode(buttonPin1, INPUT);// กำหนดขาทำหน้าที่ให้ขา 3 เป็น INPUT รับค่าจากสวิตช์
pinMode(buttonPin2, INPUT);// กำหนดขาทำหน้าที่ให้ขา 3 เป็น INPUT รับค่าจากสวิตช์
pinMode(buttonPin3, INPUT);// กำหนดขาทำหน้าที่ให้ขา 3 เป็น INPUT รับค่าจากสวิตช์
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
Serial.begin(9600);
}
void toggle_LED1 ()
{
if (buttonState1 == 1) {
digitalWrite (led1, HIGH);
buttonState1 = 1;
}
else {
digitalWrite (led1, LOW);
buttonState1 = 0;
}
Serial.println("LED_1 Toggle");
Blink_LED_1_timer = millis (); // stores current value of millis()
}
void toggle_LED2 ()
{
if (buttonState2 == 1) {
digitalWrite (led2, HIGH);
buttonState1 = 1;
}
else {
digitalWrite (led2, LOW);
buttonState1 = 0;
}
Serial.println("LED_2 Toggle");
Blink_LED_2_timer = millis (); // stores current value of millis()
}
void toggle_LED3 ()
{
if (buttonState3 == 1) {
digitalWrite (led3, HIGH);
buttonState3 = 1;
}
else {
digitalWrite (led3, LOW);
buttonState1 = 0;
}
Serial.println("LED_3 Toggle");
Blink_LED_3_timer = millis (); // stores current value of millis()
}
void loop()
{
buttonState1 = digitalRead(buttonPin1); // อ่านค่าสถานะขา3
buttonState2 = digitalRead(buttonPin2); // อ่านค่าสถานะขา3
buttonState3 = digitalRead(buttonPin3); // อ่านค่าสถานะขา3
if (buttonState1 == HIGH) { //กำหนดเงื่อนไขถ้าตัวแปล buttonState เก็บ ค่า 1(HIGH) ให้ทำในปีกกา
//Serial.println("Button_1 High");
if ( (millis () - Blink_LED_1_timer) >= Blink_LED_1_interval) {
toggle_LED1 ();
}
else {
digitalWrite (led1, LOW);
buttonState1 = 0;
}
}
if (buttonState2 == HIGH) { //กำหนดเงื่อนไขถ้าตัวแปล buttonState เก็บ ค่า 1(HIGH) ให้ทำในปีกกา
//Serial.println("Button_2 High");
if ( (millis () - Blink_LED_2_timer) >= Blink_LED_2_interval) {
toggle_LED2 ();
}
else {
digitalWrite (led2, LOW);
buttonState2 = 0;
}
}
if (buttonState3 == HIGH) { //กำหนดเงื่อนไขถ้าตัวแปล buttonState เก็บ ค่า 1(HIGH) ให้ทำในปีกกา
//Serial.println("Button_3 High");
if ( (millis () - Blink_LED_3_timer) >= Blink_LED_3_interval) {
toggle_LED3 ();
}
else {
digitalWrite (led3, LOW);
buttonState3 = 0;
}
}
}