บอร์ดควบคุมหุ่นยนต์ ATX2 ,POP-X2 ,POP-7 ,IPST-SE ทุกตัวมีสวิตช์ OK และมีคำสั่ง OK รองรับ ปัญหาคือบางครั้งออกแบบหุ่นยนต์แล้ว กดสวิตช์ตำแหน่งนี้ยาก ถ้าต่อสวิตช์ภายนอก แล้วให้ทำงานเหมือนสวิตช์ OK ได้หรือเปล่า เดี๋ยวเรามาลองกัน
สำหรับบอร์ด ATX2 ตำแหน่งสวิตช์ OK จะอยู่ในตำแหน่งดังรูป
งานนี้ขอยกตัวอย่างด้วยบอร์ด ATX2 เนื่องจากใช้ OK() อยู่บ่อยครั้ง
คำสั่ง OK();
นอกจากจะรอกดสวิตช์เพื่อเริ่มงานแล้ว ยังเรียกคำสั่ง XIO() เพื่อเปิดการทำงานของ CPU ตัวที่ 2 ของบอร์ด ATX2 อีกด้วย มาพร้อมกับหน้าจอแสดงข้อความเรียกร้องให้กดปุ่ม
1. แสดงข้อความที่หน้าจอ
2. รอจนกระทั่งกดสวิตช์ OK
3. ทำงานคำสั่งถัดไป
ZX-Switch01
สวิตช์ที่เวลาใช้งานบางคนจะงงๆ เพราะออกแบบมาให้กดแล้วเป็น 0 ไม่กดเป็น 1 มีไฟแสดงตอนกดด้วย สวิตช์ก็เลือกคุณภาพสูงทนการกดนับครั้งไม่ถ้วน (แต่แพง) เนื่องจากเป็นอุปกรณ์อินพุตดิจิตอล เมื่อใช้งานกับบอร์ด ATX2 ,POP-X2 ,POP-7 ,IPST-SE จะอ่านค่าด้วยคำสั่ง in(ขาที่ต่อ) สั้นๆ ได้เลย
ลงมือปฏิบัติ
- ต่อสวิตช์เข้าที่ขา 30/A6 (บอร์ด ATX2)
-
เขียนโค้ดเพื่อรอการกดสวิตช์ แล้วค่อยทำงานต่อไป
#include <ATX2.h> // ATX2 Board
void setup() {
XIO(); // ATX2 initialize
while(in(30));
beep();
setTextSize(4);
glcd(1,1,"RUN");
}
void loop() {
}
การทำงาน
- เพื่อปลุก CPU ตัวที่ 2 บนบอร์ด ATX2 ให้ทำงานเมื่อไม่เรียก OK แล้วก็ต้องเรียก XIO
- คำสั่ง while ปกติถ้าใส่ “;” อย่าเอาไปใช้ที่อื่นนะ มันจะค้างยาวเลย แต่ใช้งานนี้คือ วนรอไปจนกว่าสวิตช์ที่ต่ออยู่กับขา 30/A6 จะถูกกดแล้วจึงข้ามไปทำงานคำสั่งถัดไป
- คำสั่งที่ให้ทำเป็นอะไรก็ได้ในที่นี้แค่ให้สร้างเสียงกับแสดงข้อความที่หน้าจอ เป็นอันจบ