当前位置: 首页 > news >正文

矩阵键盘中为什么有键位并联二极管?

矩阵键盘上使用二极管主要是为了解决“幽灵键”(Ghosting)和“键盘冲突”(Key Jamming)问题,这两种现象在没有采取适当措施的矩阵键盘中很常见。

幽灵键现象

当用户在矩阵键盘上同时按下多个键时,由于电流的路径问题,可能会在没有被按下的键上检测到错误的按键动作,这就是所谓的“幽灵键”现象。这是因为在矩阵键盘中,所有的键都是通过行和列的线路矩阵连接的,当多个键同时按下时,电流的路径可以通过这些按下的键创建未预期的连接路径,导致未按下的键被错误识别为按下状态。

键盘冲突问题

键盘冲突是指在同时按下多个键时,由于电路设计的限制,一些按键组合可能无法被正确识别,或者阻止其他按键被识别。这主要是因为当多个键同时按下时,它们共享相同的行和列线路,这可能导致键盘无法区分哪些键实际上被按下。

二极管的作用

在每个键上加装一个二极管可以有效解决这两个问题。二极管是一种允许电流只能单向流动的元件。通过在每个键的接点上并联一个二极管,可以确保电流仅在正确的方向上流动,从而:

消除幽灵键:二极管阻止了可能产生幽灵键现象的错误电流路径,即使在多键同时按下的情况下,也只有真正被按下的键会被检测到。

避免键盘冲突:二极管确保即使在多个键同时按下时,每个键的信号也能被独立识别,避免了键盘冲突问题。

为了彻底解决幽灵键(Ghosting)和键盘冲突(Key Jamming)问题,最佳的做法是在矩阵键盘的每个按键上都并联一个二极管。通过这种方式,每个按键都能独立于其他按键,确保当多个按键同时被按下时,每个按键的状态都能被准确无误地检测到。

然而,值得注意的是,并联二极管也带来了成本和空间的考虑。每增加一个二极管,都会相应增加成本和PCB(印刷电路板)的复杂度。此外,对于非常紧凑的设备,增加的二极管可能也会对设计布局造成挑战。因此,在设计矩阵键盘时,需要综合考虑性能、成本和空间等多个因素。

软件方面:
通过反转法而不是逐行扫描法,进行键位扫描,可以在软件层面改善幽灵键问题。

相关文章:

  • Python光速入门 - Flask轻量级框架
  • Kafka 设计之消息传递保障
  • Web开发介绍,制作小网站流程和需要的技术【详解】
  • 影响哈默纳科Harmonic减速机使用寿命的5大因素
  • 【手游联运平台搭建】游戏平台的作用
  • 外贸常用的出口认证 | 全球外贸数据服务平台 | 箱讯科技
  • 【center-loss 中心损失函数】 参数与应用
  • 最佳牛围栏(二分 + 前缀和)
  • 视频编码中常用的测试YUV系列及说明
  • 【信息系统项目管理师】--【信息技术发展】--【新一代信息技术及应用】--【虚拟现实】
  • ubuntu20.04安装ros并配置相关环境以及驱动AUBO i5机械臂
  • 线程的使用
  • (C语言)二分查找 超详细
  • 51-27 DirveVLM:自动驾驶与大型视觉语言模型的融合
  • nodejs安装教程(及过程中的易错)
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 2017届校招提前批面试回顾
  • Android 架构优化~MVP 架构改造
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • es6
  • ES6 学习笔记(一)let,const和解构赋值
  • golang 发送GET和POST示例
  • gulp 教程
  • java 多线程基础, 我觉得还是有必要看看的
  • Javascript设计模式学习之Observer(观察者)模式
  • js
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • nfs客户端进程变D,延伸linux的lock
  • Node + FFmpeg 实现Canvas动画导出视频
  • nodejs:开发并发布一个nodejs包
  • PaddlePaddle-GitHub的正确打开姿势
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Tornado学习笔记(1)
  • 订阅Forge Viewer所有的事件
  • 飞驰在Mesos的涡轮引擎上
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 码农张的Bug人生 - 初来乍到
  • 思考 CSS 架构
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 消息队列系列二(IOT中消息队列的应用)
  • 小而合理的前端理论:rscss和rsjs
  • 正则学习笔记
  • 智能网联汽车信息安全
  • const的用法,特别是用在函数前面与后面的区别
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Linux(make工具和makefile文件以及makefile语法)
  • #NOIP 2014# day.1 T2 联合权值
  • #宝哥教你#查看jquery绑定的事件函数
  • (C语言)共用体union的用法举例
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (十)c52学习之旅-定时器实验
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转) ns2/nam与nam实现相关的文件