首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三行代码实现有源和无源蜂鸣器控制(FlexLua低代码单片机)

有源和无源蜂鸣器控制

本文基于 FlexLua 低代码单片机技术,无需复杂单片机C语言开发。即使新手也可很容易用FlexLua零门槛开发各种功能丰富稳定可靠的 IoT 硬件,更多学习教程可参考 FlexLua 官网。

一、有源蜂鸣器和无源蜂鸣器

区别: 有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,也是因为里面多了一个震荡源的原因。

二者对比:

| | 有源蜂鸣器 | 无源蜂鸣器 |

| 控制方式 | 简单,通过电平方式即可控制 | 稍复杂,需要通过2-5Khz的方波控制 |

| 灵活性 | 只能控制蜂鸣器叫或不叫,只有一个单音 | 声音频率大小灵活可控 |

二、有源蜂鸣器控制例程

有源蜂鸣器的控制很简单,直接给高低电平即可控制。

假设以下程序用的是低电平触发的蜂鸣器,且蜂鸣器的控制引脚接Core的“D0”端口:

--配置D1为普通输出

LIB_GpioOutputConfig("D0","STANDARD")

LIB_GpioWrite("D0",0)--让蜂鸣器开始鸣叫

--开始大循环

while(GC(1) == true)

do

--if something == true then

--LIB_GpioWrite("D0",1)--如果某些条件满足后,关闭蜂鸣器

--end

end

三、无源蜂鸣器控制例程

无源蜂鸣器的控制需要一个2-5Khz的方波,我们可以利用Core的PWM功能来实现。

假设以下程序用的是低电平触发的蜂鸣器,蜂鸣器的控制引脚接Core的“D1”端口,通过程序给蜂鸣器一个2.5Khz,占空比为50%来控制蜂鸣器鸣叫。

--配置D0端口为PWM功能,参数400表示PWM是周期400us(2.5Khz),参数0表示PWM低电平有效

LIB_PwmConfig1(400,0)

--更新D0口的PWM输出占空比为50%

LIB_PwmUpdate1(200)--让蜂鸣器开始鸣叫

--开始大循环

while(GC(1) == true)

do

--if something == true then

--LIB_PwmUpdate1(0)--如果某些条件满足后,关闭蜂鸣器

--end

end

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OR31NjPx6ZATMSMxMA65D-NQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券