你程序I=0,根本进不去循环中,改成I=2000;并且beep=0,不要在循环中,在while外定义初始状态就行 |
蜂鸣器分有源和无源,无源的是需要2K-4Khz左右的脉冲才能响 |
1 蜂鸣器故障。杜邦线接触不良或蜂鸣器坏了;2 程序问题。将20、21行屏蔽,在18行后面添加17、18行语句并将形参改为 10000 试试。 |
程序加进去了么 |
显然是程序错误造成不响 |
用示波器或者逻辑分析仪看下单片机port1.5是否有输出脉冲波形, 再单独试下蜂鸣器模块接上电源,输入脚碰下地线是不是有声音。 |
可能真的是电压不够,或者已经坏了 |
可能是电流不够,用一个驱动模块或者三级管试一下 |
直接都不响的话,确认线路没接错,用万用表量模块排针的焊盘,不排除杜邦线开路或接触不良的情况。 |
你这程序,就算蜂鸣器可以响也只能响一声吧,while循环结束以后你把i置为0 |
频率是1900-4000HZ |
grb7906 发表于 2021-11-23 15:04 正解 ![]() |
示波器测试一下,BEEP脚频度多少, 电磁式有源蜂鸣器的响应范围是2300+/-300HZ 无源蜂鸣器是靠方波驱动的,频率是1900-4000HZ 不等 |
黄金椰椰乌龙 发表于 2021-11-23 14:31 直接通电不响,那就是无源蜂鸣器,要给2-4khz信号,单片机输出对应频率一试... |
先做试验, 模块不接单片机, VCC 接5V , GND 接 GND, IO 也接 GND 看看响不响,不响就是模块问题,响得话,再琢磨刷原因: 首先,代码而言, delay_10us(100); 相当于1ms 对有源蜂鸣器相当的不友好, 即便要让有源蜂鸣器 滴滴滴地 响,一般也要100ms 以上的间隔,不然不说有源蜂鸣器里面震荡电路是否有问题,耳朵都听不出间隔。 |
用电压表量一下,io引脚的电压。如果为低就证明和程序没关系是蜂鸣器模块的问题。多半是虚焊了,把每个脚都用烙铁出溜一遍。 |
grb7906 发表于 2021-11-23 14:25 直接给也不响... |
有源蜂鸣器直接给高低电平,无源蜂鸣器要输出蜂鸣器的谐振频率,一般2-4khz |
量一下供电电压够不够。 |