본문 바로가기

프로그래밍/Arduino

미니 디지털 피아노

  1. 준비물
    - piezo 스피커 1개
    - 버튼스위치 3개
    - 10 저항 3개


  2. 코드
  3. //input Pin 배열
    int inputArr[] = {2, 3, 4};
    int inputArrSize = sizeof(inputArr)/sizeof(int);
    
    //음 배열
    int soundArr[] = {262, 294, 330};
    int soundArrSize = sizeof(soundArr)/sizeof(int);
    
    //piezo 출력 핀
    const int outputPiezoPin = 8;
    
    void setup() {
      for(int i=0 ; i< inputArrSize ; i++) {
        pinMode(inputArr[i], INPUT);  
      }
    }
    
    void loop() {
      for(int i=0 ; i< soundArrSize ; i++) {
        if(digitalRead(inputArr[i]) == HIGH) {
          tone(outputPiezoPin, soundArr[i], 100);
          delay(100);
          noTone(outputPiezoPin);   
        }
      }
    }
    


  4. 영상


  5. 알게된 점
    - tone에서 정한 출력시간 만큼 delay를 해줘야 음이 겹치지 않고 충분히 출력(당연한얘기를..)