반응형
안녕하세요. 메카럽입니다.
이번 포스팅에서는 부저와 멜로디 재생에 대해 알아보도록 하겠습니다.
부저는 전압이 인가되면 진동을 일으키는 압전 소자로 만들어져 있습니다. 부저는 시내버스의 하차벨과 같이 우리 주변에서 쉽게 찾아볼 수 있습니다. 아두이노의 PWM 신호로 이 소리를 제어할 수 있는데, tone( ) 함수를 사용해서 부저의 주파수를 조정, 단순한 삐-소리를 멜로디로 만들어 낼 수 있습니다.
준비물 : 아두이노 우노, 부저, 점퍼선 |
부저는 PWM 포트와 tone( ) 함수를 이용해 멜로디를 만드는데, 아래와 같이 사용합니다.
tone (핀 번호, 주파수) |
tone( ) 함수는 noTone( ) 함수를 사용하지 않으면 해당 음이 지속됩니다. 그래서 noTone(핀번호) 함수를 배치하여 음을 끊어주는 작업이 필요합니다.
noTone(핀 번호) |
아래에 옥타브와 음계별 표준 주파수를 나타내었습니다. 표 내에 있는 주파수를 tone( 0 함수에 입력하면 해당 옥타브에서의 음이 출력됨을 확인할 수 있습니다.
옥타브 음계 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
C(도) | 32.7032 | 65.4064 | 130.8128 | 261.6256 | 523.2511 | 1046.502 | 2093.005 | 4186.009 |
C# | 34.6478 | 69.2957 | 138.5913 | 277.1826 | 554.3653 | 1108.731 | 2217.461 | 4434.922 |
D(레) | 36.7081 | 73.4162 | 146.8324 | 293.6648 | 587.3295 | 1174.659 | 2349.318 | 4698.636 |
D# | 38.8909 | 77.7817 | 155.5635 | 311.1270 | 622.2540 | 1244.508 | 2489.016 | 4978.032 |
E(미) | 41.2034 | 82.4069 | 164.8138 | 329.6276 | 659.2551 | 1318.510 | 2637.020 | 5274.041 |
F(파) | 43.6535 | 87.3071 | 174.6141 | 349.2282 | 698.4565 | 1396.913 | 2793.826 | 5587.652 |
F# | 46.2493 | 92.4986 | 184.9972 | 369.9944 | 739.9888 | 1479.978 | 2959.955 | 5919.911 |
G(솔) | 48.9994 | 97.9989 | 195.9977 | 391.9954 | 783.9909 | 1567.982 | 3135.963 | 6271.927 |
G# | 51.913 | 103.8262 | 207.6523 | 415.3047 | 830.6094 | 1661.219 | 3322.438 | 6644.875 |
A(라) | 55.0000 | 110.0000 | 220.0000 | 440.0000 | 880.0000 | 1760.000 | 3520.000 | 7040.000 |
A# | 58.2705 | 116.5409 | 233.0819 | 466.1638 | 932.3275 | 1864.655 | 3729.310 | 7458.620 |
B(시) | 61.7354 | 123.4708 | 246.9417 | 493.8833 | 987.7666 | 1975.533 | 3951.066 | 7902.133 |
다음은 tone( ) 함수와 noTone( ) 함수를 사용하여 부저로 도레미파를 출력하는 스케치입니다. 주파수와 지연시간을 조정하여 원하는 멜로디를 재생시켜보겠습니다.
void setup( ) { pinMode(3, OUTPUT); } void loop( ) { tone(3, 261.6); delay(300); noTone(3); delay(300); tone(3, 311.1); delay(300); noTone(3); delay(300); tone(3, 329.6); delay(300); noTone(3); delay(300); tone(3, 349.2); delay(300); noTone(3); delay(300); } |
"도레미파" 음계이지만 그리 명확하게 들리지는 않습니다. 그래도 미세하게 차이는 있는 것 같다는 느낌은 받습니다.
이번 포스팅에서는 부저와 음계출력에 대해 알아보았습니다. 이번 내용은 그리 어렵지 않은 내용이라 재미있게 실습을 해보았습니다. 다음 포스팅에서는 스피커와 MP3재생에 대해 알아보도록 하겠습니다. 오늘 하루도 행복하세요.
728x90
반응형
'3D프린터와 아두이노 > 아두이노' 카테고리의 다른 글
아두이노 세븐-세그먼트에 대해 (8) | 2020.10.08 |
---|---|
아두이노에서 스피커와 MP3재생 (12) | 2020.10.07 |
아두이노 서보모터에 대해서 (4) | 2020.10.05 |
analogWrite( ) 함수와 PWM제어 (4) | 2020.09.29 |
아두이노 모터 드라이버 (H-bridge 회로 구성 및 모터 드리이버와 주변 구성) (10) | 2020.09.28 |