• 利用外围电路控制单片机的引脚电平


    利用外围电路控制单片机的引脚电平

      前几天帮一个朋友处理一些电路,正好解决了自己以前经常遇到的一个问题:传感器检测信号传送给单片机,如何改变单片机引脚电平信号,使之可在程序中直接读取,进而实现对外部环境的检测。

    以前的思路:

    (1)最初,我将检测信号直接传入控制器,由于外围电路的驱动能力不够,不足以拉高单片机的电平,一直都是失败的。
    (2)经过查找资料后,单片机的大部分引脚均可做I/O口,默认高电平,并且在做输入口时,必须先将该引脚设置为高电平。我用三极管做了个开关电路,由于当时只焊接了电路,没有画电路图,所以现在也忘记了是如何实现的,但是三极管的开关电路方面的资料有很多,有需要可自行查找。

    当下实现方案:使用继电器,实现开关

    (1)思路分析:
      法很简单,既然单片机的引脚默认高电平,接地后就能满足低电平了。那么,就用继电器开关控制引脚与地的连接,传感器的检测信号控制继电器的开关状态,间接控制单片机的引脚电平。
      其实,这也是继电器的小电流控制大电流的思想,与三极管的开关电路的思想基本一致,只是三极管的电阻电容需要选择合适大小,而继电器就没有什么需要太多考虑的了,可能需要考虑成本。

    (2)电路图及仿真分析:

    红色标记第一处为传感器检测信号输出口;
    第二处是NPN三极管,信号驱动三极管的基极,当第一处信号为高是,三极管导通,使第三处的继电器开关换向;
    当第三处开关换向后,第四处与单片机连接的引脚电平被拉低

    仿真效果图

    无检测信号时,单片机引脚P3.0为高电平

    当有检测信号时,单片机引脚P3.0为地点低电平

  • 相关阅读:
    在CentOS7上部署OpenStack 步骤详解
    Linux运维工程师工作手册
    Nginx+Keepalived实现Web服务器负载均衡
    Django Nginx+uwsgi 安装配置
    Docker-搭建Docker Registry
    centos7系统默认防火墙Firewall使用方法
    Shell脚本编写及常见面试题(二)
    Shell脚本编写及常见面试题(一)
    Linux之解决每次git pull/git push都需输入密码设置
    基于thinkphp5的Excel上传
  • 原文地址:https://www.cnblogs.com/HZL2017/p/6822279.html
Copyright © 2020-2023  润新知