我用STC
单片机驱动一个12v的继电器,
电路如图:
1、没加4.7K上拉电阻,和104瓷片电容时:当我按动控制继电器吸合的按钮,并且用手摸着信号端(单片机I/O口)时,继电器不吸合!
2、加上4.7K上拉电阻,和104瓷片电容时:用手按着单片机控制端,也能正常工作了,不受点触摸的干扰影响了。可是每上电的时候,继电器就会自动吸 合一次。不知道什么原因,我把104拆掉,直接接上拉电阻,上电的时候也会吸合。当我把上拉电阻拆掉留下104时,按键又没反应了(这个我理解的是,我给个高电平信号,时间很短暂,高电平直接被104吸收掉了,当做了干扰)。
------------单片机过来是高电平有效,程序开始就给JDQ端口置0了!
整个过程产生的问题原因是什么呢?
STC单片机IO口在默认情况下是标准弱上拉准双向口,高电平驱动能力只有几十微安,很明显这样的高电平再通过你的一个10K三极管基极电阻后是完全不能使三极管处于导通状态的,即不能驱动继电器。这就是你的第一种情况继电器不吸合的原因。
加了上拉电阻后,明显增强了IO口输出1的驱动能力,所以此时输出1时电流已经可以使三极管导通,所以继电器会吸合。这与有没有接104电容影响不大。该电容完全可以去掉。另外,增强型STC单片机可以通过设置IO为推挽模式输出来增强其输出能力,这样就可以不用接上拉电阻了。
最后,为什么明明上电后程序将输出置0继电器还是会动作呢?这是你忽略了STC单片机在上电后并不是马上执行用户程序,而是会有几十ms时间在执行ISP下载检测程序【这就会为什么下载程序需要断电再上电的原因】,在这个过程中,IO脚是输出高电平的,因此继电器会吸合,直到执行用户程序。解决方法应该就很清楚了,不要使用高电平驱动的电路,改为低电平驱动的电路即可。个人觉得你的驱动电路实在太繁琐,其实改为低电平控制后直接一个光耦就可以了,什么三极管都不用。
一周热门 更多>