标题: 51单片机驱动电磁阀程序,怎么驱动不了电磁阀,有大神能帮我看看问题所在吗? [打印本页]

作者: 咸鱼番薯    时间: 2024-10-18 10:35
标题: 51单片机驱动电磁阀程序,怎么驱动不了电磁阀,有大神能帮我看看问题所在吗?
使用51单片机驱动电磁阀,电路仿真没问题,但是驱动不了,我使用的单片机IO输出电压也足够,不知道为什么驱动不了,有大神帮我看一下问题出在哪里吗?程序就写了一个简单的按键控制IO口输出,P1.0和P0.0作为输出口均驱动不了电磁阀,使用万用表测量P1.0,输出为0时,电压为5V,测量P0.0,输出为1时,电压为2.2V。

  1. #include<reg52.h>

  2. sbit S1 = P1^0;
  3. sbit S2 = P0^0;
  4. sbit k2 = P3^4;                        //K2按键
  5. //sbit K3 = P3.5;

  6. void delay(unsigned char i)
  7. {
  8.         unsigned char j,k;
  9.         for(j=i;j>0;j--)
  10.                 for(k=90;k>0;k--);
  11. }

  12. void main()
  13. {
  14.         while(1)
  15.         {
  16.                 if(k2==0)
  17.                 {
  18.                         delay(20);                        //消抖
  19.                         if(k2==0)
  20.                         {
  21.                                 while(!k2);                //        等待按键松开
  22.                                 S1 = ~S1;  
  23.                                 S2 = ~S2;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
  24.                         }
  25.                 }
  26.         }
  27. }
复制代码




下图我P1,0和P0.0引脚电路图,VCC为5V





作者: xiaobendan001    时间: 2024-10-18 11:18
硬件问题吧。
是不是MOS脚弄错了?
什么样的电磁阀?12V的,多大电流?
我直接用TIP122驱动24V那种控制压缩空气的电磁阀是没问题的。
作者: 咸鱼番薯    时间: 2024-10-18 17:03
xiaobendan001 发表于 2024-10-18 11:18
硬件问题吧。
是不是MOS脚弄错了?
什么样的电磁阀?12V的,多大电流?

MOS管引脚没弄错,12V 0.3A的电磁阀,应该电路没啥问题,要出问题的话也就可能那个三极管或者MOS管烧了,大佬能帮我分析一下其他可能的原因么?非常感谢!!!!
作者: 咸鱼番薯    时间: 2024-10-18 17:12
xiaobendan001 发表于 2024-10-18 11:18
硬件问题吧。
是不是MOS脚弄错了?
什么样的电磁阀?12V的,多大电流?

12V 0,3A的电磁阀,MOS管引脚没出错,因为之前接反过一次,上电冒火花了,这次仔细的接对了,大佬能帮我看看还有别的可能出现的原因么?非常感谢!!!
作者: lkc8210    时间: 2024-10-18 17:56
Q2 B极加10k上拉电阻
作者: xxxevery    时间: 2024-10-18 18:00
电磁阀线圈是大电感,突然通断会产生很高的反向电压,电路上必须要考虑抑制吸收反向电压的措施,否则就是会烧驱动管
作者: wjfw    时间: 2024-10-18 19:30
弱弱的问一句,MOS管为啥接在电源正极?
作者: xmcolong    时间: 2024-10-18 20:22
R1由1K变为10K, 在Q2的集电极C与Q1的G集之间串一个1K电阻试试
作者: rayin    时间: 2024-10-18 22:52
可以在R4输入端人工输入5v/ 0v看下电磁阀有没有吸合动作, 如果有.就说明上面电路搭建没什么大问题. 没有吸合动作, 那就要排查一下电路是不是有地方虚焊等问题.

还有就是电磁阀这种负载是感性的, 需要反接diode来防止损坏单片机, 驱动mos管等器件.
作者: xiaobendan001    时间: 2024-10-19 10:37
咸鱼番薯 发表于 2024-10-18 17:12
12V 0,3A的电磁阀,MOS管引脚没出错,因为之前接反过一次,上电冒火花了,这次仔细的接对了,大佬能帮我 ...

上电,测量一下比如MOS的G有多少电压不就知道了?
不过我们还是习惯使用NMOS吧。
作者: dyx811    时间: 2024-10-19 10:40
最好用继电器做控制,当然如果用在高速场合,你可以考虑用开漏的方式来驱动,Q2有条件的话加个下拉电阻。
作者: zxcscm    时间: 2024-10-20 14:09
用的什么STC单片机哪个单片机?有些型号的引脚需要初始化的




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