关于电路设计中,按键与电阻的问题

一 、在电路图中常看到有些按键外加了电阻而有些没有外加电阻,有上拉有下拉,这些电阻起什么作用,如果不加会导致什么情况?

在电路图中,按键通常需要加电阻来确保稳定的工作状态和消除抖动。按键在电路中扮演着重要的输入角色,而电阻的加入则是为了提高电路的可靠性和性能。具体如下:

  1. 上拉电阻
    • 作用:上拉电阻将不确定的信号通过一个电阻钳位在高电平,同时起限流作用。当按键未按下时,通过上拉电阻将按键所在的GPIO口拉高到高电平状态,从而避免因浮空导致的电平不确定状态。
    • 选择:上拉电阻的选择要考虑电路承载的电流,一般在10KΩ左右。
    • 应用:适用于需要保持高电平状态的电路设计,如51单片机P0口外接按键电路,确保在按键未触发时为高电平。
  2. 下拉电阻
    • 作用:下拉电阻将不确定的信号通过一个电阻钳位在低电平。与上拉电阻类似,下拉电阻在按键未触发时将其所在的GPIO口拉低到低电平状态。
    • 选择:阻值一般与上拉电阻相似,根据具体电路要求进行调整。
    • 应用:适用于需要保持低电平状态的电路设计,较少单独使用,常与上拉电阻结合使用。
  3. 消抖电阻
    • 作用:按键在接触和断开瞬间会产生机械抖动,导致电平信号不稳定,并联电容可以起到硬件消抖的作用。
    • 选择:一般选择小容量的瓷片电容或电解电容,具体数值视实际需求而定。
    • 应用:广泛用于各种按键电路中,提高按键识别的准确性和稳定性(一般使用软件延时进行消抖,可以减小成本)。
  4. 综合设计
    • 矩阵键盘:使用I/O口的循环输出低电平,检测其他端口的状态来确定具体按键,每个按键都需通过上拉电阻保证未触发时的电平状态。
    • 高级扩展方案:如使用二极管和A/D转换器的按键扩展方案,同样需要加电阻以确保稳定的电平状态,虽然电路复杂但提高了资源利用率。
  5. 电路稳定性
    • 电源管理:通过上拉电阻确保在上电瞬间电路引脚电平是确定的,从而提高整个系统的稳定性。
    • 输出驱动能力:上拉电阻可以提高输出管脚的带载能力,尤其在输出高电平时。

总的来说,在电路图中按键添加电阻不仅是为了保证其正常工作,还能提高整体电路的稳定性和可靠性,这些设计考虑对于确保按键系统的稳定运行至关重要,也可以直接接I/O口,不用时将引脚设置为浮空状态,不过稳定性相对来说要低。

二、那应该怎么选择合适的电阻用于电路图的按键呢?

选择适合的电阻用于电路图中的按键,需要考虑多个因素,包括阻值、功率、封装、精度和温度范围等。具体如下:

  1. 阻值的选择:按键电路中通常使用上拉或下拉电阻来确保未触发时的稳定电平状态。常见的阻值有1KΩ、4.7KΩ和10KΩ。选择阻值时,需要根据单片机或处理器的GPIO口的输入阻抗和电流承受能力进行计算。例如,如果使用3.3V电源,一个10KΩ的上拉电阻可以提供约0.33mA的电流,这足以驱动大多数CMOS逻辑电路的输入。
  2. 功率的选择:电阻的功率容量影响其稳定性和耐用性。功率计算公式为P = I²R,其中I为通过电阻的电流,R为电阻值。假设最大电流为1mA,则对于10KΩ的电阻,功率消耗仅为1µW,因此一般选择1/8W或1/16W的电阻即可满足需求。在实际应用中,选择比计算结果高一倍的功率额定值可以提供额外的安全余量。
  3. 封装的选择:不同的封装对应不同的功率容量和物理尺寸。常见的贴片封装如0402(1/16W)、0603(1/10W)和0805(1/8W)。根据电路板的设计和实际需求选择合适的封装,确保电阻能够可靠地焊接在PCB板上,并具备一定的机械强度。
  4. 精度的选择: 精度影响电路的可靠性和重复性。上拉和下拉电阻一般不需要极高的精度,5%的精度已足够满足大多数应用需求。然而,在一些关键应用中,如模拟信号处理或高精度ADC电路中,可能需要1%或更高精度的电阻,以确保系统的准确度和稳定性。
  5. 温度的选择: 根据实际应用场景的温度范围选择适合的电阻类型。例如,一些汽车级应用需要在-40℃到125℃范围内工作,这时应选择具有高温度稳定性的电阻。
  6. 耐压的选择:虽然大多数按键电路是低压应用,但如果在特殊环境下工作,比如接近高压线路,则需要选择耐高压的电阻型号,以防止因电压突增导致的电阻损坏。

所以选择适合的电阻用于电路图中的按键需要综合考虑多个参数,包括阻值、功率、封装、精度、温度和耐压等。这些因素共同决定了电阻在特定电路中的表现和可靠性。通过合理选择电阻,可以确保按键电路的稳定性和长期可靠运行。一般在工作电压为3.3V下,使用10k上拉电阻(个人习惯)。

三、除了电阻在设计按键电路时还有哪些元件?

按键电路设计中除了基础的按键和电阻之外,还可能包括电容、编码器、译码器、二极管、ADC和微控制器等多种元件,具体如下:

  1. 电容
    • 在按键电路中,电容通常与按键并联或串联,用于滤除按键动作产生的高频噪声,从而减少误触发。
    • 这种配置可以显著改善按键的性能,尤其是在噪声环境中。
  2. 编码器
    • 当需要同时处理多个按键输入时,编码器可以有效地减少所需的I/O口数量,并提供中断触发信号。例如,74HC148编码器可以将8个按键的状态编码为3位输出,同时通过GS引脚提供中断信号。
    • 编码器的存在极大地优化了多按键系统的设计和响应速度。
  3. 译码器
    • 译码器在按键电路中的应用主要是为了进一步减少I/O口的需求,并实现按键的扫描功能。
    • 例如,使用74HC138译码器配合单片机,可以通过循环扫描的方式识别多个按键的状态,从而有效节约I/O资源。
  4. 二极管
    • 二极管在按键电路中主要用于防止电流倒灌,以及实现不同按键间的隔离。
    • 利用二极管的单向导电性,可以设计出复杂的按键网络,从而实现用较少的I/O口控制更多的按键。
  5. ADC
    • 在一些引脚资源紧张的应用中,可以使用ADC(模数转换器)来实现按键功能,尤其适用于需要检测大量按键同时按下的情况。
    • 通过测量不同按键导致的电压变化,ADC可以准确地识别出被按下的按键,而不需要为每个按键分配一个专用的I/O口。
  6. 微控制器
    • 微控制器是整个按键电路的大脑,负责读取按键状态、执行消抖算法以及处理按键事件。
    • 通过编程,微控制器可以实现复杂的按键处理逻辑,如长按、双击、连击等,极大丰富了按键的功能。

综上所述,按键电路设计中不仅仅是简单地连接按键和电阻,还涉及到多种电子元件和设计理念的综合应用。这些元件各司其职,共同确保了按键电路的稳定工作和多样化功能。在设计过程中,选择合适的元件并充分利用它们的特性,可以有效提升电路的性能和用户体验。

四、那么问题来了,矩阵按键需不需要外加电阻?

矩阵键盘不一定需要外加电阻,但在某些情况下可能需要使用电阻来提高电路的性能或满足特定的设计要求。具体如下:

  1. 内置上拉电阻的使用
    • 许多微控制器(MCU)的I/O口都内置了上拉电阻,这些内置的上拉电阻通常可以满足矩阵键盘的设计需求。当使用内置上拉电阻时,通常不需要额外添加外部上拉电阻。
    • 内置上拉电阻的值通常是固定的,如果内置的值能够满足电路设计的要求,那么就无需外加电阻。
  2. 电流和功耗的考虑
    • 在设计矩阵键盘时,需要考虑电流和功耗。如果内置上拉电阻导致电流过大或功耗过高,可能需要使用外部电阻来降低电流和功耗。
    • 外部上拉电阻可以选择更大的阻值,从而减少电流的消耗,同时保持电路的功能。
  3. 信号稳定性和抗干扰能力
    • 如果电路工作环境中存在较大的电磁干扰,可能需要使用外部电阻来提高信号的稳定性和抗干扰能力。
    • 外部电阻可以提供更强的信号驱动能力,确保信号在传输过程中不受干扰。
  4. 按键去抖动
    • 矩阵键盘中的按键在操作过程中可能会产生抖动,使用电容可以去抖动,而电阻可以与电容配合使用,形成RC滤波网络,进一步稳定信号。
    • 在某些情况下,为了提高去抖动效果,可能需要添加额外的电阻和电容。
  5. 保护元件
    • 在矩阵键盘的设计中,为了防止静电或其他高电压损坏微控制器的引脚,有时会在键盘的行和列线上加入限流电阻或分压电阻来保护MCU引脚。
    • 这些电阻可以起到简单的电压保护作用,避免高压直接进入MCU引脚。
  6. 电路设计的灵活性
    • 在某些特殊的应用中,可能需要通过外部电阻来实现特定的电路功能,如调整信号的上升时间、下降时间等。
    • 外部电阻的加入可以增加电路设计的灵活性,使得设计者能够根据实际需求调整电路的行为。

总结一下,是否加电阻取决于你想要实现的设计要求,按键是否需要外加电阻取决于多种因素,包括微控制器的内置上拉电阻是否足够、电流和功耗的考虑、信号稳定性和抗干扰能力的需求、按键去抖动的需要、保护元件的使用以及电路设计的灵活性。应根据具体的应用场景和设计要求来决定是否需要外加电阻。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

评判卓越架构设计师的关键指标

目录 1. 技术能力 1.1 深厚的技术基础 1.2 架构设计模式 1.3 性能优化和扩展能力 2. 软技能 2.1 沟通能力 2.2 领导能力 2.3 解决问题的能力 3. 实践经验 3.1 项目经验 3.2 持续学习 3.3 失败教训 4. 对业务的理解 4.1 深入理解业务需求 4.2 与产品团队紧密合作…

防火墙双机热备带宽管理综合实验

一、实验拓扑 二、实验要求 12,对现有网络进行改造升级,将当个防火墙组网改成双机热备的组网形式,做负载分担模式,游客区和DMZ区走FW3,生产区和办公区的流量走FW1 13,办公区上网用户限制流量不超过100M&am…

技术速递|Let’s Learn .NET Aspire – 开始您的云原生之旅!

作者:James Montemagno 排版:Alan Wang Let’s Learn .NET 是我们全球性的直播学习活动。在过去 3 年里,来自世界各地的开发人员与团队成员一起学习最新的 .NET 技术,并参加现场研讨会学习如何使用它!最重要的是&#…

Java IO中的 InputStreamReader 和 OutputStreamWriter

Java IO 的流,有三个分类的维度: 输入流 or 输出流节点流 or 处理流字节流 or 字符流 在Java IO库中,InputStreamReader和OutputStreamWriter是两个非常重要的类,它们作为字符流和字节流之间的桥梁。 这两个类使得开发者可以方…

整数或小数点后补0操作

效果展示: 整数情况: 小数情况: 小编这里是以微信小程序举例,代码通用可兼容vue等。 1.在utils文件下创建工具util.js文本 util.js页面: // 格式…

淘宝扭蛋机小程序:旋转惊喜,开启购物新篇章!

在追求创新与惊喜的购物时代,淘宝再次引领潮流,精心打造——淘宝扭蛋机小程序,为您的购物之旅增添一抹不同寻常的色彩。这不仅仅是一个购物工具,更是一个充满趣味、互动与惊喜的宝藏盒子,等待您来探索与发现。 【旋转…

通过Dockerfile构建镜像

案例一: 使用Dockerfile构建tomcat镜像 cd /opt mkdir tomcat cd tomcat/ 上传tomcat所需的依赖包 使用tar xf 解压三个压缩包vim Dockerfile FROM centos:7 LABEL function"tomcat image" author"tc" createtime"2024-07-16"ADD j…

【 香橙派 AIpro评测】烧系统运行部署LLMS大模型跑开源yolov5物体检测并体验Jupyter Lab AI 应用样例(新手入门)

文章目录 一、引言⭐1.1下载镜像烧系统⭐1.2开发板初始化系统配置远程登陆💖 远程ssh💖查看ubuntu桌面💖 远程向日葵 二、部署LLMS大模型&yolov5物体检测⭐2.1 快速启动LLMS大模型💖拉取代码💖下载mode数据&#x…

第九课:服务器发布(静态nat配置)

一个要用到静态NAT的场景,当内网有一台服务器server1,假如一个用户在外网,从外网访问内网怎么访问呢,无法访问,这是因为外网没办法直接访问内网,这时候需要给服务器做一个静态NAT。 静态NAT指的是给服务器…

gltf模型加载 与3d背景贴图

Poly Haveny 用于3d模型跟贴图下载资源 Sketchfab 里面有免费的模型 模型放到public里面 const loader new GLTFLoader()// 加载GLTF模型loader.load(/scene.gltf,(gltf) > {// 将加载的模型添加到场景中scene.add(gltf.scene)// 现在你可以开始渲染循环了let angle …

深度学习落地实战:基于UNet实现血管瘤超声图像分割

前言 大家好,我是机长 本专栏将持续收集整理市场上深度学习的相关项目,旨在为准备从事深度学习工作或相关科研活动的伙伴,储备、提升更多的实际开发经验,每个项目实例都可作为实际开发项目写入简历,且都附带完整的代…

minimap2安装与使用(v 2.28)生物信息学工具26

01 背景 Minimap2 是一个多功能的序列比对程序,可以将 DNA 或 mRNA 序列与大型参考数据库进行比对。典型的使用案例包括:(1)将 PacBio 或 Oxford Nanopore 基因组读长映射到人类基因组;(2)在误…

类和对象(补充)

1.static成员 1>静态成员变量在类外进行初始化 2>静态成员变量为所有类对象所共享,不属于任何具体对象,存放在静态区中 3>静态成员函数没有this指针,可访问其他静态成员,但不可访问非静态的 4>非静态成员函数可以…

jmeter做接口压力测试_jmeter接口性能测试

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免…

SQL Server 使用 OPTION (RECOMPILE) 和查询存储的查询

设置 我们正在使用 WideWorldImporters 数据库,您可以从 Github 下载【sql-server-samples/samples/databases/wide-world-importers at master microsoft/sql-server-samples GitHub】。我正在运行SQL Server 2017 的最新 CU【https://sqlserverbuilds.b…

[Vulnhub] digitalworld.local-JOY snmp+ProFTPD权限提升

信息收集 IP AddressOpening Ports192.168.101.150TCP:21,22,25,80,110,139,143,445,465,587,993,995 $ nmap -p- 192.168.101.150 --21,22,25,min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD | ftp-anon: Anonymous FTP logi…

基于Java中的SSM框架实现求职招聘网站系统项目【项目源码】

基于Java中的SSM框架实现线求职招聘网站系统演示 研究方法 本文的研究方法主要有: (1)调查法 调查法就是在系统的构思阶段,设计者对系统的功能和系统的现状有些不了解,需要去实地的去和本系统相关的区域进行调查&am…

函数的形状怎么定义?

在TypeScript中,函数的形状可以通过多种方式定义,以下是几种主要的方法: 1、函数声明:使用function关键字声明函数,并直接在函数名后的括号内定义参数,通过冒号(:)指定参数的类型&a…

Mojo AI编程语言(六)异常处理:提升代码健壮性

目录 1. 概述 2. 异常处理的基本概念 2.1 什么是异常 2.2 异常处理的重要性 3. Mojo语言中的异常处理机制 3.1 异常的定义 3.2 抛出异常 3.3 捕获异常 4. 异常处理的详细实现 4.1 多重异常捕获 4.2 异常链 4.3 使用自定义异常 4.4 异常的嵌套捕获 4.5 使用 asser…

数据结构——单链表详解(超详细)(2)

前言: 上一篇文章小编简单的介绍了单链表的概念和一些函数的实现,不过为了保证文章的简洁,小编把它分成了两篇来写,这一篇小编紧接上一篇文章继续写单链表函数功能的实现: 目录: 1.单链表剩余函数的编写 1.…