![]() |
你程序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 |
量一下供電電壓夠不夠。 |