สอนใช้งาน Arduino คำสั่ง Interrupt
คำสั่ง Interrupt ใน Arduino คือ การขัดจังหวะ คำสั่งนี้มีประโยชน์มาก
โดยเมื่อ Arduino ได้รับสัญญาณ Interrupt แจ้งเข้ามา จะหยุดพักงานที่ทำอยู่ แล้วกระโดดมาทำในคำสั่ง Interrupt ทำให้เราไม่ต้องใช้ if เช็คเงื่อนไขต่าง ๆ ซึ่งจะทำให้เสียเวลา และบางครั้งอาจติดทำคำสั่งอื่นอยู่ ทำให้ไม่ทำงานทันที
อินเตอร์รัพท์ (Interrupt) คือการขัดจังหวะการทำงานของโปรแกรมปกติที่กำลังทำอยู่ มาทำงานที่สำคัญเร่งด่วนทันที เมื่อทำเสร็จก็จะกลับไปทำงานเดิมที่ค้างไว้
ตัวอย่างเช่น ถ้าเรากำลังอ่านหนังสืออยู่ แล้วมีโทรศัพท์มา เราก็จะพักการอ่านหนังสือไว้ แล้วรับโทรศัพท์ เมื่อคุยเสร็จแล้ว ก็กลับมาอ่านหนังสือบรรทัดเดิมต่อไป
ขา interrupt สำหรับ Arduino แต่ละรุ่นไม่เหมือนกัน เช่น
Board |
int.0 |
int.1 |
int.2 |
int.3 |
int.4 |
int.5 |
Uno, Ethernet |
2 |
3 |
Mega2560 |
2 |
3 |
21 |
20 |
19 |
18 |
Leonardo |
3 |
2 |
0 |
1 |
7 |
การใช้งาน interrupt จะต้องใช้กับขาที่มีความสามารถนี้ได้เท่านั้น และอ้างอิงเลข interrupt แทนตำแหน่งขา
คำสั่งกำหนดใช้อินเตอร์รัพท์
คำสั่ง attachInterrupt() เป็นคำสั่งกำหนด และสร้างอินเตอร์รัพท์ โดยมีรูปแบบการใช้งานดังนี้
รูปแบบคำสั่ง attachInterrupt(interrupt, ISR, mode)
- interrupt คือลำดับขาอินเตอร์รัพท์ตามที่ได้ดูไปในตารางที่ผ่านมา ใน Arduino Due สามารถใส่หมายเลขขาลงไปได้เลย
- ISR คือชื่อฟังก์ชั่นที่จะไปถูกเรียกขึ้นมาเมื่อเกิดอินเตอร์รัพท์
- mode รูปแบบที่จะให้เกิดอินเตอร์รัพท์ มีทั้งหมด 4 รูปแบบดังนี้
- LOW จะเกิดอินเตอร์รัพท์ต่อเมื่อพอร์ตที่กำหนดไว้มีสถานะเป็น LOW
- CHANGE จะเกิดอินเตอร์รัพท์เมื่อพอร์ตที่กำหนดไว้มีการเปลี่ยนสถานะ เช่น จากสถานะ HIGH เป็น LOW หรือจาก LOW เป็น HIGH
- RISING จะเกิดอินเตอร์รัพท์เมื่อพอร์ตที่กำหนดไว้มีการเปลี่ยนสถานะจาก LOW เป็น HIGH
- FALLING จะเกิดอินเตอร์รัพท์เมื่อพอร์ตที่กำหนดไว้มีการเปลี่ยนสถานะจาก HIGH เป็น LOW
- HIGH จะเกิดอินเตอร์รัพท์ต่อเมื่อพอร์ตที่กำหนดไว้มีสถานะเป็น HIGH
อุปกรณ์ที่ต้องใช้ใน บทความ สอนใช้งาน Arduino คำสั่ง Interrupt
วิธีการต่ออุปกรณ์ สอนใช้งาน Arduino คำสั่ง Interrupt

อัพโหลดโค้ดตัวอย่างด้างล่างลง บอร์ด Arduino uno r3
---
จากโค้ดตัวอย่าง เมื่อเราทำการกดปุ่ม สถานะที่ขา 3 จะเปลี่ยนจาก LOW เป็น HIGH โปรแกรมจะโดดมาทำงานใน ฟังก์ชั่น void blink() ทันที


ดูวิธีการใช้งาน Arduino Interrupt แบบละเอียดเพิ่มเติมได้ที่นี่ดูสอนวิธีใช้งาน Arduino บทต่อไป
#51 สอนใช้งาน Arduino พูดโต้ตอบได้ เล่นไฟล์เสียงจาก SD Card
#53 Arduino สอนใช้งาน Arduino IC 74HC595 1 ตัว ขยายขา Digital Output
หน้าหลักบทความสอน Arduino แบบย่อทั้งหมด