หนว่ ยท่ี 9
Arduino กบั สวิตช์เมทรกิ ซ์
20128 – 2109 รายวิชาการประยกุ ต์ใชง้ านไมโครคอนโทรลเลอร์
ผสู้ อน นางสาวรัชฎาเนตร สรุ าไพ
แผนกวิชาเทคโนโลยีคอมพวิ เตอร์ วทิ ยาลยั เทคนคิ สิงหบ์ รุ ี
Arduino กบั สวิตช์เมทรกิ ซ์
1. วงจรสวิตชเ์ มทรกิ ซ์
สวิตช์เมทริกซ์ (matrix switch)หรือเรียกว่า คีย์แพด (keypad) เป็นสวิตซ์ที่ตอ่
อยู่ในรูปแบบเมทริกซ์ ใช้การป้อนข้อมูลร่วมกับงานไมโครคอนโทรลเลอร์ มี
ส่วนประกอบคือ หน้าสมั ผัสสวติ ช์ ติดแผน่ ลาเบลปิดชอ่ื คีย์ และสายต่อสญั ญาณ สวิตช์
เมทริกซ์หรือแปน้ ตัวเลข (Keypad) ท่ีนามาใช้งานกับไมโครคอนโทรลเลอร์มีขนาด 4x3
สามารถใช้แทนสวติ ช์ได้ 12 ตวั ใช้พอรต์ ของไมโครคอนโทรลเลอรจ์ านวน 7 พอร์ต
1. วงจรสวติ ชเ์ มทริกซ์
วงจรสวติ ช์เมทรกิ ซ์แบบ 4 X 3
2. หลกั การเขยี นโปรแกรมสแกนคีย์ (Scan key)
วงจรสวติ ช์เมทริกซ์ ซ่ึงการต่อวงจรสวติ ช์ใหน้ าสายสัญญาณแนวนอน (Row) ต้ังแต่
แถว Row1- Row3 ตอ่ เข้าทพ่ี อร์ตดิจติ อลขา 5, 4, 3, 2 กาหนดให้เป็นพอร์ตเอาตพ์ ุต ส่วน
สายสัญญาณแนวตง้ั (Column) ต้งั แตแ่ ถว Col1- Col3 ตอ่ เข้าทพี่ อรต์ ดจิ ติ อลขา 6, 7, 8
และกาหนดใหเ้ ป็นพอรต์ อินพตุ ส่วนการแสดงผลนาข้อมลู ปรากฏบนหนา้ ต่างจอภาพ
คอมพวิ เตอรแ์ บบอนกุ รม
2. หลักการเขยี นโปรแกรมสแกนคีย์ (Scan key)
วงจรคีย์สวติ ชแ์ บบเมทริกซ์
2. หลักการเขยี นโปรแกรมสแกนคีย์ (Scan key)
ข้นั ตอนการเขยี นโปรแกรมสแกนคยี ์ (Scan key) ดังน้ี
1. สง่ ขอ้ มลู ไปออกทพ่ี อรต์ พอร์ตดจิ ติ อลขา 5 (ROW1) เป็นลอจิก “0” ส่วน
พอร์ตดิจติ อลขา 4, 3, 2 (ROW2-ROW4) เป็นลอจิก “1” เพอื่ ทาการตรวจสอบว่าสวิตช์
หมายเลข 1, 2 และ 3 จากวงจรถ้าสวติ ชห์ มายเลขใดถกู กดขอ้ มลู ท่ีอ่านเขา้ มาท่พี อรต์
ดจิ ิตอลขา 6, 7, 8 ทาให้มีคา่ เป็นลอจิก “0” ด้วย ตวั อยา่ งเชน่ ถ้าสวิตชห์ มายเลข 1 ถกู กด
ทีพ่ อรต์ ดิจติ อลขา 6 ทาใหอ้ ่านคา่ เป็นลอจกิ “0” ส่วนพอรต์ ดิจติ อลขา 7, 8 อา่ นคา่ ได้เปน็
ลอจกิ “1” ในโปรแกรมกส็ ามารถรบั ร้ไู ดว้ า่ ตอนน้ีสวิตชห์ มายเลข 1 ถกู กด และสง่ ข้อมลู
เลข 1 ไปบนหนา้ ตา่ งจอภาพคอมพวิ เตอร์ เม่อื ทาการตรวจสอบสวิตช์ทั้ง 3 ตัวแลว้ จากนั้น
จงึ ทาขนั้ ตอนที่ 2 ต่อไป
2. หลกั การเขยี นโปรแกรมสแกนคยี ์ (Scan key)
2. จากน้ันโปรแกรมสง่ ข้อมลู ไปออกที่พอรต์ พอรต์ ดจิ ิตอลขา 4 (ROW2) เปน็ ลอจิก
“0” สว่ นพอรต์ ดิจิตอลขา 5, 3, 2 (ROW1, ROW3, ROW4) เป็นลอจิก “1” เพอื่ ทาการ
ตรวจสอบวา่ สวติ ช์หมายเลข 4, 5 และ 6 และถา้ สวติ ชห์ มายเลขใดถูกกดขอ้ มูลท่อี ่านเขา้
มาทพี่ อรต์ ดิจติ อลขา 6, 7, 8 ทาใหม้ คี า่ เปน็ ลอจิก “0” ดว้ ย ตัวอย่างเชน่ ถ้าคียส์ วติ ช์
หมายเลข 5 ถูกกด ทีพ่ อร์ตดิจิตอลขา 7 ทาใหอ้ า่ นคา่ เปน็ ลอจิก “0” ส่วนพอรต์ ดิจิตอลขา
6, 8 อา่ นค่าได้เป็นลอจิก “1” ในโปรแกรมกส็ ามารถรบั รู้ได้วา่ ตอนนสี้ วิตช์หมายเลข 5
ถูกกด และส่งขอ้ มูลเลข 5 ไปบนหนา้ ต่างจอภาพคอมพิวเตอร์ เมือ่ ทาการตรวจสอบสวิตช์
ท้งั 3 ตวั แลว้ จากนน้ั จึงทาข้ันตอนท่ี 3 ต่อไป
2. หลกั การเขยี นโปรแกรมสแกนคยี ์ (Scan key)
3. จากน้ันโปรแกรมสง่ ข้อมลู ไปออกที่พอรต์ พอรต์ ดจิ ิตอลขา 3 (ROW3) เปน็ ลอจิก
“0” สว่ นพอรต์ ดิจิตอลขา 5, 4, 2 (ROW1, ROW2, ROW4) เป็นลอจิก “1” เพอื่ ทาการ
ตรวจสอบวา่ สวติ ช์หมายเลข 7, 8 และ 9 และถา้ สวติ ชห์ มายเลขใดถูกกดขอ้ มูลท่อี ่านเขา้
มาทพี่ อรต์ ดิจติ อลขา 6, 7, 8 ทาใหม้ คี า่ เปน็ ลอจิก “0” ดว้ ย ตัวอย่างเชน่ ถ้าคียส์ วติ ช์
หมายเลข 9 ถูกกด ทีพ่ อร์ตดิจิตอลขา 8 ทาใหอ้ า่ นคา่ เปน็ ลอจิก “0” ส่วนพอรต์ ดิจิตอลขา
6, 7 อา่ นค่าได้เป็นลอจิก “1” ในโปรแกรมกส็ ามารถรบั รู้ได้วา่ ตอนนสี้ วิตช์หมายเลข 9
ถูกกด และส่งขอ้ มูลเลข 9 ไปบนหนา้ ต่างจอภาพคอมพิวเตอร์ เมือ่ ทาการตรวจสอบสวิตช์
ท้งั 3 ตวั แลว้ จากนน้ั จึงทาข้ันตอนท่ี 4 ต่อไป
2. หลกั การเขยี นโปรแกรมสแกนคีย์ (Scan key)
4. จากน้นั โปรแกรมสง่ ข้อมูลไปออกที่พอรต์ พอร์ตดิจติ อลขา 2 (ROW4) เป็น
ลอจกิ “0” สว่ นพอรต์ ดจิ ติ อลขา 5, 4, 3 (ROW1, ROW2, ROW3) เปน็ ลอจกิ “1” เพื่อ
ทาการตรวจสอบวา่ สวติ ชห์ มายเลข *, 0 และ # และถา้ สวติ ช์หมายเลขใดถูกกดขอ้ มลู ท่ี
อ่านเขา้ มาท่ีพอรต์ ดิจติ อลขา 6, 7, 8 ทาใหม้ ีคา่ เป็นลอจกิ “0” ดว้ ย ตัวอยา่ งเชน่ ถา้ คีย์
สวติ ชห์ มายเลข * ถกู กด ทีพ่ อรต์ ดิจิตอลขา 6 ทาใหอ้ ่านค่าเปน็ ลอจกิ “0” สว่ นพอรต์
ดิจติ อลขา 7, 8 อา่ นค่าได้เป็นลอจกิ “1” ในโปรแกรมก็สามารถรบั ร้ไู ดว้ ่าตอนนสี้ วิตช์
หมายเลข * ถกู กด และสง่ ขอ้ มลู เลข * ไปบนหนา้ ต่างจอภาพคอมพวิ เตอร์
5. เมอ่ื โปรแกรมทาครบทั้ง 4 ขนั้ ตอน โปรแกรมจะวนไปทาซา้ ในขั้นตอนข้อท่ี 1