当前位置: 首页>編程日記>正文

STM32F103单片机驱动蜂鸣器

STM32F103单片机驱动蜂鸣器

  蜂鸣器在电子产品中很常见,几乎现在的家电中都有,主要用来做声音提示。

蜂鸣器从材料上分可以分为压电式蜂鸣器和电磁式蜂鸣器。

  压电式蜂鸣器: 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。

  电磁式蜂鸣器:电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

蜂鸣器从驱动方式上可以分为有源蜂鸣器和无源蜂鸣器。

  有源蜂鸣器:内部自己带有驱动电路,只要在外部供上点之后,内部电路就会工作,驱动蜂鸣器内部分线圈进行振动,从而发出声音。

  无源蜂鸣器:内部没有振荡电路,直接给蜂鸣器供直流电时,蜂鸣器不会响,只有外部给蜂鸣器提供一个方波,蜂鸣器才能发出声音。

驱动方式:

  无源蜂鸣器驱动比较简单,直接用单片机IO口给蜂鸣器发送方波信号就行。

image.png

  有源蜂鸣器驱动时,外部需要驱动电路。

image.png

  常用的驱动方式就是直接通过三极管来驱动,三极管主要是用来放大电流,因为蜂鸣器响的时候需要的电流比较大,一般单片机口直接提供不了那么大的电流,给蜂鸣器反向并联一个二极管用来延长蜂鸣器的使用寿命。由于蜂鸣器内部有线圈,相当于一个电感,当蜂鸣器关闭的时候,会在线圈上产生一个反向电动势,这个二极管在蜂鸣器关闭的时候可以给线圈进行放电。

  用这个驱动电路驱动蜂鸣器的时候,在上电的一瞬间,有时候会听见蜂鸣器嘀的响一声,这时因为在单片机上电时,IO口未初始化之前,有的IO口默认会是高电平,这样当单片机上电的一瞬间,三极管基极就会瞬间又一个高电平,这时候蜂鸣器就会响一声,当IO口初始化完成之后,IO口设置为低电平,这时候三极管不导通,蜂鸣器就不响了,为了避免这种情况发生,一般都会给基极加一个比较大的下拉电阻。

image.png

  给基极加一10K的下拉电阻这样在上电的瞬间,这个下拉电阻就会将三极管基极的电平拉为0,在上电的一瞬间蜂鸣器就不会响了。

  这里驱动蜂鸣器使用的是有源蜂鸣器,虽然驱动电路复杂了一点,但是程序控制比较简单,只需要给IO口高低电平,就可以控制蜂鸣器响或者不响。蜂鸣器初始化代码如下:

#define BEEP PBout(8)	//BEEP 蜂鸣器接口void BEEP_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_ResetBits(GPIOB, GPIO_Pin_8);
}

将驱动蜂鸣器的口PB8设置为普通IO口,推挽输出就可以了。要蜂鸣器响的时候,直接给PB8口给高电平就行了。

int main(void)
{delay_init();       //延时函数初始化LED_Init();         //初始化与LED连接的硬件接口BEEP_Init();		//初始化蜂鸣器while(1){    BEEP = 1;delay_ms(200);   //延时300ms      BEEP = 0;delay_ms(200);  //延时300ms      }
}

在主程序中循环的让蜂鸣器一开一关,这样就可以听到蜂鸣器发出的嘀嘀嘀嘀的声音了。


https://www.fengoutiyan.com/post/15371.html

相关文章:

  • 单片机控制蜂鸣器
  • 单片机驱动蜂鸣器原理与设计
  • STM32F103
  • STM32F205
  • 单片机控制蜂鸣器的原理
  • 单片机驱动蜂鸣器
  • 单片机蜂鸣器
  • 单片机驱动继电器
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機