介紹
使用光線傳感器的值的變化.PWM控制蜂鳴器發出有趣的聲音
準備材料
- QHC02-ESP32主要闆
- C01光線聲音傳感器
- 連接配接線
連接配接
程式編寫
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!