<< Go Back

ทฤษฎี โมดูลคีร์แพด (Keypad)

หน่วยการเรียนรู้นี้เป็นการเขียนคำสั่งควบคุม Keypad membrane ซึ่งหลักการทำงานของ Keypad membrane แบบ 4 x 4 ชนิดนี้ประกอบไปด้วยปุ่ม 16 ปุ่ม ที่เรียงต่อกันเป็นเมตริกซ์แบบ 4 Row และ 4 Column ซึ่งการกดนั้นเพื่อให้หน้าสัมผัสที่เป็นชั้นสีแดงในรูปด้านล่างไปแตะกันทำให้เป็นการเชื่อมต่อกันทางไฟฟ้าไปอีกด้านหนึ่งของสวิตช์
หลักการในการตรวจสอบว่าผู้ใช้กำลังกดปุ่มอะไรอยู่นั้นก็ใช้วิธีการ scan ไปทีละ Column จนครบทุก Column แล้วนำมาตีความว่ามีการตอบสนองออกมาเป็นแบบใดบ้าง เช่น ถ้ามีการกดเลข 1 อยู่ ในขณะที่จ่ายแรงดัน 5 โวลต์ ไปที่ Column ที่ 1 จะมีเพียง Row แรกเท่านั้นที่จะอ่านค่า แรงดันได้ High นอกนั้นจะเป็น Low หรือ ถ้ามีการกดปุ่ม # อยู่ ขณะที่ Scan ไปแต่ละ Column นั้นจะไม่เจอแรงดัน High ที่ Row ใด จนกว่าจะ Scan ไปถึง Column ที่ 3 ซึ่งจะพบว่ามีการตอบสนองกลับมาจาก Row ที่ 4 นั้นเอง ดังนั้นเมื่อพบว่าเป็นการ Scan Column ที่ 3 และมี Row 4 ตอบสนอง ก็คือปุ่ม '#' นั่นเอง
ซึ่งจังหวะการกดของคนแต่ละคน กดด้วยช่วงเวลาสั้นยาวไม่เท่ากัน ทำให้ต้องมีการตรวจสอบโดยมีระยะเวลาเข้ามาเกี่ยวข้อง ไม่อย่างนั้นจะสับสนระหว่างการกดแช่ หรือ การกดแบบซ้ำปุ่ม นอกจากนั้นยังต้องมี debouncing ด้วยเพื่อป้องกันการรับค่าผิดจากการ bounce ของสวิตช์ อีกทั้งยังต้องมีการจดจำปุ่มที่กดไปแล้วอีกว่ากดอะไรไปบ้าง กี่ครั้งแล้ว ก่อนที่จะมาประมวลผลตรวจสอบค่าที่ใส่เปรียบเทียบกับค่าที่ตั้งไว้เป็นรหัส ซึ่งการตรวจสอบทั้งหมดนี้จะอยู่ในชุด Library (#include <Keypad.h>)

อุปกรณ์ มีดังนี้

1. บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3


2. คีย์แพด 4*4  1 ตัว

3. สาย Micro USB ต่อวงจรระหว่างบอร์ด Arduino และ คอมพิวเตอร์

 

การกำหนดขาของคีย์แพด มีดังนี้

ขาที่ 1 ของคีย์แพด ต่อกับขาที่ 2 ของบอร์ดไมโครคอนโทรลเลอร์
ขาที่ 2 ของคีย์แพด ต่อกับขาที่ 3 ของบอร์ดไมโครคอนโทรลเลอร์
ขาที่ 3 ของคีย์แพด ต่อกับขาที่ 4 ของบอร์ดไมโครคอนโทรลเลอร์
ขาที่ 4 ของคีย์แพด ต่อกับขาที่ 5 ของบอร์ดไมโครคอนโทรลเลอร์
ขาที่ 5 ของคีย์แพด ต่อกับขาที่ 6 ของบอร์ดไมโครคอนโทรลเลอร์
ขาที่ 6 ของคีย์แพด ต่อกับขาที่ 7 ของบอร์ดไมโครคอนโทรลเลอร์
ขาที่ 7 ของคีย์แพด ต่อกับขาที่ 8 ของบอร์ดไมโครคอนโทรลเลอร์
ขาที่ 8 ของคีย์แพด ต่อกับขาที่ 9 ของบอร์ดไมโครคอนโทรลเลอร์


โค้ดคำสั่ง มีดังนี้

อธิบายโค้ดคำสั่ง ดังนี้
บรรทัดที่ 1            //การเรียกใช้ไลบรารีคีย์แพด
บรรทัดที่ 3           //การกำหนดจำนวนคอลัมน์ จำนวน 4 คอลัมน์
บรรทัดที่ 4           //การกำหนดจำนวนแถว จำนวน 4 แถว
บรรทัดที่ 6-12     //การกำหนดปุ่มทั้งหมดบนคีย์แพด
บรรทัดที่ 14        //การกำหนดการใช้งานร่วมกับคีย์แพดของแถว
บรรทัดที่ 15        //การกำหนดขาในการใช้งานร่วมกับคีย์แพดของคอลัมน์
บรรทัดที่ 17       //กำหนดค่าตัวแปรในการรับค่าของคีย์แพด
บรรทัดที่ 21       //การกำหนดค่าเริ่มต้นการสื่อสารที่ 9600
บรรทัดที่ 26      //ประกาศให้ตัวแปร key ตรวจสอบการกดคีย์แพด
บรรทัดที่ 29      //ถ้ากดปุ่ม B บนคีย์แพด ให้แสดงข้อความบน Serial Monitor ว่า  เก่งมากจ๊า
บรรทัดที่ 35      //ถ้านอกเงื่อนไขพด ให้แสดงข้อความบน Serial Monitor ว่า ปรับปรุงนะจ๊า

 


<< Go Back