สารบัญ:

การใช้แป้นกด 4x4 กับ CircuitPython: 4 ขั้นตอน
การใช้แป้นกด 4x4 กับ CircuitPython: 4 ขั้นตอน

วีดีโอ: การใช้แป้นกด 4x4 กับ CircuitPython: 4 ขั้นตอน

วีดีโอ: การใช้แป้นกด 4x4 กับ CircuitPython: 4 ขั้นตอน
วีดีโอ: Programmable Macro Keyboard with an Arduino Pro Micro (32u4), Cherry Switches + Stealth Foot Pedal 2024, พฤศจิกายน
Anonim
การใช้แป้นกด 4x4 กับ CircuitPython
การใช้แป้นกด 4x4 กับ CircuitPython

แป้นพิมพ์ราคาถูกนี้มีวิธีการป้อนตัวเลขแบบง่ายๆ สำหรับโปรเจ็กต์ CircuitPython ของคุณ ฉันจะใช้กับ Adafruit ItsyBitsy M0 express

คุณจะต้องการ:

  • ปุ่มกด - ของฉันคือ 4x4
  • ItsyBitsy M0 Express หรือบอร์ดที่คล้ายกัน
  • Mu Editor ติดตั้งบนคอมพิวเตอร์ของคุณ
  • สาย USB แฟลชโค้ด

ขั้นตอนที่ 1: วิธีการทำงานของปุ่มกด

วิธีการทำงานของปุ่มกด
วิธีการทำงานของปุ่มกด

ปุ่มกดมีสวิตช์แบบฟองสบู่ที่ทำงานช้าและเรียบง่าย 16 อันจัดเรียงเป็น 4 ต่อตารางโดยมีจุดเชื่อมต่อ 8 ตัวที่ด้านล่าง หากเรานับเลขจากด้านซ้ายตั้งแต่ 0 ถึง 7 การเชื่อมต่อ 0 ถึง 3 จะเชื่อมต่อกับแต่ละแถว การเชื่อมต่อ 0 กับแถวบนและการเชื่อมต่อ 3 กับแถวล่าง การเชื่อมต่อ 4 ถึง 7 เชื่อมต่อกับคอลัมน์ด้วยการเชื่อมต่อ 4 ที่คอลัมน์ด้านซ้ายและการเชื่อมต่อ 7 กับคอลัมน์ด้านขวา สวิตช์ทั้ง 16 ตัวทำการเชื่อมระหว่างแถว/คอลัมน์ที่ต่างกัน หากเรากดแป้น 7 แถวที่สามจะถูกรวมเข้ากับคอลัมน์ด้านซ้าย เราสามารถสัมผัสได้ว่าปุ่ม 5 หากถูกกดหากแถวของมันถูกยกขึ้นสูงและเราสามารถอ่านค่า HIGH บนคอลัมน์ได้ การทำเช่นนี้เรา OUTPUT ไปที่แถวและ INPUT จากคอลัมน์

เราจำเป็นต้องตั้งค่าให้แต่ละแถวเป็น HIGH ในขณะที่แถวอื่นๆ เป็น LOW ให้อ่านแต่ละคอลัมน์ตามลำดับจนกระทั่งเราได้รับอินพุตสูง สิ่งนี้สามารถจัดการได้อย่างง่ายดายด้วยการซ้อนลูป

เราต้องคำนึงถึงข้อเท็จจริงที่ว่า บับเบิ้ลสวิตช์เหล่านี้ทำงานค่อนข้างช้าและต้องกดแรงๆ เพื่อให้ปิดได้ การสแกนทั้ง 16 สวิตช์ด้วยวิธีนี้สามารถทำได้อย่างรวดเร็ว แต่เราต้องสแกนซ้ำๆ เพื่อรับการกดปุ่ม นอกจากนี้เรายังต้อง 'ดีบัก' ด้วยการหน่วงเวลาสั้น ๆ เพื่อที่เราจะไม่ได้รับคีย์ซ้ำทุกครั้งที่กด

เนื่องจากสวิตช์ค่อนข้าง 'บอบบาง' เราจึงต้องการคำติชมจากผู้ใช้เพื่อระบุว่าได้อ่านการกดปุ่มแล้ว ไฟ LED ในตัวจะกะพริบทุกครั้งที่มีการกดปุ่ม

ขั้นตอนที่ 2: การเชื่อมต่อทางกายภาพ

การเชื่อมต่อทางกายภาพ
การเชื่อมต่อทางกายภาพ

การเชื่อมต่อจากซ้ายไปขวาบนแป้นกด0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 บน ItsyBitsy

D7 ถึง D11 ถูกกำหนดให้เป็น OUTPUT ในขณะที่ A5 ถึง A2 ถูกตั้งค่าเป็น INPUT ด้วย PULLDOWN

โค้ดมีความคิดเห็นมากมายและควรปฏิบัติตามได้ง่าย

ขั้นตอนที่ 3: วิธีการทำงานของ Getkey()

Getkey() ทำงานอย่างไร
Getkey() ทำงานอย่างไร

ฟังก์ชันนี้จะสแกนปุ่มกดเพื่อกดปุ่มเดียว ตรวจสอบปุ่มแต่ละปุ่มอย่างรวดเร็วสูงสุด 10 ครั้งเพื่อดูว่าสวิตช์กุญแจปิดอยู่หรือไม่ หากกดปุ่ม ระบบจะคืนค่าคีย์ โดยนับจากซ้ายไปขวาจากบนลงล่าง (0 …15) สังเกตค่าสำหรับแถวล่างสุด: 14, 0, 15, 13 (Hex E, 0, F, D) หากไม่มีการกดปุ่มใด ๆ ระบบจะส่งกลับ -999 เป็นรหัสข้อผิดพลาดซึ่งสามารถหยิบขึ้นมาได้อย่างง่ายดายในโปรแกรมหลัก ไฟ LED ในตัวจะกะพริบหากมีการกดปุ่มตามความคิดเห็นของผู้ใช้ การดำเนินการนี้ค่อนข้างเร็วและการรอดีบักซ์ 0.2 วินาทีจะใช้เฉพาะเมื่อกดปุ่มเท่านั้น

ขั้นตอนที่ 4: Getvalue (ตัวเลข)

Getvalue(ตัวเลข)
Getvalue(ตัวเลข)

รูทีนนี้ให้ค่า n หลักจากปุ่มตัวเลข มันละเว้นปุ่มสีแดง

โค้ด Python นี้สามารถแปลงให้ทำงานบนอุปกรณ์อื่นได้อย่างง่ายดาย เช่น Raspberry Pi คุณอาจจำเป็นต้องเปลี่ยนบรรทัดการตั้งค่าพินที่ด้านบนของสคริปต์เท่านั้น

โปรดแจ้งให้เราทราบหากคุณพบว่ารหัสมีประโยชน์

อยู่อย่างปลอดภัยและสนุก!

แนะนำ: