마이컴으로 buzzer 를 컨트롤 해서, 도레미파 소리 내게 하기? 어떻게 하나요?

freezm7의 이미지

PC 기반 작업을 위주로 하다가...

이번에 회사에서 warming up 하라고 내준 과제가 있는데요,

PIC 마이컴으로 piezo buzzer 를 컨트롤 해야 해요.. 근데 piezo buzzer 는 뭐 모델이 뭔지 이런거 모르겠네요...

데모 보드에 달려 있는건데, 데모 보드는 PICDEM 2 PLUS (http://www.neochip.co.kr/index_item_view.html?pgCode=000953-000368) 이거구요...

구글링해도 잘 안나오는데.... 도레미를 BUZZER로 만들어 낼수 있긴 한거가요?

지금 소녀시대 Gee 를 한번 소리내게 해볼까 하는데요 ㅎㅎ

도움 좀 부탁드립니다.

ktd2004의 이미지

예전에 제가 재미로 했었던 거네요..
(기억이 가물가물해서 틀린 내용이 많을 것 같네요..)

* 일단 Micom에서 신호를 On/Off했을 때, buzzer에서 소리가 나는지 확인한다.
* On-Off-On-Off 여기서 On-Off까지가 1초에 몇번 발생하는지가 주파수입니다.
* 제 기억으로는 도가 아마 440hz 정도였을 것 같네요.
* 따라서 "도"를 소리를 낼려면, On/Off를 1초동안 440번 정도 하면 "도"가 됩니다.
* 마찬가지로, "레"는 아마 880hz 정도.

이런식으로 도~시까지를 buzzer로 낼 수 있습니다.

꼭 성공하시길 빌겠습니다. ^^;

snowall의 이미지

보충하자면, "도"에서 그 위의 "도"까지가 진동수가 2배가 됩니다. 그리고 그 사이의 반음마다 2의 12제곱근씩을 곱한 진동수만큼 올려주면 됩니다.

--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

grassman의 이미지

440Hz는 4옥타브 '라'(가온다) 음입니다. 440 * 2 ^ ((음계 - 5) / 7) 값이 원하는 음계값이 됩니다. (반음 제외, 도 = 0 으로 설정할 경우) 옥타브가 올라갈 경우 한 옥타브당 7씩 더하면 됩니다.