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
ความคิดเห็น
แสดงความคิดเห็น