用代码写一个脉冲宽度调制信号
时间: 2023-05-27 19:03:00 浏览: 48
代码如下:
```
#include <Arduino.h>
int ledPin = 9; // 设置 LED 引脚
void setup()
{
pinMode(ledPin, OUTPUT); // 初始化 LED 为输出模式
}
void loop()
{
int dutyCycle = 50; // 设置占空比为 50%
int onTime = 5; // 设置打开时间为 5ms
int offTime = 5; // 设置关闭时间为 5ms
digitalWrite(ledPin, HIGH); // 将 LED 置为高电平
delay(onTime); // 等待打开时间
digitalWrite(ledPin, LOW); // 将 LED 置为低电平
delay(offTime); // 等待关闭时间
int totalPeriod = onTime + offTime; // 计算一个完整周期的时间
int onPeriod = (dutyCycle * totalPeriod) / 100; // 计算打开时间占整个周期的时间
int offPeriod = totalPeriod - onPeriod; // 计算关闭时间占整个周期的时间
delay(offPeriod); // 延迟关闭时间
}
```
代码中使用 `digitalWrite()` 函数控制 LED 的开关状态,使用 `delay()` 函数设置打开和关闭时间。在每个完整的周期内,计算脉冲的打开时间和关闭时间,并延迟关闭时间,以形成脉冲宽度调制信号。可以通过调整占空比、打开时间和关闭时间来改变脉冲宽度调制信号的特性,如脉宽、频率等。