Arduino Project 4CH Relay Timer #04



Arduino Project 4CH Relay Timer #04

มาต่อกันที่ส่วนแรกเลยนั่นคือ ส่วนการรับค่าปุ่มที่กด โดยปุ่มกดที่ติดมากับ LCD Keypad Shield จะเป็นการปรับแรงดันให้ขา Analog 0 มีวงจรลักษณะดังนี้

จากรูปหากกดที่ Sw1 จะทำให้ขา 0 ต่อลงกราวด์ ทำให้ค่าทีอ่านออกมาจะมีค่าเท่ากับศูนย์ แต่ในทางปฏิบัติจริงจะมีค่าเพิ่มขึ้นมานิดหน่อย
ส่วนของการตรวจสอบค่าปุ่มกดนี้จะใช้เป็นแบบฟังก์ชั่น เนื่องจากต้องมีการเรียกใช้ในหลาย ๆ ส่วน  ในฟังก์ชั่นจะมีลักษณะการทำงานดังนี้

Code
int read_LCD_buttons()
{
int adc_key_in = analogRead(0);      

 if (adc_key_in > 1000) return btnNONE;
 if (adc_key_in < 70)   {setBLTime();return btnRIGHT; }   //20
 if (adc_key_in < 150)  {setBLTime();return btnUP; }   //120
 if (adc_key_in < 290)  {setBLTime();return btnDOWN; }   //256
 if (adc_key_in < 450)  {setBLTime();return btnLEFT; }   //410
 if (adc_key_in < 750)  {setBLTime();return btnSELECT;  }  //639
 return btnNONE;  // กรณีไม่เป็นไปตามเงื่อนไขด้านบน
}
ค่าที่ใช้ตรวจสอบ แต่ละบอร์ดอาจจะไม่เหมือนกัน บอร์ดที่ทำอยู่มีค่าตามที่ Remark ไว้
Code ในส่วนการตรวจสอบการปล่อยปุ่มกด เพื่อป้องกันไม่ให้โปรแกรมข้ามไปทำงานส่วนต่อไปในทันที
void waitButtonRelease()
{
int chkButton;
while((chkButton=read_LCD_buttons())!=btnNONE ){};
}


ดูต่อ Arduino Project 4CH Relay Timer #05

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Make BIG checkbox in Excel

เทคนิคการสร้าง Folder ลับ (การซ่อน Folder) 2

Measurement Equipment Management Software (Calibration Plan Software)