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 更新一次
}
沒有留言:
張貼留言