microbit读取矩阵键盘

micro:bit编程、教学、展示
STEM
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

microbit读取矩阵键盘

#1

帖子 shaoziyang »

来自:http://www.suppertime.co.uk/blogmywiki/ ... -microbit/

图片

早在2018年,我便开始使用 microbits制作一个简单的袖珍计算器,自那以后一直困扰着我的是将数字键盘连接到microbit。不仅具有1个或2个额外的按钮,而且具有10个,12个甚至16个按钮,都可以使microbit计算器更容易使用。

BBC microbit只有3个主要的GPIO(通用输入输出)引脚用于连接到外部,这的确不够。如果使用扩展连接器,则可以访问更多的GPIO。

有些项目使用不同值的电阻器来减少所需的引脚数。如果将它们连接在一起但使用不同的电阻器,通过测量模拟输入电压确定按下了哪个按钮。

我采用了另一种方法:矩阵按键。尽管您可以买到便宜的矩阵键盘,但我碰巧有一个大袋子的小按钮,所以我决定使用面包板和一些电线来连接自己的矩阵。普通的计算器和计算机键盘使用矩阵来减少将物理按钮连接到计算系统所需的接线,因此,我从中学到了一些有关它们在底层工作的知识。每个按钮的左边以一列的形式连接在一起。然后,我将每个按钮的右边排成一排。现在看来,这需要大量的引脚,但是想象一下,如果您单独连接每个按钮,则需要4个3×4排列的按钮需要12个引脚。使用扫描矩阵意味着您仅需要7个引脚,每一行和每列一个:
 图片

您可以在此处查看 4×4矩阵的电路图,以更好地了解所需的布线类型。

 您必须小心选择microbit的引脚,因为某些引脚用于显示等其他功能。键盘只需要数字引脚,依次发送一行数字信号输出,然后使用数字输入对该行的每一列进行扫描,以查看是否按下了任何键。
 我为行选择了引脚0、1、2和8,为列选择了引脚16、13和14。引脚13和14也用于SPI接口,但是这里我不使用SPI,因此可以将它们用作GPIO引脚。我可能最终还需要一个4×4矩阵来添加操作键,但是这将需要一个更大的面包板。现在只是作为概念证明,而不是真正作品。
 为了验证概念,我编写了一个简单的MakeCode程序,依次在每一行上发送数字写信号,如果在任何列上输入了信号,则将相应的显示屏上的符号。
注意事项:速度很慢。您必须按住每个按钮相当长的时间。部分原因是MakeCode的“ forever”块会在程序中引入少量延迟。您可以通过在无限循环块内的放置一个“ while true”块来解决此问题,但是小延迟的另一个好处是,您可以看到在模拟器中观察扫描过程:

图片

  

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: microbit读取矩阵键盘

#2

帖子 shaoziyang »


回复

  • 随机主题
    回复总数
    阅读次数
    最新文章