PWM 实例

LinkNode上没有提供DAC的功能,所以用PWM来实现模拟的输出。

本例通过PWM的方式来实现对Buzzer,使其播出一段旋律。

硬件清单

  1. LinkNode
  2. Micro USB 数据

步骤

1. 编写程序

  • 打开mbed在线编译器,创建新程序,或在上一个实例的基础上进行修改
  • 编译并生成hex文件
  • PC接上LinkNode,将生成的hex文件复制到识别的系统磁盘中
  • 完成下载后,按一次板上的RESET键对程序进行复位
  • 蜂鸣器会发出一段旋律。

软件清单

#include "mbed.h"
PwmOut buzzer(P0_22);

//频率数组
float frequency[]={659,554,659,554,440,494,554,587,494,659,554,440};
float beat[]={1,1,1,1,1,0.5,0.5,1,1,1,1,2}; //节拍数组

int main() {
    while (1) {
        for (int i=0;i<=11;i++) {
        buzzer.period(1/(2*frequency[i])); // 设置PWM周期
        buzzer=0.5; // 设置占空比
        wait(0.4*beat[i]); // 保持节拍周期
        }
    }
}