#define Lamp 19 //--สร้างตัวแปรชื่อ Lamp ให้เก็บค่า 19
#define SwLamp 26 //--สร้างตัวแปลชื่อ SwLamp ให้เก็บค่า 26
int BTLamp; //--สร้างตัวแปลชื่อ BTLamp ชนิด int
int BTLampState; //--สร้างตัวแปรชื่อ BTLampState ชนิด int
int LastBTLampState = LOW; //--สร้างตัวแปรชื่อ LastBTLampState ชนิด int
bool LampState = HIGH; //--สร้างตัวแปรชื่อ LampState ชนิด booiean
unsigned long LastDebounceTimeBTLamp = 0; //--สร้างตัวแปรชื่อ LastDebounceTimeBTLamp ชนิด unsigned long ค่าเริ่มต้นเท่ากับ0
unsigned long DebounceDelay = 50; //--the debounce time; increase if the
//--สร้างตัวแปรชื่อ DebounceDelay ชนิด unsigned long ค่าเริมต้นเท่ากับ 50
void setup() { //--ฟังก์ชัน setup ใช้สำหรับเขียนโปรแกรมกำหนดค่าเริ่มต้นต่างๆ
pinMode(Lamp,OUTPUT); //--กำหนดให้ขา Lamp เป็นเอาต์พุต
digitalWrite(Lamp,HIGH); //--ส่งค่าลอจิก HIGH ออกขา Lamp
pinMode(SwLamp, INPUT_PULLUP); //--กำหนดให้ขา SwLamp เป็นอินพุตและเปิดวงจรพูลอัพด้วย
}
//+++++++++ จบฟังก์ชัน Setup +++++++++++++
void loop()
{
BTLamp = digitalRead(SwLamp); //--อ่านคำการกดสวิซ์(กด0,ไม่กด1)เก็บในตัวแปร BTLamp
if(BTLamp != LastBTLampState) { //--ตรวจสอบเงื่อนไข จริงหรือเท็จ
LastDebounceTimeBTLamp = millis();//จะรีเซ็ตเวลา debouncing
}
if((millis() - LastDebounceTimeBTLamp) > DebounceDelay) { //เช็คเงื่อนไข จริงหรือเท็จ
if(BTLamp != BTLampState) {//--ตรวจสอบเงื่อนไข จริงหรือเท็จ
BTLampState = BTLamp;//--นำค่าตัวแปล BTLamp มาใส่ในตัวแปร BTLampSTaTe
if(BTLampState == LOW) {//--ตรวจสอบเงื่อนไข จริงหรือเท็จ
LampState = !LampState;//--กลับค่าถ้าในตัวแปร Lapstate เป็น 1 จะกลับให้เป็น 0
}
}
}
if(LampState==0){//--ตรวจสอบเงื่อนไข จริงหรือเท็จ
digitalWrite(Lamp, LOW);//--รีเลย์ควบคุมหลอดไฟหยุดทำงาน
}
else{
digitalWrite(Lamp, HIGH);//--รีเลย์ควบคุมหลอดไฟหยุดทำงาน
}
LastBTLampState = BTLamp;//--นำค่าตัวแปร BTLamp มาใส่ในตัวแปร LastBTLamState
}