结语 重新焊了一下蜂鸣器,终于响了,最终原因是有源蜂鸣器正负极接反了,改过来后可以正常响了,说明I/O口和电路都是没问题的。这是本人第一次在这个论坛发问题,感觉学习氛围很好,感谢各位大佬的解答,我从中学到了许多今天开学第一天,终于解决了这个问题,很开心,再次感谢各位!!! |
感谢更新,所以我们都知道蜂鸣器没有蜂鸣的原因。 |
本帖最后由 Y_G_G 于 2021-9-6 23:05 编辑 ZMRGHY 发表于 2021-9-6 19:43 看错了,看错了,不好意思 |
弄好了没有。。。。回复一下呀。。。。。 |
Y_G_G 发表于 2021-9-6 09:31 89C52IO口有强捡的模式吗???我没听说过呀 |
优酷链接貌似发错了 |
把蜂鸣器反过来接终于可以响了 |
按理说不应该,你拿仪表测一下io口。看是不是坏了 |
有源蜂鸣器是有极性的。 不响,接反的可能性极大。 |
这是一个很简单的问题,真的,经常动手的人,很快就能找到问题 1,先把单片机蜂鸣器的IO设定成强推挽输出模式(数据手册上有,自己设定) 2,不要三极管,直接把这个输出IO连接到蜂鸣器,不用分正负,没必要 3,不要任何按键什么的,直接给这个IO输出一个1KHZ的方波,可以用定时器 4,蜂鸣器响了,电路和程序就对了,蜂鸣不响,硬件电路或者程序有问题 蜂鸣器会响的,声音是小点而已,不分正负的 |
LittleBoss 发表于 2021-9-5 23:15 我在Proteus 仿真了一下。。仿真不出效果。。。。 需要知道,可以驱动蜂鸣器的最低电压,和蜂鸣器自身电阻。。。 你可以,测量一下驱动蜂鸣器的最低电压,和蜂鸣器自身电阻。 然后在Proteus 仿真了一下。。。 比自己计算电阻大小好用多了。。。。 使用Proteus 仿真可以,节省很少人工计算 |
明天去基地重新焊一下蜂鸣器试试 |
我刚刚给我师兄看了看板子他说我的蜂鸣器接反了,他的板子蜂鸣器没问题,我们用的是同一个电路,我打算重新接一下蜂鸣器试试 |
188610329 发表于 2021-9-5 22:32 抱歉,网络问题。延时太多。只看到了。。。我的楼层上一层,你说让他把基极接地。。。。 前面的真的没看到 |
ZMRGHY 发表于 2021-9-5 22:20 抱歉, 可能刷新的问题,是 16楼帖的图, 贴图的人还是你。 其实我们俩 和他传递的是一个信息。所以,你没必要和我辩论。我在最开始 6楼 就跟他说要三极管控制GND ,而不是控制 VCC 电阻要换到 470R, 你在16楼也贴了图,他坚持不改,你有别的办法么? |
ZMRGHY 发表于 2021-9-5 22:20 我前面很直接的说了一大堆原因了,你没看到么? 还有热心的15楼图都贴出来了,我也让他参考15楼的图了,你没看到? 他非要认死理,那么只能让他最简单的方法自己看到结果,然后再讲其他道理了。 |
188610329 发表于 2021-9-5 22:03 为什么,不直接说清原因呀 |
ZMRGHY 发表于 2021-9-5 21:57 我不知道你想说什么, 他打算 P17 = 0,让蜂鸣器响,我告诉他不会响,让他把打算通过 P17 拉到 0 的地方手动接到 GND, 来代替 P17 = 0, 看看是不是会响, 有什么问题么? |
188610329 发表于 2021-9-5 21:40 PNP三极管,b极对地电阻小于以c极电阻时,三极管不会导通。。 PNP使用时,c极直接,接地。。。。 |
LittleBoss 发表于 2021-9-5 21:40 你 0.3MA 蜂鸣器响了么? 没响的话,这电流毫无意义。 |
188610329 发表于 2021-9-5 21:28 更正一下,是0.3mA和13mA差了蛮远的 |
LittleBoss 发表于 2021-9-5 21:31 你直接飞线,把接P17这个地方接到GND 即手动代替 P17 拉低,看看响不响。就知道了。 |
把蜂鸣器从源极改到发射极。。。 去掉R8限流电阻。 R7换470欧,如果不响换成330欧, |
188610329 发表于 2021-9-5 21:28 奇怪了。。。我用万用电表电流档红黑表笔分别接基极和R7的靠近JP8的一端得到的电流值是0.3mA,和我用R7两端电压估算的1.3mA差了蛮远的。。。。 |
188610329 发表于 2021-9-5 21:28 我测了R7两端电压是1.3V,然后它的电流是13mA左右,现在我发现发射极与集电极间电压、蜂鸣器两端电压、R8两端电压都是0V,感觉是这三个里面哪里出了问题 |
LittleBoss 发表于 2021-9-5 21:11 你R7 为 100R 大多数单片机的IO,灌电流只能承受12MA 根本不可能把基极拉低到0。要么拉不低,要么烧IO. |
本帖最后由 LittleBoss 于 2021-9-5 21:23 编辑 LittleBoss 发表于 2021-9-5 21:11 |
本帖最后由 LittleBoss 于 2021-9-5 21:26 编辑 到目前为止总结一下,希望大佬分析出问题出在哪: 1.蜂鸣器电池直接接上正负极可以响 2.R7和R8均为100欧姆,正常 3.焊接没问题,严格按照电路图焊接的 4.当主函数改成 void main() { LED1=0; LED2=0; BEEP=0; while(1); } JP8打到ON 控制灯亮起,蜂鸣器响时,灯亮蜂鸣器不响 用万用电表测得以下数据 蜂鸣器两端电压是0V 三极管的发射极和基极的电压是0.7V 三极管的发射极和集电极的电压是0V JP8的1和2间电压为0V 用万用表电流档红黑笔分别接JP8的2和1测得电0mA 如果还有什么需要测的就跟我说一下~ |
LittleBoss 发表于 2021-9-5 20:26 主函数这样,符合测试需要。 参考 15楼的 图,一般 单片机驱动蜂鸣器都应该这个样子。 确认一下 JP8 状态是否 闭合, 只要你是 有源蜂鸣器,应该能响。 |
ZMRGHY 发表于 2021-9-5 20:47 是有源的呀 |
LittleBoss 发表于 2021-9-5 20:26 测得基极和发射极间的电压为0.7V,发射极和集电极的电压为0 |
蜂鸣器到底是有源还是无源 |
LittleBoss 发表于 2021-9-5 20:26 JP8接通,万用表短接JP8测得基极电流为0,短接蜂鸣器测得电流为47mA |
主函数改成这样后在单片机上运行,两个LED灯均亮,用万用表测得蜂鸣器两端电压是3.3V左右 |
用万用表测了R7 和 R8 的电阻都是100欧姆 |
wysh_2004 发表于 2021-9-5 19:11 我用电池直接接过蜂鸣器,是可以响的,在程序里将P17与P35交换应该不可行吧,硬件已经决定P1^7和P3^5本来就是分别控制蜂鸣器和LED2的了 |