Mundarija:

CircuitPython bilan 4x4 klaviaturadan foydalanish: 4 qadam
CircuitPython bilan 4x4 klaviaturadan foydalanish: 4 qadam

Video: CircuitPython bilan 4x4 klaviaturadan foydalanish: 4 qadam

Video: CircuitPython bilan 4x4 klaviaturadan foydalanish: 4 qadam
Video: CALM Coding #3 - Python, CircuitPython et gestion des librairies 2024, Noyabr
Anonim
CircuitPython bilan 4x4 klaviaturadan foydalanish
CircuitPython bilan 4x4 klaviaturadan foydalanish

Bu arzon klaviatura sizning CircuitPython loyihalaringizga raqamli kiritishning oddiy usulini taklif qiladi. Men uni Adafruit ItsyBitsy M0 ekspresida ishlataman.

Sizga kerak bo'ladi:

  • Klaviatura - meniki 4x4
  • ItsyBitsy M0 Express yoki shunga o'xshash karta
  • Mu muharriri kompyuteringizga o'rnatilgan
  • Kodni o'chirish uchun USB kabeli

1 -qadam: Klaviatura qanday ishlaydi

Klaviatura qanday ishlaydi
Klaviatura qanday ishlaydi

Ularning klaviaturasida 16 ta oddiy, sekin ishlaydigan ko'pikli kalitlar mavjud, ular pastki qismida 8 ta ulanishga ega 4 ta tarmoqli. Agar biz chapdan 0 dan 7 gacha raqam olsak, 0 dan 3 gacha bo'lgan ulanishlar har bir satrga ulangan. Yuqori qatorga 0 ulanish va pastki qatorga 3 ulanish. 4 -dan 7 -gacha bo'lgan ulanishlar chap ustunda 4 -ulanishli ustunlarga va 7 -ulanish o'ng ustunga ulanadi. 16 ta kalitning har biri boshqa satr/ustun kombinatsiyasini birlashtiradi. Agar biz 7 tugmachasini bossak, uchinchi qator chap ustunga ulanadi. Agar biz 5 -tugma bosilsa, uning qatori YUQORI ko'tarilsa va ustunida "HIGH" ni o'qiy olsak, biz sezishimiz mumkin. Buning uchun biz qatorlarga OUTPUT va ustunlardan INPUT kiritamiz.

Biz har bir qatorni o'z navbatida YUQORI qilib belgilashimiz kerak, boshqa qatorlar LOW bo'lsa, biz yuqori kirishni olmagunimizcha har bir ustunni navbat bilan o'qing. Buni looplar uchun ichki qism bilan boshqarish oson.

Shuni hisobga olish kerakki, bu pufakchali kalitlar juda sekin harakat qiladi va ularni yopish uchun qattiq bosish kerak. Shunday qilib, barcha 16 ta kalitni skanerlash juda tez amalga oshirilishi mumkin, lekin biz tugmani bosish uchun qayta -qayta skanerlashimiz kerak. Biz har safar bosganimizda kalitlar takrorlanmasligi uchun qisqa vaqtga kechikish bilan "chiqish" kerak.

O'chirish tugmachalari juda zerikarli bo'lgani uchun, biz tugmachani o'qilganligini ko'rsatish uchun foydalanuvchiga bir oz fikr bildirishimiz kerak. Har safar tugma bosilganda ichki LED yonadi.

2 -qadam: jismoniy aloqa

Jismoniy ulanishlar
Jismoniy ulanishlar

KeyPad -da ulanishlar chapdan o'ngga 0 1 2 3 4 5 6 7

ItsyBitsy -da D7 D9 D10 D11 A5 A4 A3 A2

D7 dan D11 gacha OUTPUT, A5 dan A2 gacha esa PULLDOWN bilan Kirish sifatida o'rnatiladi.

Kod juda ko'p izohlarga ega va ularga amal qilish juda oson bo'lishi kerak.

3 -qadam: Getkey () qanday ishlaydi

Getkey () qanday ishlaydi
Getkey () qanday ishlaydi

Bu funksiya klaviaturani bir marta bosish uchun tekshiradi. U har bir tugmachani o'z navbatida maksimal 10 marta tezlik bilan tekshiradi va kalit tugmasi yopilganligini tekshiradi. Agar tugma bosilsa, u yuqoridan pastgacha chapdan o'ngga sanab, kalit qiymatini qaytaradi (0… 15) Pastki qator qiymatlariga e'tibor bering: 14, 0, 15, 13 (Hex E, 0, F, D). Agar biror tugma bosilmagan bo'lsa, u -999 ni xato kodi sifatida qaytaradi, uni asosiy dasturda osongina olish mumkin. Agar foydalanuvchining fikr-mulohazasi sifatida tugmachani bosilsa, o'rnatilgan LED yonadi. Bu juda tez ishlaydi va sakrashni 0,2 soniya kutish faqat tugma bosilganda ishlatiladi.

4 -qadam: qiymat (raqamlar)

Qiymat (raqamlar)
Qiymat (raqamlar)

Bu tartib raqamli tugmalardan n raqamli qiymatni beradi. U qizil tugmachalarga e'tibor bermaydi.

Bu Python kodini Raspberry Pi kabi boshqa qurilmada ishlashga osonlik bilan aylantirish mumkin, ehtimol siz faqat skriptning yuqori qismidagi pin o'rnatish liniyalarini o'zgartirishingiz kerak bo'ladi.

Agar kodni foydali deb bilsangiz, menga xabar bering.

Xavfsiz bo'ling va dam oling!

Tavsiya: