[아두이노 강좌] 19. 아날로그 신호 PWM 출력하기(3) / 부저를 활용한 미니 피아노 만들기 / 엔트리 피아노 만들기

  음계.zip 695.2K 35 3년전

dd8457f7720c52a9512181cc3c4d2350_1462714
 

 

dd8457f7720c52a9512181cc3c4d2350_1462714 개요

 

자.. 이전 강좌를 통해 PWM 출력 tone()함수를 통한 주파수 출력에 대해 알아봤습니다.

이번 글에서는 앞서 배운 내용들을 바탕으로 부저를 활용한 미니 피아노를 만들어볼게요.

 

dd8457f7720c52a9512181cc3c4d2350_1462714

 


dd8457f7720c52a9512181cc3c4d2350_1462714 초간단 미니 피아노 만들기

 

준비물은.. 중형버튼과 10K저항을 각각 8개씩 챙겨주시고, 부저도 챙겨주세요.

아두이노와 전선은 당연히 챙겨주세요! 아래 사진은 회로도입니다.


9d6aa994ad678d183367fe665f545fec_1472209


원리는 다 앞에서 배운 내용들이에요.. ^^ 버튼을 눌러 디지털 신호가 입력되면 부저에

설정 주파수를 입력하여 소리를 출력한다! 코드를 살펴볼까요?

 

void setup() {   

pinMode(3, OUTPUT);  // 디지털 3번핀을 출력모드로 설정.                   

pinMode(6, INPUT);  // 디지털 6번핀을 입력모드로 설정.

pinMode(7, INPUT);  // 디지털 7번핀을 입력모드로 설정. 

pinMode(8, INPUT);  // 디지털 8번핀을 입력모드로 설정. 

pinMode(9, INPUT);  // 디지털 9번핀을 입력모드로 설정. 

pinMode(10, INPUT);  // 디지털 10번핀을 입력모드로 설정. 

pinMode(11, INPUT);  // 디지털 11번핀을 입력모드로 설정. 

pinMode(12, INPUT);  // 디지털 12번핀을 입력모드로 설정. 

pinMode(13, INPUT);  // 디지털 13번핀을 입력모드로 설정. 

}

 

void loop() {

if (digitalRead(13) == HIGH) {    // 만약 13번핀에 HIGH신호가 입력되면

tone (3, 361.6);             // 3번핀에 주파수 신호 361.6을 출력

}

else if (digitalRead(12) == HIGH) {   // 그게아니라 12번에 HIGH 신호가 입력되면

tone (3, 393.7);            // 3번핀에 주파수 신호 393.7을 출력

}

else if (digitalRead(11) == HIGH) {      // 이하 생략

tone (3, 329.6);

}

else if (digitalRead(10) == HIGH) {

tone (3, 349.2);

}

else if (digitalRead(9) == HIGH) {

tone (3, 392.0);

}

else if (digitalRead(8) == HIGH) {

tone (3, 440.0);

}

else if (digitalRead(7) == HIGH) {

tone (3, 493.9);

}

else if (digitalRead(6) == HIGH) {

tone (3, 523.0);

}

}

 

코드를 업로드하고 버튼을 누르면 각각 도,레,미,파,솔,라,시,도 소리를 냅니다..!

 

 

 

---------------------------------------------------------------------------------------------------------------- 

 

2016. 08. 26 UPDATE

 

엔트리를 활용하여 전자 피아노 만들기

 

엔트리는 누구나 쉽게 사용할 수 있는 프로그래밍 교육용 도구입니다.

엔트리를 활용하여 아두이노를 활용한 전자 피아노를 만들보도록 합시다.

먼저 아래의 링크를 클릭하여 엔트리에 대해 자세히 알아보도록 합니다.


엔트리란?


전체 과정은 다음과 같습니다.


1. 아두이노 피아노 하드웨어 조립하기.

2. 엔트리로 코딩하여 프로그램 만들기.


준비물

아크릴 프레임 세트 X 1

아두이노 우노 X 1

푸시버튼 X 8

10k옴 저항 X 8

5V 부저 X 1

MF 점퍼선 X 2

MM 점퍼선 X 다수

830핀 브레드보드 X 1

볼트, 너트, 드라이버

 

9d6aa994ad678d183367fe665f545fec_1472439


아래의 과정을 통해 한단계씩 진행해보도록 합시다.


1. 아두이노 피아노 하드웨어 조립하기.

9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439
9d6aa994ad678d183367fe665f545fec_1472439

9d6aa994ad678d183367fe665f545fec_1472209

 

 


 

2. 엔트리 프로그램 만들기 

엔트리(http://play-entry.org/)를 실행하고, 전자피아노 프로그램을 만들어봅시다.

9d6aa994ad678d183367fe665f545fec_1472439


 

 

먼저 아래의 과정을 통해 피아노 소리로 사용할 음계(도, 레, 미, 파, 솔, 라, 시, 도)를 
추가해주도록 합니다. (엔트리는 기본적으로 소리 파일을 지원하긴 하지만 솔, 라, 시, 
도는 지원을 하지 않으므로.. 소리 파일을 다운로드 받아 업로드 시켜주도록 합니다.)

9d6aa994ad678d183367fe665f545fec_1472440 

이 글 맨~위에서 첨부된 음계파일을 다운로드 받은 후 압축을 풀어줍니다.  

 

 

9d6aa994ad678d183367fe665f545fec_1472440 

소리 - 소리추가를 통해 다운로드 받은 소리파일을 업로드해줍니다. 

 

9d6aa994ad678d183367fe665f545fec_1472440
 

 

소리를 추가한 후 엔트리와 아두이노를 연결하기 위해 아래의 글을 참고합니다.

 

엔트리 x 아두이노 연결하기 클릭

 

 

엔트리x아두이노 연결 후  블록(코드)을 조립해줍니다.

9d6aa994ad678d183367fe665f545fec_1472441

 

아래의 코드를 참고하여 블록을 조립한 후 푸시버튼을 눌러보세요.

9d6aa994ad678d183367fe665f545fec_1472440 

추가 설명에 대한 내용은 아래의 블로그 글을 참고해주세요.

http://blog.naver.com/roboholic84/220637945874 

9d6aa994ad678d183367fe665f545fec_1472441
 

▶아래 플러스 친구 버튼을 통해 다양한 정보와 교제 자료 및 이벤트등의 소식을 받아보실 수 있습니다.



기무띵 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2016-11-18 (금) 20:05 3년전
계속 삐이이이이익거리고 제대로 되지 않습니다. 이유를 모르겠네요
주소
     
     
라임 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2016-11-28 (월) 22:05 2년전
비슷한 내용으로 문의를 주시는분을은 대부분 회로가 문제였습니다.

정확한건 테스트를 받아보셔야할듯..!
주소
zanque 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2017-08-04 (금) 10:58 2년전
tone (3, 329.6); 에서 주파수 다음에 ',100'을 추가하면 0.1초동안만 음이 나와 깔끔합니다.(비프음 0.1s지속 후 중단)
예) tone (3, 329.6,100);
주소

모바일 버전으로 보기