【模块介绍】6×6矩阵键盘(硬件部分和扫描方式)

目录

概述

原理图

扫描方式

扫描法

单个按键按下

多个按键按下

行反转法

图解

成品


概述

矩阵键盘非常常见

就是利用键盘组成矩阵来减少IO口的使用

做成6×6的矩阵键盘可以使用12个IO口读取36个按键

矩阵键盘的优势在于成本低,无需其他芯片即可实现功能

原理图

这是我所制作的原理图

扫描方式

常见的扫描方式有2种,此原理图的方案这两种方法均可使用

扫描法

扫描法就是间隔一段时间给不同的控制线通低电平(默认不触发状态是高电平)之后读取接收线的电平高低,如果是低电平(接上拉避免误触,默认高电平)则认为这根控制线和接收线对应的按键被按下

单个按键按下

假设某一时刻,红色线为低电平,其余控制线为高电平,蓝色按键被按下,则只有黄色的接收线为低电平

如果某个时刻,如下图红色的为低电平,其余控制线为高电平,因为没有其他按键按下,因此只有蓝色按键被按下,所有没有线为低电平

以此类推,每隔一段时间改变控制线电压,即可找到按下的按键,

即哪个控制线通低电平,读取接收线,为低电平的是被按下的

多个按键按下

使用扫描法可以识别多个按键按下的情况,但并不是所有的情况均能识别出,这是原理的限制

显而易见,整行或整列的任意几个按键按下均可被识别出来

这行任意按下,均可再分时状态识别出来,即每个不同控制线的通低电平可以读取到读取线的低电平

 这列被按下时,这列的控制线通低电平时,按下按键的读取线为低电平

 “L”型按下则会出现误触

像这三个按键按下,因为这三个按键组成回路,使得不管控制线0或控制线1均会出现读取线的0和1为低电平

也就是会认为1,2,7,8这4个按键按下

以此类推,一般会再软件中禁止这些会发生误触的按键

这样子也会出现误触 

 其余情况不会发生误触且可以识别

行反转法

行反转法是一种比较高效的方法,大体的实现流程是

  1. 先给列(行)线通全部低电平,行(列)通高电平(开漏)
  2. 检测行(列)线电平,如果出现一个低电平则认为有按键被按下
  3. 读取行(列)线数值,保存下来
  4. 将列(行)通高电平,行(列)通低电平,读取列(行)的数值
  5. 这两个数值就代表这键盘按下的信息

可以做到和扫描法同样的多按键识别,同样L型会出现误触(硬件决定的)

图解

就像这样,每一个横线和竖线的交点为开关 👆

 我们先给列线通高电平,行线设为低电平👆

没有开关按下时,列线为高电平

 假设这个按键被按下,则L0线被拉到低电平,读取列线(0b110)👆

然后给行线通高电平, 列线通低电平,读取行线(0b110)👆

则这两个代码(3,3)则代表这个按键被按下

两个或多个按键被按下,只要是硬件原理是上能被区分的均可识别出来

成品

这是使用AD画的PCB,(在10cm×10cm以内)

链接百度网盘https://pan.baidu.com/s/1ya_UqaPhN4RAMhYENeg8Mw?pwd=aahh%C2%A0
提取码:aahh

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值