2025年7月2日 星期三

4-6.ARDUINO C 程式學習篇-麥克風

 4-6.ARDUINO C 程式學習篇-麥克風

4-6. 麥克風(4)

 

4

void setup() {

  Serial.begin(9600);

 

  // D2~D9 設定為輸出腳位

  for (int pin = 2; pin <= 9; pin++) {

    pinMode(pin, OUTPUT);

    digitalWrite(pin, LOW); // 開機時全部熄滅

  }

}

void loop() {

  int sensorValue = analogRead(A0);  // 讀取 A0 聲音感測數值

  Serial.println(sensorValue);

  // 設定最低門檻值,低於此值不點燈

  int threshold = 660;

  if (sensorValue < threshold) {

    // 聲音太小,全部燈關閉

    for (int i = 2; i <= 9; i++) {

      digitalWrite(i, LOW);

    }

  } else {

    // 將聲音數值轉成 1~8 LED 數量

    int level = map(sensorValue, threshold, 690, 1, 8); // 至少亮 1 顆,最多 8

    level = constrain(level, 1, 8);

 

    for (int i = 0; i < 8; i++) {

      digitalWrite(2 + i, (i < level) ? HIGH : LOW);

    }

  }

  delay(30);  // 30ms 更新一次

}

沒有留言:

張貼留言