[BASIC] 002 Button (ปุ่มกด)
สวัสดีครับ สำหรับหัวข้อบทเรียนพื้นฐานบนบอร์ด HONEYLemon ที่ใช้งานผ่าน arduino library ในเรื่องนี้จะนำพาท่านไปพบกับการใช้งาน Button หรือปุ่มกดบนบอร์ด HONEYLemon ซึ่งจะช่วยให้ท่านพัฒนา code ได้อย่างรวดเร็ว และเป็นระเบียบมากขึ้น ใช้งานง่าย ปุ่มเดียวใช้ได้ ถึง 3 ฟังก์ชั่น
ฟังก์ชั่นที่เกี่ยวข้อง lemon.onClick() // สำหรับการกดปุ่มครั้งเดียว lemon.onLongClick() // สำหรับการกดปุ่มค้าง lemon.onDoubleClick() // สำหรับการกดปุ่มสองครั้งติดต่อกัน
วิธีการใช้เราจะสร้างฟังก์ชั่นสำหรับการใช้งานเมื่อกดปุ่มนั้นกันก่อน
1
void BTN_Click(){
2
// ตัวอย่างสำหรับการเขียน Function เพื่อเอาไว้ทำงานเวลามีการกดปุ่มหนึ่งครั้ง
3
}
Copied!
หลังจากนั้นเราจึงมาเพิ่มในฟังก์ชั่น setup() ให้มีการ callback function เมื่อมีการกดปุ่มหนึ่งครั้ง ไปที่ฟังก์ชั่น BTN_Click() โดยใช้คำสั่งต่อไปนี้
1
void setup(){
2
...
3
lemon.onClick(BTN_Click); // หากกดปุ่มครั้งเดียวให้เรียกใช้งานฟังก์ชั่น BTN_Click()
4
...
5
}
Copied!
เราจะได้แล้ว 1 ฟังก์ชั่น หลังจากนั้นทำแบบเดียวกันกับอีก 2 ฟังก์ชั่น จะได้ตามตัวอย่างแล้วละครับ
ตัวอย่าง source code
1
/*
2
Basic : การเขียนโปรแกรมกับการใช้งานปุ่มกดบนบอร์ดไมโครคอนโทรลเลอร์ HONEYLemon
3
*/
4
#include <HONEYLemon.h>
5
6
void BTN_Click(){ // ฟังก์ชั่นสำหรับการกดปุ่มครั้งเดียว
7
Serial.println("Button Click!"); // แสดงผลที่หน้าจอมอนิเตอร์
8
}
9
void BTN_LongClick(){ // ฟังก์ชั่นสำหรับการกดปุ่มค้าง
10
Serial.println("Button Long Click!"); // แสดงผลที่หน้าจอมอนิเตอร์
11
}
12
void BTN_DoubleClick(){ // ฟังก์ชั่นสำหรับการกดปุ่มสองครั้ง
13
Serial.println("Button Double Click!"); // แสดงผลที่หน้าจอมอนิเตอร์
14
}
15
16
void setup()
17
{
18
lemon.begin(); // เรียกใช้งานฟังก์ชั่นเริ่มต้นของบอร์ด HONEYLemon
19
20
Serial.begin(115200); // เรียกใช้งาน Serial
21
lemon.debug(Serial); // ขอดู debug ของบอร์ด HONEYLemon ผ่าน Serial
22
23
/*
24
Function Event Callback
25
26
onClick( __function__ ); // สำหรับกดปุ่มครั้งเดียว
27
onLongClick( __function__ ); // สำหรับกดปุ่มค้าง
28
onDoubleClick( __function__ ); // สำหรับกดปุ่มสองครั้ง
29
*/
30
31
lemon.onClick(BTN_Click); // หากกดปุ่มครั้งเดียวให้เรียกใช้งานฟังก์ชั่น BTN_Click()
32
lemon.onLongClick(BTN_LongClick); // หากกดปุ่มค้างให้เรียกใช้งานฟังก์ชั่น BTN_LongClick()
33
lemon.onDoubleClick(BTN_DoubleClick); // หากกดปุ่มสองครั้งให้เรียกใช้งานฟังก์ชั่น BTN_DoubleClick()
34
}
35
36
void loop()
37
{
38
}
Copied!
หลังจากนั้นดู Serial Monitor และกดปุ่ม 1 ครั้ง, 2 ครั้ง, กดค้าง ตามลำดับ จะได้ผลดังรูป
Last modified 1yr ago
Copy link