[아두이노 강좌] 18. 아날로그 신호 PWM 출력하기(2) / 부저로 배경음악 재생하기 / 주파수 출력 / tone(), noTone()

dd8457f7720c52a9512181cc3c4d2350_1462708
 

 

dd8457f7720c52a9512181cc3c4d2350_1462708 개요

 

아두이노는 PWM 출력의 원리를 이용하여 주파수(소리의 파장)를 전기신호로 출력할 

수 있습니다. 이를 이용하면 스피커를 통해 원하는 소리를 출력할 수 있으며, 관련된

프로젝트를 진행할 수 있습니다. 우리는 간단한 배경음악을 만들고 부저 스피커를 통해

배경음악을 재생(출력)해보도록 하겠습니다.

  

dd8457f7720c52a9512181cc3c4d2350_1462708
 

 

dd8457f7720c52a9512181cc3c4d2350_1462708 부저 스피커

 

부저는 크게 2가지, 능동부저와 수동부저로 나뉘어집니다. 능동부저는 전압만 인가하면 

소리를 내며 작동하고, 수동부저는 이와 별개로 주파수 관련 프로그램이 있어야 소리를 

냅니다. 능동부저도 프로그램으로 재생되긴하나 소리가 겹치는 부분이 있어 수동부저에

비해 소리가 매끄럽지 못합니다.


우리 매뉴얼에 포함된 부저는 능동부저이며, 앞선 예제에서 사용해봤듯 5V를 인가시키면 

소리를 내며 작동합니다. 이번글에서는 이 부저에 tone()이라는 주파수 함수를 통해 배경

음악 프로그램을 만들고 재생시켜도록 하겠습니다. 


dd8457f7720c52a9512181cc3c4d2350_1462708



dd8457f7720c52a9512181cc3c4d2350_1462708 배경음악 재생하기

 

tone()함수를 통해 배경음악을 만들고, 아두이노와 부저를 연결하여 이를 재생시켜봅시다. 

아래의 표는 주파수에 따른 소리의 높낮이를 나타내는 표입니다.

 

1677a8c5a4eef8487322f40a52ecdea4_1550446 

dd8457f7720c52a9512181cc3c4d2350_1462708

 

dd8457f7720c52a9512181cc3c4d2350_1462709 준비물

dd8457f7720c52a9512181cc3c4d2350_1462709 

dd8457f7720c52a9512181cc3c4d2350_1462709


dd8457f7720c52a9512181cc3c4d2350_1462709 회로도 연결
dd8457f7720c52a9512181cc3c4d2350_1462709

부저를 디지털 3번(PWM)핀에 연결해주세요.

dd8457f7720c52a9512181cc3c4d2350_1462709

dd8457f7720c52a9512181cc3c4d2350_1462709 프로그램 코드 (8)

void setup() {                      

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

}


void loop() {                                

tone(3, 261.6, 1000);  // 3번핀, 4옥타브 도를 1초동안 출력한다. 

tone(3, 329.7, 2000);  // 3번핀, 4옥타브 미를 2초동안 출력한다.

tone(3, 392.4, 1000);  // 3번핀, 4옥타브 솔를 1초동안 출력한다.

} 


dd8457f7720c52a9512181cc3c4d2350_1462709

dd8457f7720c52a9512181cc3c4d2350_1462709 관련 함수 정리하기


■tone(핀번호, 주파수) 또는 tone(핀번호, 주파수, 출력시간)

주파수 신호를 출력하여 소리를 설정하기 위한 함수입니다.

매개변수

핀번호 - 주파수 신호를 출력할 핀번호를 설정합니다.(PWM핀)

주파수 - 31~65535 범위의 주파수(Hz)를 설정합니다.

출력시간 - 밀리초단위(1000당 1초)입력, 얼마동안 주파수를 출력할지 설정합니다.


■noTone()

주파수 신호 출력을 중지하기 위한 함수입니다.

 

 

 

배경음악에 대해서는 추후 추가하도록 하겠습니다. ^^ 

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



wintergatan 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2019-02-18 (월) 02:36 8개월전
프로그렘 코드 void loop 3번째 줄 4옥타브 도 가 아니라 4옥타브 파 인것 같습니다!
주소
wintergatan 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2019-02-18 (월) 02:49 8개월전
그리고 표에서 4옥타브 라는 330이 아닌 440일 듯합니다!
주소
     
     
브랜든 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2019-02-18 (월) 08:35 8개월전
안녕하세요! 알려주신 정보에 약간의 문제점이 발견되어 바로 수정조치 하였습니다. 알려주셔서 감사합니다:D
주소

모바일 버전으로 보기