介绍
使用光线传感器的值的变化.PWM控制蜂鸣器发出有趣的声音
准备材料
连接
程序编写
int photopin = 12; // 光敏传感器连接引脚定义
int photValue; // 光敏电阻读数
int buzzerPin = 4; // 蜂鸣器引脚定义
long buzzerFreq; // 蜂鸣器频率
// 调整这些值发出不同的声音变化:
long buzzMAX = 2500; // 蜂鸣器最大频率
long photoMAX = 1023; //光线传感器最大值
void setup() {
pinMode(buzzerPin, OUTPUT); // 设置蜂鸣器为输出模式
}
void loop() {
// 读取光线传感器的值
photValue = analogRead(photopin); // 0-1023
// 将光线传感器的值转化为蜂鸣器的频率
buzzerFreq = (photValue * buzzMAX) / photoMAX;
buzz(buzzerPin, buzzerFreq, 10);
}
void buzz(int targetPin, long frequency, long length) {
long delayValue = 1000000 / frequency / 2;
long numCycles = frequency * length / 1000;
for (long i = 0; i < numCycles; i++) {
digitalWrite(targetPin, HIGH);
delayMicroseconds(delayValue);
digitalWrite(targetPin, LOW);
delayMicroseconds(delayValue);
}
}
ESP32Arduino学习(二).魔法音效
Have fun!