跳到主要内容

四、PWM蜂鸣器/电机/LED灯实验

4.1 实验原理简介

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控控制的一种非常有效的技术。

PWM两个关键概念:1:周期,2:占空比。

周期:例如一秒钟发送一千个方波,那么这个方波的周期就是1ms。

占空比:例如对于一个1ms的方波而言,如果占空比为0,实质上是就没有波形,如果占空比为50%,那就是一个输出高电平500us,低电平500us的方波。如果占空比为100%,那么就相当于一直输出3.3V,实际上不是方波,就是一个高电平信号。

PWM_dur

本实验通过实现PWM信号的输出,让开发者可以通过跳线帽来选择PWM信号控制Led灯、3610振动电机、蜂鸣器。

4.2 硬件设计

LED_PWM

3610电机属于扁平振动马达,使用电压为1.5V~5.0V之间,额定电流0.05A,设计原理图如下:

3610

无源蜂鸣器工作电压为2~5V,其工作频率为2700HZ。设计原理图如下:

buzzer

4.3 软件设计

--配置D0口为PWM功能,参数370表示PWM的周期为370us,参数1表示高电平有效
LIB_PwmConfig1(370,1)
--更新D0口的PWM输出占空比为0
LIB_PwmUpdate1(0)
cnt = 0
while(GC(1) == true)
do
--每50毫秒更新一次PWM占空值
LIB_DelayMs(50)
cnt = cnt + 5
LIB_PwmUpdate1(cnt)
if cnt >= 370 then
cnt = 0
end
end

4.4 实验现象

当跳线帽将D0与LED端口连接起来之后,程序会控制LED由亮变暗循环往复。

LED_PWM2

当跳线帽将D0与BUZ蜂鸣器端口连接起来之后,程序会控制蜂鸣器的声响。

BUZ_PWM

当跳线帽将D0与MOT端口连接起来之后,程序会控制马达转动速度的快慢变化。

MOT_PWM