带有2个LED灯和一个开关的GPIO

出处:网络整理 发布于:2026-10-08 17:19:04 | 28 次阅读

  使用PIC制作一个控制器(带按钮),通过同步串行通信作为客户端接口。在设计GPIO引脚的指示灯时遇到了困难。
  由于PIC CPU大部分时间都处于空闲状态,计划是使用中断来处理新按钮的按下,而不是轮询。一旦按钮被注册为按下状态,PIC就可以按照与串行主机轮询速率一致的速率对其进行轮询。
  手柄有三种操作模式,每个按钮可以单独分配。每个按钮只能有1个GPIO引脚。每个按钮需要两个LED灯。
  在模式1中,按下按钮时LED必须亮起。
  在模式2中,模式1的LED必须通过PIC切换。它可以切换为高电平或低电平(即按键电流为2毫安,开关可以使LED电流为0毫安或20毫安)。关键是控制器需要在按下按钮时显示自己正在做某件事。)
  第二个LED用于模式3,必须仅通过PIC切换。当模式3 LED亮起时,模式1的LED必须关闭。如果模式3能完全关闭模式1的LED灯,那将是理想的(也就是说,模式3按下的按钮理想情况下点亮0个LED,但这里可以妥协)。
  以下表格总结如下:
  switch openswitch closed
  Mode 1XLED 1
  Mode 2XLED 1 and X (or LED 1')
  Mode 3LED 2LED 2 and X (or LED 1 or LED 1')
  PIC是16F18145。
  LED灯是ZMYKVG45WT-9。
  值得注意的是,PIC 16F18145允许读取引脚状态,无论其为输入还是输出。推拉、开放排水和弱引体向上可以分配给单个瓶子。
  每个按钮大约是10mA。理想情况下,这应该用来点亮LED灯。
  给几个无源电路(除了LED外)做过电磁化,要么工作不完全,要么电流过大。下面是能想到的最接近的描述。右侧的接地和5伏开关代表PIC。
   如上所述,不需要按钮直接控制LED灯。按钮只需告诉PIC它被按下了,按下后不干扰LED灯。
  可以使用一种称为查理复用的方法。 但确实需要持续刷新,才能营造出六个LED独立控制的错觉。
  示意图

  模拟该电路——使用 CircuitLab 创建的示意图

  每个GPIO引脚可以处于四种状态之一:高阻段、拉高(MCU内部上拉约25 kΩ或更高)、高驱动、低驱动。
  这样总共得到4个3 = 64个状态,其中大多数都有实际作用:
  所有高阻数电路均处于空闲状态
  一个拉高,另一个高Z:测试开关是开还是闭
  一个高驱动,其他的则是高阻区驱动或低驱动:点亮一两个LED灯
  注意通过LED存在开关间的串扰问题。例如,如果你拉高GPIO0来测试SW1,但SW2闭合,D1会有电流。LED的正向压降足以区分这些状态,但也可能不行。 需要一些测试。
  省略了二极管,并更换了一些电阻。
  模拟该电路——使用 CircuitLab 创建的示意图
  要读取按钮,将GPIO调到弱上拉模式,电压会降到大约3.8V,这应该足以被视为高电压,或者按钮按压低于1V时,这才是有效的低电压。
  LED灯在切换GPIO模式后会发光,所以读取速度会比较快。
0次

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站客服电话

0571-85317606

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!