Arduino - 聲音控制七段顯示器 (MIC + Counter + Seven-segment display)


目的


以拍手作為輸入,將次數顯示於7段式顯示器,0~9間做循環,並有開關作為RESET用。


成果:


Arduino Code:

int micPin = A0; //麥克風輸入
int micVal = 0; //麥克風獨到的音量
byte index = 0; //七段顯示器

const byte LEDs[10] = { // 七段顯示器設定
    B1111110,
    B0110000,
    B1101101,
    B1111001,
    B0110011,
    B1011011,
    B1011111,
    B1110000,
    B1111111,
    B1111011
};

void setup() {
    DDRD = B11111111;
    pinMode(8, INPUT);
}

void loop() {
    micVal = analogRead(micPin);
    boolean now = digitalRead(8); //開關輸入
    PORTD = LEDs[index];
    if (now == HIGH) {
        Serial.println("damn");
        index = 0; //開關判斷,按下去歸0   
        delay(500);
    }
    if (micVal >= 300) //當收到大於200的輸入
    {
        Serial.println(micVal); //輸出收到的聲音
        index++; //收到訊號七段顯示器+1
        Serial.println(index);
        if (index == 10) {
            index = 0; //七段顯示器跑到10歸零
        }
        delay(500);
    }
    PORTD = LEDs[index];
}

留言