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


目的


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


成果:


Arduino Code:

  1. int micPin = A0; //麥克風輸入
  2. int micVal = 0; //麥克風獨到的音量
  3. byte index = 0; //七段顯示器
  4.  
  5. const byte LEDs[10] = { // 七段顯示器設定
  6. B1111110,
  7. B0110000,
  8. B1101101,
  9. B1111001,
  10. B0110011,
  11. B1011011,
  12. B1011111,
  13. B1110000,
  14. B1111111,
  15. B1111011
  16. };
  17.  
  18. void setup() {
  19. DDRD = B11111111;
  20. pinMode(8, INPUT);
  21. }
  22.  
  23. void loop() {
  24. micVal = analogRead(micPin);
  25. boolean now = digitalRead(8); //開關輸入
  26. PORTD = LEDs[index];
  27. if (now == HIGH) {
  28. Serial.println("damn");
  29. index = 0; //開關判斷,按下去歸0
  30. delay(500);
  31. }
  32. if (micVal >= 300) //當收到大於200的輸入
  33. {
  34. Serial.println(micVal); //輸出收到的聲音
  35. index++; //收到訊號七段顯示器+1
  36. Serial.println(index);
  37. if (index == 10) {
  38. index = 0; //七段顯示器跑到10歸零
  39. }
  40. delay(500);
  41. }
  42. PORTD = LEDs[index];
  43. }

留言