标题: 51单片机驱动三极管继电器问题 [打印本页]

作者: sys_max    时间: 2025-5-19 21:42
标题: 51单片机驱动三极管继电器问题
背景
想做一个通过 WIFI 控制 220v 开关灯,硬件开发小白一个(之前学习过一段时间51单片机),我主要是做软件开发的,心血来潮想学习一下硬件。
问题
元器件清单
模块/元件
型号/参数
用途
稳压模块AMS1117-3.35V转3.3V核心元件
WIFIESP-01s联网
继电器JQC-3FF-S通断220
续流二极管1N47001防止反灌,保护电路




接线图.jpg (145.89 KB, 下载次数: 0)

接线图

接线图

作者: shenqiwei    时间: 2025-5-20 03:20
二极管怎么不告诉我们?
作者: wufa1986    时间: 2025-5-20 08:00
你的接法是错误的
作者: sys_max    时间: 2025-5-20 08:36
shenqiwei 发表于 2025-5-20 03:20
二极管怎么不告诉我们?

二级管 1N47001
作者: sys_max    时间: 2025-5-20 09:52
wufa1986 发表于 2025-5-20 08:00
你的接法是错误的

具体哪里有问题,还望大佬提点一番
作者: lxh0508    时间: 2025-5-20 09:56
以你电路没有问题的情况下看,51单片机的拉电流输出能力太弱,NPN三极管没有工作在饱和区,但是灌电流能力可以,PNP能工作在饱和区。所以51单片机要驱动NPN三极管得加一个强上拉电阻
作者: WL0123    时间: 2025-5-20 10:12
IO口高电平驱动S8050需要在IO口接1~3K上拉电阻。否则高电平驱动能力不够。
作者: dj3365191    时间: 2025-5-20 10:41
S8550是PNP型三极管,你要把继电器接到S8550的集电极回路里
作者: cy009    时间: 2025-5-20 11:21
sys_max 发表于 2025-5-20 08:36
二级管 1N47001

续流二极管1N47001,是不是写错了?应该是1N4007或1N4001吧
作者: sys_max    时间: 2025-5-20 12:27
wufa1986 发表于 2025-5-20 08:00
你的接法是错误的

具体哪里有问题,麻烦大佬指点一二
作者: sys_max    时间: 2025-5-20 15:34
cy009 发表于 2025-5-20 11:21
续流二极管1N47001,是不是写错了?应该是1N4007或1N4001吧

是1N4007,不好意思写错了
作者: sys_max    时间: 2025-5-20 15:36
dj3365191 发表于 2025-5-20 10:41
S8550是PNP型三极管,你要把继电器接到S8550的集电极回路里

S8550 这个可以驱动,S8050 驱动不了
作者: sys_max    时间: 2025-5-20 15:37
WL0123 发表于 2025-5-20 10:12
IO口高电平驱动S8050需要在IO口接1~3K上拉电阻。否则高电平驱动能力不够。

使用 S8050时,基极加的就是1.2kΩ电阻也是驱动不了,但把继电器换LED就可以
作者: sys_max    时间: 2025-5-20 15:44
lxh0508 发表于 2025-5-20 09:56
以你电路没有问题的情况下看,51单片机的拉电流输出能力太弱,NPN三极管没有工作在饱和区,但是灌电流能力 ...

有加电阻1.2kΩ,是不是要换个小点电阻,其实我把电阻拔了试也是驱动不了
作者: 太阳雨ZW    时间: 2025-5-20 16:50
标题: RE: 51单片机驱动NPN三极管继电器问题
驱动NPN三级管继电器图示

2345截图20250520164419.png (38.77 KB, 下载次数: 0)

2345截图20250520164419.png

作者: rundstedt    时间: 2025-5-20 19:21
明显是NPN驱动电路你却用了PNP管子。
作者: sys_max    时间: 2025-5-20 20:34
太阳雨ZW 发表于 2025-5-20 16:50
驱动NPN三级管继电器图示

可以了大佬,这么神奇,感谢大佬。问题出在那个电阻哪里,我原来直接串在p1.0输出哪里的,现在改成一头在p1.0,一头在5v哪里就可以了,为啥要这样接
作者: sys_max    时间: 2025-5-20 20:35
发表于 2025-5-20 19:21
明显是NPN驱动电路你却用了PNP管子。

是的,我是误打误撞用PNP可以,用NPN不行才来问问各位大佬
作者: sys_max    时间: 2025-5-20 20:43
太阳雨ZW 发表于 2025-5-20 16:50
驱动NPN三级管继电器图示

经过测试出现个新问题,上电一瞬间继电器就吸合了
作者: dfvgt    时间: 2025-5-20 21:45
### 问题1解答 - **原因分析**:S8050和S8550虽然都是三极管,但参数有差异。S8050是NPN型,S8550是PNP型 。驱动继电器需要一定的驱动电流,S8050可能因为电流放大倍数β不够大,或者在当前电路参数下无法提供继电器吸合所需的足够基极电流,导致无法驱动继电器;而驱动LED所需电流相对较小,S8050能满足。S8550可能在当前电路参数下,其电流放大能力等特性能够提供继电器吸合的基极电流,所以可以驱动继电器。   ### 问题2解答 - **所需元器件**:     - **主控相关**:除已列的ESP - 01s用于联网外,若想进行逻辑控制,还需单片机(之前学过51单片机可考虑使用,或其他如STM32等 ),以及配套的晶振、复位电路相关元件(如电容、电阻 ) 。     - **电源相关**:除AMS1117 - 3.3稳压模块外,还需要电源输入接口(如DC插座 )、滤波电容(如电解电容、瓷片电容 ) ,用于稳定电源。     - **驱动相关**:已列的继电器JQC - 3FF - S及续流二极管1N47001,还需要三极管(如能正常驱动继电器的S8550等 )及其基极电阻等,用于控制继电器的通断。     - **负载接口相关**:用于连接220V灯的接线端子等。  ### 问题3解答 - **因未提供具体电路图,无法直接判断图是否正确** 。但从元器件清单看,整体方向合理。不过在实际电路搭建时,要注意各元件的连接方式、引脚定义等。比如ESP - 01s与单片机的通信接口连接、继电器控制电路中三极管基极电阻取值(要保证三极管工作在合适状态 )、电源电路的布线和滤波等。
作者: sys_max    时间: 2025-5-20 22:09
dfvgt 发表于 2025-5-20 21:45
### 问题1解答 - **原因分析**:S8050和S8550虽然都是三极管,但参数有差异。S8050是NPN型,S8550是PNP型  ...

哈哈哈,这个回答很完美,但是没解决我的问题
作者: xiaobendan001    时间: 2025-5-21 07:38
sys_max 发表于 2025-5-20 20:43
经过测试出现个新问题,上电一瞬间继电器就吸合了

这种电路就是这个问题,即使程序中复位后立即拉低该脚,也会在复位期间吸合一下。
即便是有推挽能力甚至是复位期间是高阻态的型号,也一样。要解决问题,就要用PNP的,但是继电器只能用5V的,如果不行,就得用PNP+NPN,两个三极管。
或者换成带推挽输出的型号,使用NPN,然后在该引脚使用下拉电阻,吃掉芯片复位时输出的弱上拉电流。
当然复位期间是高阻态的,可以用NPN,或者比如ULN2003这种达林顿。
作者: sys_max    时间: 2025-5-21 08:37
sys_max 发表于 2025-5-20 20:43
经过测试出现个新问题,上电一瞬间继电器就吸合了

应该没问题,是代码问题,默认上电输出高电平
作者: 太阳雨ZW    时间: 2025-5-21 09:58
sys_max 发表于 2025-5-20 20:43
经过测试出现个新问题,上电一瞬间继电器就吸合了

初始化时置P1.0为低电平,需要继电器吸合时置P1.0高电平。
作者: Y_G_G    时间: 2025-5-21 10:44
太阳雨ZW 发表于 2025-5-20 16:50
驱动NPN三级管继电器图示

他这个电路是没有问题的
上电吸合的问题,你要看单片机的规格书,默认的上电电平,如果要更改就要外加电路,或者更改驱动电路
作者: sys_max    时间: 2025-5-21 12:09
太阳雨ZW 发表于 2025-5-21 09:58
初始化时置P1.0为低电平,需要继电器吸合时置P1.0高电平。

是的确定是代码问题,电路图没问题
作者: sys_max    时间: 2025-5-21 12:23
Y_G_G 发表于 2025-5-21 10:44
他这个电路是没有问题的
上电吸合的问题,你要看单片机的规格书,默认的上电电平,如果要更改就要外加电路, ...

是的电路图没问题,代码有问题。
不过有个疑问就是,电阻一头接p1.o,一头接5v+。
是不是因为IO 口驱动能力较弱电流不够,这里是不是叫上拉电阻?

作者: sys_max    时间: 2025-5-21 14:31
xiaobendan001 发表于 2025-5-21 07:38
这种电路就是这个问题,即使程序中复位后立即拉低该脚,也会在复位期间吸合一下。
即便是有推挽能力甚至 ...

感谢解答,已解决,问题出在代码上面,默认高电平
作者: gditbbk    时间: 2025-5-21 14:44
接法不太对哦
作者: xiaobendan001    时间: 2025-5-21 19:09
sys_max 发表于 2025-5-21 14:31
感谢解答,已解决,问题出在代码上面,默认高电平

上电瞬间的跳动,对于指示灯什么的,没问题
对于其他的要研究一下
作者: kkkk66    时间: 2025-5-21 19:23
二极管直接这样接会爆的
作者: keemee    时间: 2025-5-22 05:23
电阻1.2K太小了,再说了,逻辑0时8050不能导通,逻辑1时8050导通的一瞬间,就把电平拉低成0,最后还是不通,必须换成8550,接成低电平导通
作者: sys_max    时间: 2025-5-22 13:59
keemee 发表于 2025-5-22 05:23
电阻1.2K太小了,再说了,逻辑0时8050不能导通,逻辑1时8050导通的一瞬间,就把电平拉低成0,最后还是不通 ...

你说的没错换成8550低电平导通是可以的(测试过)。
“逻辑0时8050不能导通,逻辑1时8050导通的一瞬间,就把电平拉低成0,最后还是不通”,

这个你咋知道的,串联电子就是这个问题,万用表测电压只能测出来一次,大概是0.657v,再测就是电阻来回跳,没有电压了。
作者: sys_max    时间: 2025-5-22 14:00
kkkk66 发表于 2025-5-21 19:23
二极管直接这样接会爆的

好像没有爆😂😂,可以用不知为啥
作者: sys_max    时间: 2025-5-23 09:14
xiaobendan001 发表于 2025-5-21 07:38
这种电路就是这个问题,即使程序中复位后立即拉低该脚,也会在复位期间吸合一下。
即便是有推挽能力甚至 ...

经验过实验,就像你说的复位后立即拉低该脚(P1.0输出低电平)还是瞬间吸合一下。原来代码是P.0默认高电平,我是以为是代码问题改了还是存在该问题,所以结论只能用PNP了,还有个方法不知道可行不,还没测试就是P1.0 接一个100uf 电容来吸收第一次的电压



  1. IO口 ──电阻R ──电容C ──8050基极B  
  2.                    │  
  3.                    └──地GND
复制代码





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1