51單片機-驅動蜂鳴器模塊教程

本章概述思維導圖:

51單片機驅動蜂鳴器模塊教程

蜂鳴器簡介

蜂鳴器是一種將電信號轉換為聲音信號的電子元件,廣泛應用于報警、提示、通知等場景。其核心原理基于壓電效應或電磁感應:因此可分為兩種類型蜂鳴器:壓電式蜂鳴器和電磁式蜂鳴器;

????????壓電式蜂鳴器:利用壓電陶瓷片在電壓變化下產生機械形變,從而振動發聲;

????????電磁式蜂鳴器:通過電磁線圈與磁鐵的相互作用,驅動振膜周期性振動發聲;

如圖所示:壓電式蜂鳴器和電磁式蜂鳴器;

在以后遇到蜂鳴器我們該如何區分呢?

按照驅動方式分:

????????有源蜂鳴器內置振蕩源:內部集成振蕩電路,通電即可發聲,聲音頻率固定;

????????無源蜂鳴器無內置振蕩源:需外部輸入方波信號驅動,聲音頻率可控(可發出不同音調);

按照結構分類:

????????壓電式蜂鳴器;

????????電磁式蜂鳴器;

有非常多的人會理解為:把有源蜂鳴器當成壓電式蜂鳴器,無源蜂鳴器當成電磁式蜂鳴器。這樣的理解是錯誤的小伙伴們。不管是壓電式或者電磁式都可以根據內部是否配置振蕩源來確定是有源還是無源;


蜂鳴器硬件電路原理圖分析

在開發板中使用的蜂鳴器為壓電式無源蜂鳴器;

可以觀察蜂鳴器的兩個引腳,上引腳是接入高電平。下腳是接入ULN2003D芯片的OUT5輸出腳,而ULN2003D芯片的IN5輸入腳連接了MCU的P25腳來實現控制蜂鳴器。從而可以判斷出MCU的P25腳輸出一個連續的高低電平ULN2003D芯片則輸出一個連續的低高電平形成一個方波信號就可以使得蜂鳴器驅動啦。

這里有小伙伴會有疑問,為什么不直接使MCU的P25腳直接連接蜂鳴器的下腳呢,是因為MCU I/O口無法直接驅動蜂鳴器。所以使用ULN2003D芯片,ULN2003D芯片為達林頓晶體管陣列,單路可承受500mA電流,能輕松驅動蜂鳴器,同時分擔MCU的電流負載。

小知識點:ULN2003D驅動芯片的輸入腳為低電平時,則對應輸出腳為高電平。輸入腳為高電平時,則對應輸出腳為低電平。


驅動蜂鳴器軟件編程設計

要使得蜂鳴器驅動,要產生1.5KHZ~5KHZ的頻率脈沖信號,換算周期時間為:0.7ms~0.2ms

意思就是指我們要設計高低電平的一個周期時間為:07ms~0.2ms。

代碼示例:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit BEEP=P2^5;
void Delay_10us(u16 us)//延時函數:輸入1大概延時時間為10us
{while(us--);
}
/*蜂鳴器驅動函數:
1、想使得蜂鳴器的聲音變長變短,可以更改i的值大小;
2、想改變音色,可以更改頻率也就是周期時間:延時函數里的值;
3、想改變音調可以改變高低電平的占空比,音調變高高電平時間高一點,音調變低高電平時間少一點對應的低電平時間也要更改。保證周期總時間不變,改變高低電平占空比*/
void BEEP_OUT(void)//蜂鳴器驅動函數
{u16 i=1000;while(i--){BEEP=1;Delay_10us(30);//產生脈沖信號高低電平轉換時間,低電平0.3ms高電平0.3ms;周期時間設置為0.6msBEEP=0;Delay_10us(30);}
}
int main()
{while(1){BEEP_OUT();//蜂鳴器驅動Delay_10us(50000);//延時時間為480msBEEP=1;//蜂鳴器關閉Delay_10us(50000);//延時時間為480ms}
}

小心得:在驅動蜂鳴器函數中:

1、想使得蜂鳴器的聲音變長變短,可以更改i的值大小;
2、想改變音色,可以更改頻率也就是周期時間:延時函數里的值;
3、想改變音調可以改變高低電平的占空比,音調變高高電平時間高一點,音調變低高電平時間少一點對應的低電平時間也要更改。保證周期總時間不變,改變高低電平占空比;

蜂鳴器驅動效果展示:

蜂鳴器模塊實現效果


制作不易!喜歡的小伙伴給個小贊贊!喜歡我的小伙伴點個關注!有不懂的地方和需要的資源隨時問我喲!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93322.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93322.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93322.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx運維指南

一、基礎Linux指令1. 文件與目錄操作ls -lh # 查看文件詳情(人類可讀格式) pwd # 顯示當前目錄路徑 cd /path # 切換目錄 mkdir dirname # 創建目錄 rm -rf dirname # 強制刪除目錄 cp -r src dest # 遞歸復制目錄 mv old new # 移動/重命…

小紅書帖子評論的nodejs爬蟲腳本

從小紅書上爬取評論,但是目前還不能完全爬取子評論,使用GPT沒能解決這個問題。后續博主可能會改進。或者如果你懂的話,可以在博主代碼基礎上改進。需要安裝nodejs軟件,部署環境變量。博主是在pycharm中運行的。代碼無套路獲取。自…

【iOS】多線程原理

目錄 前言 基本概念及原理 線程、進程與隊列 線程的定義: 進程的定義: 線程與進程之間的聯系與區別: 線程和runloop的關系 影響任務執行速度的因素 多線程 多線程生命周期 線程池的原理 iOS中多線程的實現方式 線程安全問題 互斥…

藥房發藥的“時間密碼”:同步時鐘用藥安全?

在醫院的藥房里,每一粒藥片的流轉都暗藏“時間密碼”。從藥品入庫到患者服藥,時間記錄的精確性直接關乎生命安全。一旦時間數據出現偏差,輕則導致用藥爭議,重則引發醫療事故。近年來,隨著醫療數字化進程加速&#xff0…

UI-TARS-Desktop 深度解析:下一代智能自動化桌面平臺

目錄 1. 產品概述 2. 核心功能與技術架構 2.1 關鍵技術 2.2 功能亮點 3. 競品對比分析 4. 部署與成本分析 4.1 部署方案 4.2 隱性成本 5. 商業化前景 5.1 目標市場 5.2 盈利模式 5.3 風險挑戰 6. 未來演進方向 7. 總結 1. 產品概述 UI-TARS-Desktop 是一款基于A…

STM32L051同時處理Alarm A和Alarm B中斷

同時處理Alarm A和Alarm B中斷 當同時啟用Alarm A和Alarm B時,需要在中斷處理程序中準確判斷是哪個鬧鐘觸發了中斷。以下是完整的解決方案: 中斷判斷與處理流程 1. 在RTC中斷服務程序中判斷中斷源 // stm32l0xx_it.c void RTC_IRQHandler(void) {/* USER…

OpenCV---morphologyEx形態學操作

在計算機視覺與圖像處理領域,形態學操作是一種基于圖像形狀的非線性處理方法,廣泛應用于噪聲去除、邊緣檢測、目標分割等任務。OpenCV提供的morphologyEx函數是形態學操作的“瑞士軍刀”,它整合了多種高級形態學運算,能夠實現開運…

RuoYi-Cloud 接入 Sentinel 的 3 種限流方式

場景: 服務:ruoyi-robot(對外接口統一在 /external/gs/**) 網關:ruoyi-gateway(轉發到 ruoyi-robot) 注冊/配置:Nacos 流控:Sentinel 1.8.x 控制臺 Dashboard&#x…

快速搭建python HTTP Server測試環境

這里用python http.server搭建一個api測試環境,自定義請求處理程序,以模擬不同api相應。 1 服務代碼 /api/data,端口8000,GET 返回json數據為"{"message": "This is a sample API response"}" 代…

Docker容器定時任務時區Bug導致業務異常的環境變量配置解決方案

Docker容器定時任務時區Bug導致業務異常的環境變量配置解決方案 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個特性都是…

解鎖Dify與MySQL的深度融合:MCP魔法開啟數據新旅程

文章目錄解鎖Dify與MySQL的深度融合:MCP魔法開啟數據新旅程引言:技術融合的奇妙開篇認識主角:Dify、MCP 與 MySQL(一)Dify:大語言模型應用開發利器(二)MCP:連接的橋梁&am…

雜記 02

1 WSL安裝 WSL的安裝遇到了問題,睡醒起來發現電腦藍屏了,linux系統沒裝好,但是好像大部分開發環境都是linux下需要的,先這樣用一下吧,到時候再說。可以問下前輩開發細節,主要是網絡代理問題,保…

劇本殺小程序系統開發:重構推理娛樂生態

在娛樂產業蓬勃發展的今天,推理娛樂作為一種充滿智慧和挑戰的娛樂形式,受到了越來越多人的喜愛。劇本殺,作為推理娛樂的代表之一,正以其獨特的魅力吸引著大量玩家。而劇本殺小程序系統開發,則為推理娛樂生態的重構帶來…

力扣習題:基本計算器

本片內容我們將針對于一個力扣中的一道很經典的習題:基本計算器。 這道題目十分經典,在很多大廠的面試題中都有出現過 因此我們將進一步來學習 該題目代碼已經上傳作者的個人gitee:CPP 學習代碼庫: C代碼庫新庫,舊有C倉庫滿員了喜…

Element用法---Loading 加載

僅供參考 文章目錄一、加載動畫二、Loading 組件1、指令調用 Loading2、服務調用 Loading一、加載動畫 當我們打開某個頁面時,如果需要加載的數據很多或者網絡很差,頁面加載就會非常緩慢,中間可能會很長時間顯示空白,那么就需要加…

飛算AI 3.2.0實戰評測:10分鐘搭建企業級RBAC權限系統

飛算AI 3.2.0實戰評測:10分鐘搭建企業級RBAC權限系統 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個特性都…

事務的四大特性

事務(Transaction)是數據庫管理系統(DBMS)中用于保證數據操作正確性和一致性的核心機制。事務的特性通常用 ACID 四個字母概括,分別代表 原子性(Atomicity)、一致性(Consistency&…

WIN11系統下Open3D 0.19.0支持GPU的python版本

前往Open 3D官網下載https://github.com/isl-org/Open3D下載對應版本的源碼。 根據官方手冊利用cmake進行編譯&安裝,其中需要修改一些代碼適應于win 11系統,編譯時間較長需要耐心等待。最后,安裝結果如下圖,搞了四天&#xff…

ICCV 2025 | 4相機干掉480機位?CMU MonoFusion高斯潑濺重構4D人體!

???? 近日,卡內基梅隆大學(Carnegie Mellon University)的研究團隊在動態場景重建領域取得重要進展。其發表于ICCV 2025的論文《MonoFusion: Sparse-View 4D Reconstruction via Monocular Fusion》提出創新方法MonoFusion 。該方法突破常…

ADB 無線調試連接(Windows + WSL 環境)

gradle wrapper --gradle-version 8.4 Windows WSL 成功連接 Android 設備(用于 ./gradlew installDebug)的完整過程總結:? ADB 無線調試連接過程(Windows WSL 環境) 📌 目標:從 WSL 中通過 …