[아두이노 강좌] 18. 아날로그 신호 PWM 출력하기(2) / 부저로 배경음악 재생하기 / 주파수 출력 / tone(), noTone()
개요
아두이노는 PWM 출력의 원리를 이용하여 주파수(소리의 파장)를 전기신호로 출력할 수 있습니다. 이를 이용하면 스피커를 통해 원하는 소리를 출력할 수 있으며, 관련된 프로젝트를 진행할 수 있습니다. 우리는 간단한 배경음악을 만들고 부저 스피커를 통해 배경음악을 재생(출력)해보도록 하겠습니다.
부저 스피커
부저는 크게 2가지, 능동부저와 수동부저로 나뉘어집니다. 능동부저는 전압만 인가하면 소리를 내며 작동하고, 수동부저는 이와 별개로 주파수 관련 프로그램이 있어야 소리를 냅니다. 능동부저도 프로그램으로 재생되긴하나 소리가 겹치는 부분이 있어 수동부저에 비해 소리가 매끄럽지 못합니다. 우리 매뉴얼에 포함된 부저는 능동부저이며, 앞선 예제에서 사용해봤듯 5V를 인가시키면 소리를 내며 작동합니다. 이번글에서는 이 부저에 tone()이라는 주파수 함수를 통해 배경 음악 프로그램을 만들고 재생시켜도록 하겠습니다. 배경음악 재생하기
tone()함수를 통해 배경음악을 만들고, 아두이노와 부저를 연결하여 이를 재생시켜봅시다. 아래의 표는 주파수에 따른 소리의 높낮이를 나타내는 표입니다.
준비물
회로도 연결 부저를 디지털 3번(PWM)핀에 연결해주세요. 프로그램 코드 (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초동안 출력한다. } 관련 함수 정리하기 ■tone(핀번호, 주파수) 또는 tone(핀번호, 주파수, 출력시간) 주파수 신호를 출력하여 소리를 설정하기 위한 함수입니다. 매개변수 핀번호 - 주파수 신호를 출력할 핀번호를 설정합니다.(PWM핀) 주파수 - 31~65535 범위의 주파수(Hz)를 설정합니다. 출력시간 - 밀리초단위(1000당 1초)입력, 얼마동안 주파수를 출력할지 설정합니다. ■noTone() 주파수 신호 출력을 중지하기 위한 함수입니다.
배경음악에 대해서는 추후 추가하도록 하겠습니다. ^^
링크바로가기: https://smartstore.naver.com/mechasolution_com/products/2855891646
|