หลายคนอาจพบเจอปัญหาการใช้งาน Keypad ที่โคตรรรร!! จะเปลือง Pin มากจริง ๆ เช่น Keypad 4X4 ก็ปาไป 8 Pin เข้าไปแล้ว บางท่านนำไปต่อกับ NodeMCU โอ้วว 8 Pin จะไปเหลืออะไรหล่ะครับท่านผู้ชมครับ ไม่ต้องต่อ Sensor หรือ Module อื่น ๆ กันพอดี ใน EP นี้เราเลยขอเสนอทางแก้ปัญหาสำหรับคุณ (ทำเสียงเหมือนจอร์ชในทีวีไดเร็ค ฮ่าๆๆ) โดยการใช้ I/O Expander Module หรือโมดูลขยายขา โดยที่เราจะนำมาทดสอบในบทความนี้คือ ดูลขยายขาแบบ i2C (PCF8574) เพื่อนำมาขยายขาเพื่อใช้งาน Keypad ให้เหลือ 2 ขา คือ SDA กับ SCL กับครับ เอาหล่ะไปดูของที่จะใช้กันครับ 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
ส่วนขา SDA กับ SCL บนโมดูลขยายขาแบบ i2C (PCF8574) ก็นำไปต่อกับบอร์ด Arduino โดยแต่ล่ะบอร์ดก็แตกต่างกันไป ดูได้จาก Pin Maping ครับ
โดยวิธีติดตั้ง Library ทุกคนสามารถศึกษาจากบทความ Arduino IDE install Library การติดตั้ง Library บน Arduino IDE
ทำการ Download ไฟล์ จะได้ไฟล์ชื่อ arduino_keypads-master.ZIP จากนั้นทำการแตกไฟล์ arduino_keypads-master.ZIP โดย คลิกขวา > Extrac Here จะได้โฟลเดอร์ที่ชื่อว่า arduino_keypads-master จากนั้นเข้าไปยังโฟลเดอร์ จะเจอโฟลเดอร์ที่ชื่อว่า Keypad_I2C ให้ทำการบีบอัดไฟล์โดยการคลิกขวา แล้วเลือกที่ Add to Archive...
จะได้ไฟล์ที่ชื่อว่า Keypad_I2C.ZIP เปิด Arduino IDE ขึ้นมา จากนั้นไปที่ Sketch > Include Library > Add .ZIP Library... จากนั้นทำการเพิ่มไฟล์ Keypad_I2C.ZIP เข้าไปยัง Library ของ Arduino IDE ทฤษฎี โมดูลคีร์แพด (Keypad) หน่วยการเรียนรู้นี้เป็นการเขียนคำสั่งควบคุม Keypad membrane ซึ่งหลักการทำงานของ Keypad membrane แบบ 4 x 4 ชนิดนี้ประกอบไปด้วยปุ่ม 16 ปุ่ม ที่เรียงต่อกันเป็นเมตริกซ์แบบ 4 Row และ 4 Column ซึ่งการกดนั้นเพื่อให้หน้าสัมผัสที่เป็นชั้นสีแดงในรูปด้านล่างไปแตะกันทำให้เป็นการเชื่อมต่อกันทางไฟฟ้าไปอีกด้านหนึ่งของสวิตช์ อุปกรณ์ มีดังนี้ 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 ของบอร์ดไมโครคอนโทรลเลอร์ โค้ดคำสั่ง มีดังนี้ อธิบายโค้ดคำสั่ง ดังนี้ |