51+TA8435h驱动步进电机经过光耦后出现的问题

51+TA8435h驱动步进电机时候总遇到问题。

单片机能正常输出信号,一连上后面光耦,直接把电平拉低了,经过一番了解,才知道原来是用51单片机的拉电流来驱动不了光耦,难怪频频出现问题。


在不改变原有已经焊好的电路的基础上做如上图修改就可以解决问题。(由于部分原因我也没试试)
当然也可以直接以灌电流(即光耦led负极接51IO口)来驱动光耦。但是需要修改后面的电路。

另外从网上找来类似这方面的讲解,供大家看看。

单片机的引脚,可以用程序来控制,输出高、低电平,这些可算是单片机的输出电压。但是程序控制不了单片机的输出电流。单片机的输出电流,很大程度上是取决于引脚上的外接器件。
单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载;单片机输出高电平时,则允许外部器件,从单片机的引脚拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”。

这些电流一般是多少?最大限度是多少?这就是常见的单片机输出驱动能力的问题。每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为 10 mA;每个 8 位的接口(P1、P2 以及 P3),允许向引脚灌入的总电流最大为 15 mA,而 P0 的能力强一些,允许向引脚灌入的最大总电流为 26 mA;全部的四个接口所允许的灌电流之和,最大为 71 mA。而当这些引脚“输出高电平”的时候,单片机的“拉电流”能力呢?可以说是太差了,竟然不到 1 mA。

结论就是:单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,输出电流的能力很弱(这也是驱数码管时最好接上拉电阻)。
      下面我们分析一下拉电流负载和灌电流负载的区别:
       图左是灌电流负载。单片机输出低电平时,LED亮,;输出高电平的时候,那就什么电流都没有,此时就不产生额外的耗电。
       图右是拉电流负载。单片机输出低电平的时候,LED不亮,此时VCC通过R2把电流全部灌进单片机IO口,并且电流时5ma,单片机输出高电平的时候,VCC通过R2将电流注入到LED中,led亮。注意到了吗? LED 不发光的时候,上拉电阻给的电流全部灌入单片机的引脚了!如果在一个 8 位的接口,安装了 8 个 1K 的上拉电阻,当单片机都输出低电平的时候,就有 40mA 的电流灌入这个 8 位的接口!如果四个 8 位接口,都加上 1K 的上拉电阻,最大有可能出现 32 × 5 = 160mA 的电流,都流入到单片机中!这个数值已经超过了单片机手册上给出的上限。此时单片机就会出现工作不稳定的现象。而且这些电流,都是在负载处于无效的状态下出现的,它们都是完全没有用处的电流,只是产生发热、耗电大、电池消耗快...等后果。

综上所述,灌电流负载,是合理的;而“拉电流负载”和“上拉电阻”会产生很大的无效电流,并且功耗大。

那么,把上拉电阻加大些,可以吗? 
回答是:不行的,因为需要它为拉电流负载提供电流。对于 LED,如果加大电阻,将使电流过小,发光暗淡,就失去发光二极管的作用了。在图右,假如单片机输出的高电平时3V,此时R2两端的电压差为5V-3V=2V。经过R2的电流为I=2V/1000=2ma,这一部分电流将全部流入LED。如果加大电阻,上拉电阻提供的电流将会减小。上拉电阻的大小一般选择在1K-10K之间就行。

设计单片机的负载电路,应该采用“灌电流负载”的电路形式,以避免无谓的电流消耗
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值