ความรู้พื้นฐานทางด้านอิเล็กทรอนิกส์ การเขียนโปรแกรม Arduino และ หุ่นยนต์เบื้องต้น ที่เคยลงไว้แล้ว
นำมาปรับปรุง ในเนื้อหาที่เพิ่มขึ้น
สามารถติดตามได้ในส่วนนี้ ครับ


กลับหน้าหลัก บทความ

ตอนที่ 76 อินเตอร์รัพ


มาทำความรู้จักกับอินเตอร์รัพ เพื่อจะนำไปใช้ทำโครงงานต่างอีกมากมาย
เช่น การนับจำนวนวัตถุ ซึ่งจะได้ทำเป็นบทความในส่วนของโครงงานต่อไป

อินเตอร์รัพ ( interrupt ) เป็นการขัดจังหวะในการทำงานเพื่อให้ไปทำงาน
ในส่วนอื่นๆตามที่เรียกมา แล้วกลับมาทำงานในส่วนหลักต่อไป


หลักการทำงานของ อินเตอร์รัพ


ตัวอย่าง เครื่องนับขวดบนสายพาน โดยใช้อินเตอร์รัพ

 

รูํปแบบการใช้คำสั่ง อินเตอร์รัพ

บอร์ด Uno, Nano, Mini, other 328-based จะมีขาใช้งาน อินเตอร์รัพขาที่ 2, 3
ส่วนบอร์ดอื่นๆให้ดุที่คู่มือแต่ละบอร์ดซึ่งจะแตกต่างกัน



ขา 3 จะรองรัพอินเตอร์รัพ INT 1
ขา 2 จะรองรับอินเตอร์รัพ INT 0


แสดง บอร์ดและตำแหน่งอินเตอร์รัพ บางบอร์ดของ Arduino



รูปแบบการใช้ชุดคำสั่ง attachInterrupt() ทั้ง 3 รูปแบบ

mode เลือกได้ 4 เงื่อนไขดังนี้..จะเกิดอินเตอร์รัพเมื่อ

LOW ..พอร์ตที่กำหนดไว้มีสถานะเป็น LOW
CHANGE ..พอร์ตที่กำหนดไว้มีการเปลี่ยนสถานะ เช่น จากสถานะ H เป็น L หรือจาก L เป็น H
RISING ..พอร์ตที่กำหนดไว้มีการเปลี่ยนสถานะจาก LOW เป็น HIGH
FALLING..เมื่อพอร์ตที่กำหนดไว้มีการเปลี่ยนสถานะจาก HIGH เป็น LOW
HIGH ....เมื่อพอร์ตที่กำหนดไว้มีสถานะเป็น HIGH

ข้อมูล attachInterrupt() จากArduino

วงจรและโปรแกรมทดสอบ



จะเขียนแสดงผลหน้าจอมอนิเตอร์ สั่งให้ ส่วนหลัก นับเลขเริมจาก 0
ถ้ายังไม่มี อินเตอร์รัพ จะอยูที่ค่้าเดินคือ 0 แต่ถ้ามีอินเตอร์รัพเรียกเข้ามา
จะ +1 และแสดงผล แบบนี้ไปเรื่อยๆ จนกว่าจะมีอินเตอร์รัพเขามาอีกครั้ง


int i=0;
void setup()
{
Serial.begin(9600);
attachInterrupt(1, count,RISING);
}

void loop() // ส่วนการทำงานหลัก
{
Serial.println(i);
delay(1000);
}

void count() // ส่วนสร้างฟังก์ยั้น ว่าให้ทำงานอะไรเมื่อถูกเรียกอินเตอร์รัพ
{
i=i+1;
}


ผลจากจอมอนิเตอร์

คงจะไม่ยากเกินไป..จะลองนำไปปรับแต่งทำโครงงานอะไร ได้ครับ

เขียนเมื่อ 15 กพ 66 / ติดตามตอนต่อไปครับ