Arduino 输出正弦波
时间: 2023-08-13 15:52:25 浏览: 184
要在Arduino上输出正弦波,你可以使用PWM(脉冲宽度调制)技术和一个RC滤波电路。下面是一个简单的示例代码:
```arduino
const int outputPin = 9; // 设置输出引脚
const int frequency = 1000; // 设置正弦波频率(Hz)
const int resolution = 256; // 设置PWM分辨率
void setup() {
pinMode(outputPin, OUTPUT);
TCCR1A = _BV(COM1A1) | _BV(WGM10); // 设置PWM模式
TCCR1B = _BV(CS10) | _BV(WGM12); // 设置PWM时钟源和分频
OCR1A = resolution / 2; // 设置初始占空比
}
void loop() {
int sineValue = map(sin(millis() * 2 * PI * frequency / 1000), -1, 1, 0, resolution); // 计算正弦波值
analogWrite(outputPin, sineValue); // 输出PWM信号
delay(1); // 延迟一段时间
}
```
该代码使用Arduino的定时器1(Timer 1)和PWM功能来生成正弦波。你可以将输出引脚连接到一个RC滤波电路(使用电容和电阻),以获得平滑的正弦波形。
请注意,Arduino的PWM分辨率为8位(0-255),所以在示例代码中,使用了256个步骤来近似一个完整的正弦波周期。你可以根据需要调整频率和分辨率。
阅读全文