| a应该是传感器采集的水位数据,当第一个循环为假就退出来了啊,大于上限就断开继电器,保持继电器断开到水位到下限再闭合继电器 |
|
程序问题,不是电问题 执行完第一个do while接着 relay=0; 再执行第二个do while,接着 relay=1. 主循环不停的 0,1,把这两句去掉 |
| 三极管换成PNP的,代码改成低电平输出继电器吸和就可以了 |
| 单片机端口输出电流不足,把P37设置为推挽模式。 |
| 电路没问题,是程序有问题。通过判断a的值控制继电器的通断,用if语句就可以了,不要用do……while循环。 |
| 我只知道电路没有问题,我是搞硬件的,电路OK,IO只要设置成为推挽模式,肯定能行。 |
| 像控制继电器可以使用nmos来驱动,直接用三极管,中间可以加一个电流型的达林顿管,增强带载能力 |
xiaobendan001 发表于 2024-4-18 12:35 感谢!我试试。 |
gsr64 发表于 2024-4-18 15:09 感谢!我试试 |
|
P3.7接一个10K的上拉电阻就可以了。 |
| 新型单片机就设置为推挽模式,老型号就增加一个上拉电阻 |
| 单片机输出电流远小于输入电流,建议使用UN2008增加输出电流! |
lkc8210 发表于 2024-4-18 09:17 感谢我试试 |
devcang 发表于 2024-4-18 10:31 测的只有0.14V但是那个状态确实应该输出高电平的。我实在想不出来哪里出来问题 |
jhczy 发表于 2024-4-18 08:52 感谢,我试试 |
LHWCCJ 发表于 2024-4-18 08:49 5V的这个没问题 |
| 动作时,b的电压多少。。。。 |
|
| 继电器输出接线错误。 请仔细检查。 |
| R14改成1k,R19去掉 |
| 是不是继电器电压用错了 |
|
代码逻辑有问题,a的来源也有问题,先解决代码问题吧 |
Hephaestus 发表于 2024-4-17 19:43 大哥已经测的4.7V左右 |
dyx811 发表于 2024-4-17 21:12 en本人初学这些还学的很差,我只知道传感器实时采集的,可以显示实时水位数据 |
Hephaestus 发表于 2024-4-17 19:43 en你好我菜鸡一枚。这个测俩端压降有啥用呢。 |
cy009 发表于 2024-4-17 20:09 a是传感器采集的水位数据,当yi第一个循环为假就退出来了啊,就大于上限断开继电器,然后一直保持继电器断开到水位到下限再闭合继电器 |
大IGBT 发表于 2024-4-17 19:54 本人初学菜鸡,采用的51单片机,P3口是带有上拉电阻的吧,驱动三极管开关电路理论上应该没问题吧。然后程序里面也是高电平闭合,低电平断开,程序里的开就是断开,注释没好。然后您说的后面这我已经换了一个1k的电阻接IO口,也试过了,但是还是不行。我也用万用表测试过,处于第一个循环中,应当继电器闭合,但是继电器依旧处于处于开路状态。同时我用相同的电路,但是这次采用一个按键接1k的电阻到vcc继电器又能工作。这就让我很迷惑。 |
| 程序里面的“a”变量是多久采集一次? |
| a是什么变量? 有a>,有a<, 那么a=呢?做什么? |
|
再补充一个问题 3,基极电阻太大三极管有可能临界导通或工作在放大区,如果单片机是弱上拉再加上上拉电阻就更不可靠了。 |
|
两个问题:1,用的什么单片机,P37是否具有推完输出功能 2,电路图中高电平吸合,程序中是低电平吸合。 |
| 先测Q2的b极和c极电压。 |