부품설명

자주 사용하는 부품들의 사용법에 대하여 알아봅니다.

PlayMelody 라이브러리 x 피에조

2015-05-06 11:57:11

개요

 

피에조 부저로 소리내기를 통해서 피에조에 대해서 알아보고, 각 음계의 주파수를 이용해 피에조로 소리내 보았습니다.

이번에는 PlayMelody라이브러리를 사용하여 음정, 박자를 더 정확하게 멜로디를 표현해 보겠습니다.

PlayMelody에 대해 문제가 발생하시거나, 라이브러리에 대해 자세하게 알아보실려면 라이브러리 제작자 홈페이지에서 확인해 보시기 바랍니다.

 

 

 

부품 목록

NO 부품명 수량 상세설명
1 오렌지 보드 1  
2 피에조 부저 1  
3 버튼 1  
4 브레드보드 1  
5 점퍼케이블 5  

 

부품명 오렌지 보드 피에조 부저 버튼 브레드보드 점퍼케이블
파트

 

 

 

하드웨어 Making

 

브레드보드

 

전자 회로도

 

 

소프트웨어 Coding

 

소프트웨어 코드

 * 밑의 코드를 사용할려면 PlayMelody 라이브러리가 필요합니다. 이 라이브러리는 링크에서 다운받으실 수 있습니다.

 * 라이브러리 사용법은 Arduino 라이브러리를 참고하시기 바랍니다.

#include <PlayMelody.h>  // PlayMelody라이브러리를 호출합니다.

int speakerPin = 10 ; // 피에조를 10번핀에 연결합니다.
int inPin = 2 ;      // 버튼은 2번핀에 연결합니다.

void setup()
{
  pinMode(inPin, INPUT_PULLUP) ; // 버튼핀을 INPUT_PULLUP으로 설정해줍니다.
  pinMode(speakerPin,OUTPUT);  // 피에조핀를 출력으로 설정해줍니다.
}

void loop()
{
  if(digitalRead(inPin)==0)  // 버튼을 누르면 밑의 멜로디를 재생합니다.
  {
    PlayMelody(speakerPin, "l8ggaagge4ggeed4r4ggaagge4gedec4"); // 학교종이 땡땡땡
  }
}

 

 

소프트웨어 설명

PlayMelody(speakerPin, "l8ggaagge4ggeed4r4ggaagge4gedec4"); // 학교종이 땡땡땡

 

PlayMelody 라이브러리 사용법입니다.

 - PlayMelody(pin번호, 멜로디) / PlayMelody(pin번호, 멜로디, af)

 pin : 멜로디를 연주할 스피커가 연결된 디지털 핀 번호

 note : 연주를 위한 음표 기호로 구성된 문자

  C : 도

  D : 레

  E : 미

  F : 파

  G : 솔

  A : 라

  B : 시

  #, + : 반음 올린다.

  $, - : 반음 내린다.

  R, P : 쉼표

  > : 한 옥타브 올린다.

  < : 한 옥타브 내린다.

  0 : 이어서 나오는 수치로 지정한 옥타브를 선택한다.(초기값은 4)

  T : 이어서 나오는 수치로 지정한 속도로 연주한다.(초기값은 120)

  L : 이어서 나오는 수치로 음표나 쉼표의 길이를 지정한다. (초기값은 4)

    : 음표나 쉼표의 길이를 1.5배 늘린다.

  af : 멜로디를 계속 연주할지를 알려주는 함수의 포인터. 이함수의 리턴 값이 false이면 더 이상 멜로디를 연주하지 않는다.

     : 이 함수는 각 음표마다 호출된다.

 

멜로디 부분에 위에 notes에 맞게 문자열을 넣어주신 후 실행 하면 해당 멜로디에 맞게 연주합니다. 위 코드에 넣은 멜로디는 학교종이 땡땡땡 멜로디 입니다.("l8ggaagge4ggeed4r4ggaagge4gedec4")

af는 각 음표마다 af에 넣은 함수를 호출하여 리턴값이 false일 경우 멜로디 연주를 멈춥니다.

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

피에조 부저, 아두이노, 오렌지보드

정주광 2016-01-21 15:06:20

안녕하세요? 어제 오렌지 보드를 택배로 받고서 여기 사이트를 참조하여 이것 저것 해보는 중인데요, 위의 예제의 경우 회로도와 프로그램 소스 상의 핀 배치가 일부 일치하지 않아 위의 내용대로 실험을 진행하면 소리가 나지 않습니다. 회로도 상에서는 피에조 부저가 D10에 연결되어 있지만, 프로그램 상에서는 D9에 연결되어 있거든요. 확인 한 번 부탁드리겠습니다. 그리고, 사이트가 유용한 정보들로 짜임새 있게 잘 정리되어 있네요. 앞으로 잘 참조하겠습니다. 수고하십시오~ ^^

kocoafab 2019-01-08 09:32:27

감사합니다. 정주광님

소스코드를 D9 -> D10 으로 수정하였습니다.