Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
A
AiOT
•
ติดตาม
30 มี.ค. 2020 เวลา 17:13 • การศึกษา
Lab 5 Matrix Switch
เชื่อมต่อสวิตซ์เมตริกซ์กับบอร์ด Arduino
การอ่านหรือรับค่าจากสวิตช์เป็นความสามารถหนึ่งที่ไมโครคอนโทรลเลอร์ สมัยใหม่ต้องรองรับเละเชื่อมต่อใช้งานได้ โดยฉพาอย่างยิ่งกับการติดต่อสวิตช์กดจำนวนมากเป็น 10 ตัวขึ้นไป
การต่อแบบพื้นฐานในลักษณะสวิตช์หนึ่งตัวต่อขาพอร์ตหนึ่งขาเป็นการเชื่อมต่อที่ง่ายทั้งทางฮาร์ดแวร์และกระบวนการทางซอฟต์แวร์
แต่จะสิ้นเปลืองและทำให้ขาพอร์ตของไมโครคอนโทรลเลอร์ได้รับการจัดสรรไปใช้งานเบบไม่คุ้มค่า
ทางออกของการใช้งานสวิตช์จำนวนมากกับไมโครคอนโทรลเลอร์คือ ทำการจัดวงจรการเชื่อมต่อสวิตช์ใหม่ให้เป็นแบบเมตริกซ์ เรียกว่า วงจรสวิตช์แบบมตริกซ์ (matrix switch) ดังเสดงตัวอย่างวงจรในรูป
วงจรพื้นฐานของสวิตช์เมเตริกซ์หรือคีย์แพค 4X4 จุด และหน้าตาของคีย์แพด 4x4จุด ที่มีพื้นฐานโครงสร้างวงจรมาจากสวิตช์เมตริกซ์ 4x4 จุด
สวิตช์จะถูกต่อกันในแนวแกนตั้งและแกนนอน เรียกสายสัญญาณในแนวตั้งว่า หลัก หรือ คอลัมน์ (columm)
ในณะที่สายสัญญาณในแนวนอนจะเรียกว่าแถว หรือ โรว์ (row) ดังนั้นคู่ของสวิตช์จึงประกอบด้วย ตำเเหน่งในแนวคอลัมน์และโรว์
กระบวนการที่จะทำให้ได้มาซึ่งค่าของสวิตช์มีขั้นตอนพอสมควรแต่วงจรของสวิตช์แบบนี้มีข้อดีคือ รองรับการเพิ่มของสวิตซ์ได้อย่างสะดวก เพียงเพิ่มเติมจำนวนสวิตช์เละแก้ไขซอฟต์แวร์อีกเล็กน้อยเท่านั้น ทำให้วงจรสวิตข์เมตริกซ์เป็นที่นิยมใช้มากในระบบควบคุมอัตโนมัติ หรือกึ่งอัตโนมัติที่มีจำนวนสวิตช์มากกว่า 8 ตัว ในการใช้งานทั่วไปจะเรียกสวิตช์แบบเมตริกซ์นี้ว่าคีย์แพด (keypad)
5.1 รู้จักกับสวิตซ์เมตริกซ์หรือคีย์แพด
ตัวอย่างวงจรเชื่อมต่อสวิตช์เมตริกซ์บนาค 44 จุดกับไมโครคอนโทรลเลอร์แสดงในรูป
วงจรเชื่อมต่อสวิตช์เมตริกซ์ขนาด 4X4 จุดเข้ากับไมโครคอนโทรลเลอร์
ใช้ขาพอร์ตของไมโครคอนโทรลเลอร์เชื่อมต่อเข้ากับสวิตช์เมตริกซ์รวม 8 เส้นคือ สายของคอลัมน์ 4 สาย (C1 ถึง C4)
และสายทางโรว์อีก 4 สาย (R1 ถึง R4) โดยฉพาะที่ขาพอร์ตที่ต่อกับแนวคอลัมน์ทั้งหมดจะต้องกำหนดให้ทำงานเป็นอินพุต และการมีตัวต้านทานต่อพูลอัปไว้เพื่อกำหนดสภาวะเริ่มต้นที่ไม่มีการกดสวิตซ์
ในการทำงานไมโครคอนโทรลเลอร์จะส่งข้อมูล "0" ไปยังขาพอร์ตที่ต่อกับสายโรว์ของสวิตช์เมตริกซ์
เริ่มจาก R1 ไล่ไปจนถึง R4 นั่นคือข้อมูลที่ส่งออกไปจะมีด้วยกัน 4 ค่าคือ 1110, 1101, 1011 เละ 0111
ในทุกครั้งที่มีการส่งข้อมูลไปยังสายโรว์หรือแถวของสวิตช้เมตริกซ์ ไมโครคอนโทรลเลอร์จะอ่านค่าที่ขาพอร์ตซึ่งต่อกับสายคอลัมน์ทั้ง 4 ขาเข้ามาด้วย
หากไม่มีการกดสวิตช์ค่าของขาพอร์ตที่ต่อกับสายคอลัมน์ของสวิตช้เมตริกจะเป็น 1111 ทั้งหมด
ถ้าหากมีการกดคีย์ ค่าของข้อมูลก็จะไม่เป็น 1111 อีกต่อไป เป็นการแจ้งให้ทราบว่ามีการกคสวิตช้เมตริกซ์ขึ้นแล้ว จากนั้นไมโครคอนโทรลเลอร์ก็จะนหาตำแหน่งต่อไป
ในการทดลองเพื่อเรียนรู้การเชื่อมต่อกับสวิตช์เมตริกซ์หรือคีย์แพดของฮาร์ดเเวร์ ในเวบ tinkercad เราสามารถใช้ Keypadมาใช้ประกอบในการทดลอง ในรูป
การจัดวางตำเเหน่งของสวิตช์บนแผงวงจร keypad ซึ่งภายในจะมีการกำหนดต่ำแหน่งและโครงสร้างดังรูป
วงจรสมบูรณ์ของ Keypad
ซึ่ง keypad โดยทั่วไปจะได้รับการออกแบบให้สามารถลือกติดตั้งตัวต้านทานทั้งแบบพูลอัปหรือพุลดาวน์เพื่อกำหนดสถานะของสายสัญญาณในขณะที่ไม่มีการกดสวิตช์ โดยตัวต้านทานที่เนะนำคือ ตัวค้นทานเเบบเน็ตเวิร์ก 5 ขา ซึ่งกายในจะมีโครงสร้างป็นตัวค้นทาน 4 ตัวที่ต่อขาหนึ่งร่วมกัน ดังแสดงในรูป
จุดต่อที่ไม่ได้กำหนดชื่อหรือจุดต่อรูปสี่เหลี่ยมจะเป็นจุดบัดกรีลอย นักศึกษาสามารถต่อเข้ากับไฟเลี้ยงหรือกราวน์ก็ได้ หากต่อเข้ากับไฟเลี้ยงก็จะเป็นการกำหนคให้การต่อตัวต้นทานเข้ากับแผงวงจร
สวิตซ์นี้เป็นแบบพูลอัป นั่นคือ มีการกำหนดสถานะลอจิก "1" ให้กับสายคอลัมน์ในขณะที่ไม่มีการกดสวิตช์
หากต่อกราวด์ก็จะเป็นการกำหนดให้การต่อตัวต้านทานเข้ากับแผงวงจรสวิตช์นี้ป็นแบบพูลดาวน์ นั่นถือ มีการกำหนดสถานะลอจิก "0" ให้กับสายคอลัมน์ในขณะที่ไม่มีการกดสวิตช์
Example 5.1เชื่อมต่อสวิตซ์เมตริกซ์กับบอร์ด Arduino และ monitoring ผ่าน Serial Monitor
https://www.tinkercad.com/things/4fB3b2CTvpb-matrix-switch-4x4-/editel?sharecode=w0V7SKAtzI6yNiN4a4xNAqIMDHvyEonkBIOZj_fRb64=
วิธีการดู Serial Monitor ใน tinkercad
ในหน้าต่าง code เราสามารถดูค่าที่ได้รับทาง serial port ได้ด้วย Serial Monitor
Assignment 5.1
เชื่อมต่อสวิตซ์เมตริกซ์กับบอร์ด Arduino และ output ผ่านหลอดไฟ LED โดยที่เมื่อกด 1 ไฟกระพริบช้า กด 2 ไฟกระพริบปานกลาง กด 3 ไฟกระพริบเร็ว
1
Assignment 5.2 สร้างตัวล๊อกด้วยรหัส โดยเชื่อมต่อสวิตซ์เมตริกซ์กับบอร์ด Arduino และ output ผ่านหลอดไฟ LED RGB โดยที่เมื่อกดเลข สามหลัก ตรงกับ ID 3 ตัวท้ายของรหัสนักศึกษา ให้แสดงผลเป็นสีเขียว
บันทึก
3
1
2
3
1
2
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2025 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย