天天看點

ESP32Arduino學習(二).魔法音效

介紹

使用光線傳感器的值的變化.PWM控制蜂鳴器發出有趣的聲音

準備材料

  1. QHC02-ESP32主要闆
  2. C01光線聲音傳感器
  3. 連接配接線

連接配接

ESP32Arduino學習(二).魔法音效

程式編寫

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!

繼續閱讀