หลักการ ทำงาน Keypad Arduino

หลายคนอาจพบเจอปัญหาการใช้งาน Keypad ที่โคตรรรร!! จะเปลือง Pin มากจริง ๆ เช่น Keypad 4X4 ก็ปาไป 8 Pin เข้าไปแล้ว บางท่านนำไปต่อกับ NodeMCU โอ้วว 8 Pin จะไปเหลืออะไรหล่ะครับท่านผู้ชมครับ ไม่ต้องต่อ Sensor หรือ Module อื่น ๆ กันพอดี ใน EP นี้เราเลยขอเสนอทางแก้ปัญหาสำหรับคุณ (ทำเสียงเหมือนจอร์ชในทีวีไดเร็ค ฮ่าๆๆ) โดยการใช้ I/O Expander Module หรือโมดูลขยายขา โดยที่เราจะนำมาทดสอบในบทความนี้คือ ดูลขยายขาแบบ i2C (PCF8574) เพื่อนำมาขยายขาเพื่อใช้งาน Keypad ให้เหลือ 2 ขา คือ SDA กับ SCL กับครับ เอาหล่ะไปดูของที่จะใช้กันครับ

หลักการ ทำงาน Keypad Arduino

1. บอร์ด Arduino Uno R3 หรือ Arduino Mega 2560 R3

2. โมดูลขยายขาแบบ i2C (PCF8574)

3. Membrane 3x4 Matrix Keypad ปุ่มกด 1x4

4. Membrane 3x4 Matrix Keypad ปุ่มกด 4x3

5. Membrane 3x4 Matrix Keypad ปุ่มกด 4x4



การเชื่อมต่ออุปกรณ์


การเชื่อมต่อกับ Keypad 1X4

หลักการ ทำงาน Keypad Arduino


การเชื่อมต่อกับ Keypad 4X3

หลักการ ทำงาน Keypad Arduino


การเชื่อมต่อกับ Keypad 4X4

หลักการ ทำงาน Keypad Arduino

ส่วนขา SDA กับ SCL บนโมดูลขยายขาแบบ i2C (PCF8574) ก็นำไปต่อกับบอร์ด Arduino โดยแต่ล่ะบอร์ดก็แตกต่างกันไป ดูได้จาก Pin Maping ครับ


หลักการ ทำงาน Keypad Arduino

หลักการ ทำงาน Keypad Arduino



การติดตั้ง Library


1. ทำการติดตั้ง Keypad Library << กดตรงนี้เพื่อ Download

หลักการ ทำงาน Keypad Arduino

โดยวิธีติดตั้ง Library ทุกคนสามารถศึกษาจากบทความ Arduino IDE install Library การติดตั้ง Library บน Arduino IDE


2. ทำการติดตั้งการติดตั้ง Keypad_I2C Library << กดตรงนี้เพื่อ Download

หลักการ ทำงาน Keypad Arduino

ทำการ Download ไฟล์ จะได้ไฟล์ชื่อ arduino_keypads-master.ZIP


หลักการ ทำงาน Keypad Arduino

จากนั้นทำการแตกไฟล์ arduino_keypads-master.ZIP โดย คลิกขวา > Extrac Here


หลักการ ทำงาน Keypad Arduino

จะได้โฟลเดอร์ที่ชื่อว่า arduino_keypads-master จากนั้นเข้าไปยังโฟลเดอร์


หลักการ ทำงาน Keypad Arduino

จะเจอโฟลเดอร์ที่ชื่อว่า Keypad_I2C ให้ทำการบีบอัดไฟล์โดยการคลิกขวา แล้วเลือกที่ Add to Archive...


หลักการ ทำงาน Keypad Arduino


จากนั้นเลือกเป็น ZIP แล้วกด OK


หลักการ ทำงาน Keypad Arduino

จะได้ไฟล์ที่ชื่อว่า Keypad_I2C.ZIP


หลักการ ทำงาน Keypad Arduino

เปิด Arduino IDE ขึ้นมา จากนั้นไปที่ Sketch > Include Library > Add .ZIP Library... จากนั้นทำการเพิ่มไฟล์ Keypad_I2C.ZIP เข้าไปยัง Library ของ Arduino IDE

หลักการ ทำงาน Keypad Arduino

ทฤษฎี โมดูลคีร์แพด (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)

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

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

หลักการ ทำงาน Keypad Arduino

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

หลักการ ทำงาน Keypad Arduino

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

หลักการ ทำงาน Keypad Arduino

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

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

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

หลักการ ทำงาน Keypad Arduino

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

หลักการ ทำงาน Keypad Arduino

หลักการ ทำงาน Keypad Arduino

หลักการ ทำงาน Keypad Arduino