|

楼主 |
发表于 2024-4-29 09:54:50
|
显示全部楼层
const int outputPin = 11; // 选择一个 GPIO 引脚
int frequency = 1000; // 初始方波频率
int dutyCycle = 50; // 初始占空比
const int buttonPin1 = 2; // 第一个按键引脚
const int buttonPin2 = 3; // 第二个按键引脚
const int buttonPin3 = 4; // 第三个按键引脚
const int buttonPin4 = 5; // 第四个按键引脚
void setup() {
pinMode(outputPin, OUTPUT); // 初始化 GPIO 引脚
pinMode(buttonPin1, INPUT); // 初始化按键引脚
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
tone(outputPin, frequency, dutyCycle); // 生成方波信号
}
void loop() {
// 改变频率和占空比
if (digitalRead(buttonPin1) == HIGH) {
frequency += 100; // 每次按下按键1,增加100Hz的频率
}
if (digitalRead(buttonPin2) == HIGH) {
dutyCycle = (dutyCycle + 10) % 100; // 每次按下按键2,增加10%的占空比
}
if (digitalRead(buttonPin3) == HIGH) {
frequency -= 100; // 每次按下按键3,减少100Hz的频率
}
if (digitalRead(buttonPin4) == HIGH) {
dutyCycle = (dutyCycle - 10 + 100) % 100; // 每次按下按键4,减少10%的占空比
}
tone(outputPin, frequency, dutyCycle); // 更新方波信号的频率和占空比
}
|
|