rxjsn 发表于 2024-7-8 15:34

对于用单片机驱动光耦,从而驱动继电器有一些疑惑

<p>在参考设计继电器模块时,遇到了问题,单片机是STM32F407,想用I/O口控制光耦(本人主要负责硬件方向,对于单片机开发了解不多)</p>

<p>首先是,据队友描述,单片机最大可承受电压是3.3V,但是驱动光耦用电压5V,在嘉立创找参考时,发现如下设计</p>

<p> &nbsp;</p>

<p>描述是5-7.5V电源,IN接单片机I/O,查阅发光二极管和光耦压降,好像是1V左右,那么如果使用超过5.3V的电源,难道不会烧毁单片机吗,查找资料时,又发现说是可以据单片机情况直接驱动,但是要求电流足够大;</p>

<p>其次,在驱动三极管(本人使用的是s9013)的部分,三极管发射极与电源连了一个二极管续流保护,找到的参考中有用1N4148,也有用SS34,还有用1N4007的。这三种二极管在5V驱动songle继电器应该优先选择哪一种?</p>

<p>肖特基二极管和开关二极管,查阅资料好像都是可以用于续流二极管。</p>

<p>最后,有直接单片机驱动开关二极管控制继电器开关,也有加光耦隔离的,好像是光耦隔离可以避免干扰,防止三极管导通使继电器工作,更好一点,看到有些设计是再用一个三极管驱动光耦,那如果三极管又受到干扰,那光耦不久没什么意义了吗?</p>

tagetage 发表于 2024-7-8 17:11

<p>单片机是STM32F407,想用I/O口控制光耦(本人主要负责硬件方向,对于单片机开发了解不多-----------</p>

<p>硬件小白,你需要学的东西太多了。。</p>

beyond_笑谈 发表于 2024-7-8 17:43

<p>同楼上,其实楼主要了解的知识点都是属于硬件攻城狮范畴,先了解一下用到的各分立元器件的特性参数</p>

maychang 发表于 2024-7-8 17:45

<p>【据队友描述,单片机最大可承受电压是3.3V,但是驱动光耦用电压5V,在嘉立创找参考时,发现如下设计】</p>

<p>应该说&ldquo;单片机电源电压为3.3V&rdquo;,而不是&ldquo;单片机最大可承受电压是3.3V&rdquo;。</p>

<p>电源电压3.3V,单片机可以驱动光耦,但单片机需要能够输出够光耦使用的电流,其次首帖图中的R1R3数值要修改。</p>

maychang 发表于 2024-7-8 17:48

<p>【这三种二极管在5V驱动songle继电器应该优先选择哪一种?】</p>

<p>使用何种型号二极管,要看继电器通过多大电流。如果继电器绕组电流电压都很小,那么这三种型号都可以用。</p>

maychang 发表于 2024-7-8 17:50

<p>【最后,有直接单片机驱动开关二极管控制继电器开关】</p>

<p>单片机驱动开关二极管控制继电器?前所未闻。</p>

maychang 发表于 2024-7-8 17:51

<div class='shownolgin' data-isdigest='no'><p>【看到有些设计是再用一个三极管驱动光耦,那如果三极管又受到干扰,那光耦不久没什么意义了吗?】</p>

<p>楼主还没有弄清楚&ldquo;干扰&rdquo;是怎么回事。</p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

rxjsn 发表于 2024-7-8 20:14

<div class='shownolgin' data-isdigest='no'>maychang 发表于 2024-7-8 17:50
【最后,有直接单片机驱动开关二极管控制继电器开关】

单片机驱动开关二极管控制继电器?前所未闻。

<p>啊,这个是打错字了,是三极管作开关,用单片机驱动,不是二极管</p>
</div><script>showreplylogin();</script>

rxjsn 发表于 2024-7-8 20:41

<div class='shownolgin' data-isdigest='no'><p>找到一个可以解决一个困惑的文章,<a href="https://news.eeworld.com.cn/mcu/ic522344.html">STM32的GPIO口能够承受多大电压? 哪些IO口能容忍5V?-电子工程世界 (eeworld.com.cn)</a></p>
</div><script>showreplylogin();</script>

damiaa 发表于 2024-7-9 09:18

<div class='shownolgin' data-isdigest='no'> 本帖最后由 damiaa 于 2024-7-9 09:20 编辑

<p>有点乱,感觉楼主担心很多,但又没明白。</p>

<p>其实驱动光耦就是要提供足够的电流和电压。具体可以参考光耦的资料。</p>

<p>所以led1 led2不是必须的。r1,r3作为限流可以用。驱动这个光耦一般加个三极管好些。因为光耦的电流都比较大,有些单片机IO驱动电流可能不够。这里可以加个npn的三极管比如8050,9013之类的扩大驱动电流,贴片的也可以。加了三极管后r1,r3的上端可以直接加5V没有问题。</p>
</div><script>showreplylogin();</script>

beyond_笑谈 发表于 2024-7-9 09:59

<div class='shownolgin' data-isdigest='no'>rxjsn 发表于 2024-7-8 20:14
啊,这个是打错字了,是三极管作开关,用单片机驱动,不是二极管

<p>采用单片机GPIO驱动NPN三极管,三极管驱动继电器初级线圈是常规用法,没啥问题</p>
</div><script>showreplylogin();</script>

lugl4313820 发表于 2024-7-10 04:32

<div class='shownolgin' data-isdigest='no'><p>单片机驱动能力,你得看一下单片机的数据手册,STM32F407,可以配置为推挽或者开漏输出,他们的驱动能力不一样。当然常规是需要接一下三极管,或者是MOS管也提高驱动能力的。</p>
</div><script>showreplylogin();</script>

lugl4313820 发表于 2024-7-10 04:35

<div class='shownolgin' data-isdigest='no'><p>我翻了一下资料,这里有一篇文章介绍非常详细<a href="https://www.cnblogs.com/armfly/p/13283372.html">【STM32F407开发板用户手册】第15章 STM32F407的GPIO基础知识(重要) - 硬汉嵌入式 - 博客园 (cnblogs.com)</a></p>
</div><script>showreplylogin();</script>

rxjsn 发表于 2024-7-10 11:32

<div class='shownolgin' data-isdigest='no'>lugl4313820 发表于 2024-7-10 04:35
我翻了一下资料,这里有一篇文章介绍非常详细【STM32F407开发板用户手册】第15章 STM32F407的GPIO基础知识 ...

<p>非常感谢,这段时间也在了解这方面知识,以前都只是了解运放和电源方面的知识,关于单片机的了解还是很有限,感谢分享</p>
</div><script>showreplylogin();</script>

rxjsn 发表于 2024-7-13 21:01

<div class='shownolgin' data-isdigest='no'>maychang 发表于 2024-7-8 17:51
【看到有些设计是再用一个三极管驱动光耦,那如果三极管又受到干扰,那光耦不久没什么意义了吗?】

楼主 ...

<p>目前学习了解来看,光耦是隔离电气作用,个人感觉好理解点,就是起到的是隔离两个不同地的效果,但这个也要求设计中有两个独立的电源,所以光耦隔离的是这两个独立电源可能的干扰。</p>
</div><script>showreplylogin();</script>

syb_8787 发表于 2024-7-14 14:07

<div class='shownolgin' data-isdigest='no'><p>感觉好厉害</p>

<p>&nbsp;</p>
</div><script>showreplylogin();</script>

chunyang 发表于 2024-7-17 19:35

<div class='shownolgin' data-isdigest='no'><p>MCU是3V供电,那么系统中必然有3V电源,那直接用3V电源驱动光耦即可,为何要用5V?非要用5V,最好的办法是用三极管做驱动元件,楼主图属于变通法,并无成本上的优势。</p>

<p>&nbsp;</p>
</div><script>showreplylogin();</script>

chunyang 发表于 2024-7-17 19:41

<div class='shownolgin' data-isdigest='no'><p>至于说的电压问题,光耦的驱动电压和MCU的工作电压显然不是一回事,楼主帖中的图有个问题,即Vcc的标注问题,系统中有多个电压时,标号应指明是哪个电源,比如Vcc5和Vcc3来加以区分。</p>

<p>那么3V系统非要用楼主帖中的电路以5V去驱动光耦是否安全呢?答案在于电流而非电压。MCU的IO通常都存在钳位二极管,只要钳位电流不超出钳位二极管的耐受电流就没事,即楼主帖中的限流电阻取值下限要注意。</p>
</div><script>showreplylogin();</script>

chunyang 发表于 2024-7-17 19:45

<div class='shownolgin' data-isdigest='no'><p>楼主的其它问题,鉴于楼主的提问过于混乱,显然缺乏相关的基础知识。建议楼主不妨分开发帖提问,组织语言时先想清楚如何准确描述,该配图务必配图。想清楚再发帖本身就是个学习与实践的过程。</p>
</div><script>showreplylogin();</script>

rxjsn 发表于 2024-7-21 21:27

<div class='shownolgin' data-isdigest='no'>chunyang 发表于 2024-7-17 19:41
至于说的电压问题,光耦的驱动电压和MCU的工作电压显然不是一回事,楼主帖中的图有个问题,即Vcc的标注问题 ...

<p>&nbsp; &nbsp; &nbsp; &nbsp;目前光耦隔离的防干扰已经了解,但是因为参加电赛制作模块一般就用一个电源,所以光耦隔离的意义可以说是没有,最终设计的模块直接使用单片机开关三极管,以实现继电器的驱动,经过实际测试,可以使用,效果良好。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 3.3V原因是单片机上ADC部分供电是3.3V,不能承受大的电压,但是单片机的IO口有钳位二极管保护(受这部分启发,后面在一道题目的设计中采用了类似的原理),一般来讲,短时间不高于3.6伏的极限值是可以接受的(当然最好不要超过3.3V)。至于电流部分,目前正在研究机理(当然,我们的单片机这段时间已经在电流上吃过教训了,使用单片机驱动两个DDS模块,输出电流不足以满足两个模块的需求,后面用学生电源检测,应该是过流了,最后导致单片机电源烧毁,因为单片机和DDS不是我设计的,所以对于其了解不多,以后也在强化研究买来的模块设计)。老师说的很对,看电路图确实直接用单片机输出3.3V驱动光耦就行了,唯一有问题的可能就是单片机的输出电流有的不够启动光耦二极管,这或许是这些光耦设计采用外接电源辅助驱动的原因,这样一来,又使用一个三极管扩流来驱动光耦的设计也是可以理解的了。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 啊,此外续流二极管是在集电极,当时打错了。平时不太习惯打大段文字,经常会打错东西。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 至于二极管的选型,最终选择了1N4007(因为手头的这个最多),个人理解是下电后用于继电器电感放电,只要可承受电流足够就都可以使用。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;基础知识有些在课上所学确实不牢,个人感觉还是多上手实际测试研究。个人习惯于理论分析,设计实践,最后再理论复盘和分析原因。发帖时还在研究理论,所以没有自己做的图,帖中的电路并不是我画的,当时是找的参考。因为一开始遇到的问题有点多,所以描述确实混乱,以后回注意。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;这段时间忙于准备比赛,有点忙,打算之后慢慢来研究这方面的细节</p>
</div><script>showreplylogin();</script>
页: [1] 2
查看完整版本: 对于用单片机驱动光耦,从而驱动继电器有一些疑惑