找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5677|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

單片機驅(qū)動蜂鳴器聲音很小,且不連續(xù)是滴滴滴的聲音

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:497598 發(fā)表于 2020-4-30 20:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
25黑幣
我使用的是普中V3.0開發(fā)板,使用附帶的例程沒問題,聲音很響亮

但加載上我的程序之后,蜂鳴器的聲音很小,且是不連續(xù)的為嘀嘀嘀的聲音

懇請有經(jīng)驗的大佬指導(dǎo)一下

附上蜂鳴器相關(guān)程序

  1. sbit Beep = P1^1;                                                            //蜂鳴器
  2.                                 if(yanwu >= yushe_yanwu)            //煙霧大于等于預(yù)設(shè)值
  3.                                 {
  4.                                         Led_Red2 = 0;                          /*打開煙霧報警燈*/
  5.                                          Beep= 1;                 //蜂鳴器報警
  6.                                         delay(5);
  7.                                         Beep= 0;
  8.                                         delay(5);
  9.                                         Led_green2 = 1;
  10.                                 }
復(fù)制代碼



最佳答案

查看完整內(nèi)容

while(yanwu >= yushe_yanwu) //煙霧大于等于預(yù)設(shè)值 { Led_Red2 = 0; /*打開煙霧報警燈*/ Beep= 1; //蜂鳴器報警 yanwujiance(); //重新檢測煙霧濃度 } Led_Red2 = 1; /*關(guān)閉煙霧報警燈*/ Beep= 0; ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:452950 發(fā)表于 2020-4-30 20:17 | 只看該作者
                           
while(yanwu >= yushe_yanwu)            //煙霧大于等于預(yù)設(shè)值
{
       Led_Red2 = 0;                          /*打開煙霧報警燈*/
       Beep= 1;                 //蜂鳴器報警  
       yanwujiance();         //重新檢測煙霧濃度                                    
  }
Led_Red2 = 1;                          /*關(guān)閉煙霧報警燈*/                  
Beep= 0;                 //蜂鳴器復(fù)位
回復(fù)

使用道具 舉報

板凳
ID:624817 發(fā)表于 2020-4-30 22:50 | 只看該作者
這種情況應(yīng)該是延時時間太長了  可以發(fā)一下延時函數(shù)出來看看
回復(fù)

使用道具 舉報

地板
ID:683289 發(fā)表于 2020-4-30 23:00 | 只看該作者
你的delay(5)是延時5ms還是多久?能不能附上你說的附帶例程程序看看與你的有什么差別?還有你的硬件和例程的硬件有什么差別?
回復(fù)

使用道具 舉報

5#
ID:235200 發(fā)表于 2020-5-1 00:02 | 只看該作者
硬件電路未加三極管進行驅(qū)動
回復(fù)

使用道具 舉報

6#
ID:420836 發(fā)表于 2020-5-1 09:18 | 只看該作者
也許將原始代碼與你自己的代碼進行比較以檢查有什么不同
回復(fù)

使用道具 舉報

7#
ID:462827 發(fā)表于 2020-5-1 09:39 | 只看該作者
因為普中板用的是無源蜂鳴器,要用高頻方波驅(qū)動才好好發(fā)聲,它的例程是這么做的,所以正常。而你的代碼只是簡單地改變電平并稍延時讓它響,當(dāng)然聲音不會很響。
回復(fù)

使用道具 舉報

8#
ID:452950 發(fā)表于 2020-5-1 10:18 | 只看該作者
Beep= 1;
delay(5);
  Beep= 0;
  delay(5);
每響5ms中斷5ms當(dāng)然不連續(xù)了。
回復(fù)

使用道具 舉報

9#
ID:497598 發(fā)表于 2020-5-1 10:56 | 只看該作者
Jiam 發(fā)表于 2020-4-30 22:50
這種情況應(yīng)該是延時時間太長了  可以發(fā)一下延時函數(shù)出來看看

void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 100; j > 0; j--);
}
回復(fù)

使用道具 舉報

10#
ID:497598 發(fā)表于 2020-5-1 11:27 | 只看該作者
ibeam 發(fā)表于 2020-4-30 23:00
你的delay(5)是延時5ms還是多久?能不能附上你說的附帶例程程序看看與你的有什么差別?還有你的硬件和例 ...
  1. 例程
  2. #include <reg51.h>
  3. sbit Beep =  P1^1 ;
  4. void delay(unsigned int i) ;
  5. void main()
  6. {
  7.          Beep= 1;
  8.          delay(5);
  9.          Beep= 0;
  10.          delay(5);
  11. }

  12. void delay(unsigned int i)
  13. {
  14.     char j;
  15.     for(i; i > 0; i--)
  16.         for(j = 200; j > 0; j--);
  17. }


  18. 我的部分程序

  19. sbit Beep = P1^1;                                                            //蜂鳴器
  20. void delay(unsigned int i)
  21. {
  22.     char j;
  23.     for(i; i > 0; i--)
  24.         for(j = 200; j > 0; j--);
  25. }
  26.                                 if(yanwu >= yushe_yanwu)            //煙霧大于等于預(yù)設(shè)值時
  27.                                 {
  28.                                         Led_Red2 = 0;                          /*打開煙霧報警燈*/
  29.                                         Beep= 1;                 //蜂鳴器報警
  30.                                         delay(5);
  31.                                         Beep= 0;
  32.                                         delay(5);
  33.                                         Led_green2 = 1;
  34.                                 }
復(fù)制代碼
回復(fù)

使用道具 舉報

11#
ID:497598 發(fā)表于 2020-5-1 11:29 | 只看該作者
TTQ001 發(fā)表于 2020-5-1 09:18
也許將原始代碼與你自己的代碼進行比較以檢查有什么不同

我是按例程上改的,用例程的程序很響亮,我的程序不響亮

  1. 例程程序
  2. #include <reg51.h>
  3. sbit Beep =  P1^1 ;
  4. void delay(unsigned int i) ;
  5. void main()
  6. {
  7.          Beep= 1;
  8.          delay(5);
  9.          Beep= 0;
  10.          delay(5);
  11. }

  12. void delay(unsigned int i)
  13. {
  14.     char j;
  15.     for(i; i > 0; i--)
  16.         for(j = 200; j > 0; j--);
  17. }


  18. 我的 程序(部分)
  19. sbit Beep = P1^1;                                                            //蜂鳴器
  20. void delay(unsigned int i)
  21. {
  22.     char j;
  23.     for(i; i > 0; i--)
  24.         for(j = 200; j > 0; j--);
  25. }
  26.                                 if(yanwu >= yushe_yanwu)            //煙霧大于等于預(yù)設(shè)值時
  27.                                 {
  28.                                         Led_Red2 = 0;                          /*打開煙霧報警燈*/
  29.                                         Beep= 1;                 //蜂鳴器報警
  30.                                         delay(5);
  31.                                         Beep= 0;
  32.                                         delay(5);
  33.                                         Led_green2 = 1;
  34.                                 }
復(fù)制代碼
回復(fù)

使用道具 舉報

12#
ID:519352 發(fā)表于 2020-5-1 14:12 | 只看該作者
如果是有源的,增大延時試試看,如果是無源的,減小延時試試看
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表