用户可以从串口输入一个在1-255的数字,然后在D9上输出对应的占空比,PWM 频率是 62.5KHz。
需要注意:如果需要输出全低或者全高需要修改代码。
// Leonardo 测试,在 D9 上输出从串口给定的PWM 值
void setup() {
Serial.begin(115200);
/* Set speakers as outputs */
DDRB |= ((1 << 6) | (1 << 5));
/* PWM speaker timer initialization */
TCCR1A = ((1 << WGM10) | (1 << COM1A1) | (1 << COM1A0)
| (1 << COM1B1) | (1 << COM1B0)); // Set on match, clear on TOP
TCCR1B = ((1 << WGM12) | (1 << CS10)); // Fast 8-Bit PWM, F_CPU speed
}
void loop() {
if (Serial.available() > 0) {
//读取一个整数
int Value = Serial.parseInt();
Serial.print("Get:");
Serial.println(Value);
if (Value > 255)||(Value==0) {
Serial.println("Please input a 0<number<256");
} else {
OCR1A = Value;
}
}
}