555 타이머로 오르간 만들기 :: 종명이의 홈페이지 입니다.
Home Profile Utility Handcraft OX Quiz Board Photo GuestBook Favorite
  전기 자료 | 만들기 | 개조 하기 | 실험 노트 | 기타 실험



555 타이머로 오르간 만들기


1. 555 타이머 소개

 555 타이머를 이용한 organ 을 만들어 보자. 555 타이머는 1970 년에 개발되었는데, 값이 싸고 안정성이 높아서 현재도 많이 사용되고 있다. 흔히 전자공작을 처음 가르칠 때, 이 타이머가 주로 등장한다.



[그림 1 - 출처 : http://blog.makezine.com/archive/2006/10/more_555_timer_projects.html]

 그림 1 은 555 타이머의 내부 구조이다. VCC(+) 와 GND(-) 사이에는 동일한 크기의 저항이 3개가 직렬연결되어 있는데, 이 저항으로 분압을 한 전압을 내부 회로의 전압과 비교를 해서 원하는 동작을 하게 하는 원리이다. 초기에 만들어진 555 타이머는 5k 저항이 3개가 직렬로 연결되어 있어서 555 타이머라는 이름이 붙은 것 같다. 555 타이머는 전원과 GND 사이에 항상 저항이 연결되어 있으므로 소비전력이 큰 편이다.

 Threshold 나 Trigger 의 경우, 직렬연결된 3개의 저항 중간에서 끌어온 전압과 이 단자들의 전압을 비교하여 그 값 차이에 의하여 동작상태가 결정되는데 5번 단자(Voltage Control) 을 조절해서 이 값을 변경할수도 있다. Trigger 의 경우 전원전압의 1/3 과 비교하게 되고, Threshold 의 경우 전원 전압의 2/3 와 비교하게 된다.



[그림 2 - 출처 : http://hibp.ecse.rpi.edu/~connor/education/555-Timer_Animation.GIF]

 그림 2는 555 타이머가 동작되는 모습을 나타낸 애니메이션 이다. 555 타이머를 발진회로로 이용하기 위해서는 비안정 모드로 사용해야 한다. 비안정 모드로 사용하려면 VCC 와 7번 단자에 Ra 를 연결하고 7번과 6번 단자에 Rb 를 연결한다.
 그리고 6번(Threshold)과 2번(Trigger) 단자를 서로 연결한다. 그리고 이 연결된 단자에서 콘덴서를 연결하여 GND 에 연결한다.
 3번 단자는 출력이므로 LED 등을 연결한다. 전원전압보다는 다소 낮지만 200mA 정도까지 출력할 수 있으므로 LED 10 개 정도를 병렬로 연결해서 켤 수 있는 용량이다.
 동작 과정을 살펴보면 맨 처음 Ra 와 Rb 를 통해서 콘덴서가 충전된다. 충전이 진행되면 Trigger 와 Threshold 의 전압이 높아지는데, 전압이 높아지는 동안에는 3번 단자에서 출력이 나오게(HIGH 레벨) 된다.
 전압이 점점 높아져서 전원 전압의 2/3 를 넘게 되면 그 전압이 Threshold 에 가해져서 타이머를 정지시킨다.(LED OFF) 타이머가 정지되면 Discharge 단자의 전압은 GND 와 같아지게 되어 Rb 를 통해서 콘덴서의 방전이 진행된다. 방전이 점점 진행되다가 콘덴서의 전압이 전원 전압의 1/3 이하가 되면 Trigger 에 그 전압이 가해져서 다시 555 타이머를 동작시킨다다.(LED ON)
 콘덴서의 충전은 Ra + Rb 를 통하여 이루어지고, 콘덴서의 방전은 Rb 를 통해서 이루어지므로 555 타이머를 이용한 발진회로는 듀티 사이클(Duty Cycle; OFF 시간과 ON 시간의 비율)이 1:1 이 되지 않는다. 1:1 이 되게 하는 방법이 없는 것은 아니다.

 발진 주파수를 알아내는 식을 구하면 출력이 ON 인 시간은 콘덴서가 충전되는 시간이므로 t1 = 0.693 * (Ra + Rb) * C 가 되고, 출력이 OFF 인 시간은 콘덴서가 방전되는 시간이므로 t2 = 0.693 * Rb * C 가 된다. 한 주기는 ON 시간과 OFF 시간의 합 이므로 T = 0.693 * (Ra + 2Rb) * C 가 된다. (0.693은 상수)


2. 각 계이름의 주파수 구하기

 이제 555 타이머를 이용한 발진에 대해서 알았으므로 이 발진주파수를 계이름의 주파수로 맞추는 일이 필요하다. 계이름의 주파수는 "라" (A) 음을 기준으로 하여 맞춰지는데 이 "라" 음은 440Hz 이다. 보통 악기 조율을 할 때 "라" 음에 맞춰서 실시한다. 이유는 사람이 가장 민감하게 느끼는 주파수여서 그렇다고 전해진다.
 한 옥타브의 음은 도, 도#, 레, 레#, 미, 파, 파#, 솔, 솔#, 라, 라#, 시 의 12개의 음인데, 각 계이름의 주파수는 한 옥타브가 올라갈 때에는 2배가 되고, 한 옥타브 내려올 때에는 1/2 배가 된다. 각 계이름간에는 일정한 비율로 늘어나게 되는데, 12음 사이의 주파수 차이는 2배가 되므로 한 음계간은 21/12 의 차이를 가지게 된다. 사람이 어떤 현상을 느낄 때에는 로그함수적인 값으로 느끼게 되는데, 음량이나 빛의 밝기의 경우에도 마찬가지이다.
  21/12 의 값을 공학용 계산기로 구하면 1.0594630943592952645618252949463 이 나오게 되는데, 한 단계 낮은 계이름의 주파수를 구하려면 해당 값을 이 값으로 나누면 되고, 한 단계 높은 계이름의 주파수를 구하려면 이 값을 곱해주면 된다.
 기준 주파수인 440Hz 에 이 값을 곱하면 각 계이름의 주파수가 다음과 같이 구해진다.

도# 레# 파# 솔# 라#
262 277 294 311 330 349 370 392 415 440 466 494 524

 한 옥타브 높은 음계의 주파수는 2를 곱하면 되고, 한 옥타브 낮은 음계의 주파수는 2로 나누면 구할 수 있다. 이 홈페이지의 자료실에 있는 비프음 조절 프로그램을 이용하여 각 주파수들이 해당 계이름과 같은지 테스트해 볼 수 있다.
 555 타이머의 발진회로에서 발생하는 주파수는 주기(T) 의 역수가 된다. 따라서 555 타이머에서 해당 계이름의 주파수가 나오게 하려면 주기를 구하는 식의 분모와 분자를 바꾸면 된다.
 아래의 표는 실제 악기 조율시 기준이 되는 주파수이다. 수식을 이용하여 구한 주파수와 1~2Hz 정도 차이가 있을 수 있다.

옥타브 0 1 2 3 4 5 6 7 8
도(C) 16 33 65 131 262 523 1047 2093 4186
도#(C#) 17 35 69 139 278 554 1109 2218 4435
레(D) 18 37 73 147 294 587 1175 2349 4699
레#(D#) 20 39 78 156 311 622 1245 2489 4978
미(E) 21 41 82 165 330 659 1319 2637 5274
파(F) 22 44 87 175 349 699 1397 2794 5588
파#(F#) 23 46 93 185 370 740 1475 2960 5920
솔(G) 25 49 98 196 392 784 1568 3136 6272
솔#(G#) 26 52 104 208 415 831 1661 3322 6645
라(A) 28 55 110 220 440 880 1760 3520 7040
라#(A#) 29 58 117 233 466 932 1865 3729 7459
시(B) 31 62 124 247 494 988 1976 3951 7902

- 실제 악기 조율에 사용되는 각 계이름별 주파수 값(Hz) -



3. 회로 꾸미기

 이제 각 계이름별 주기를 구했으므로 555 타이머의 발진 회로의 주기를 해당 계이름의 주기로 맞추어야 한다.
 555 타이머의 주기를 바꾸는 방법은 Ra, Rb, C 의 값을 바꾸면 되는데, Ra 는 크기가 늘어나거나 줄어드는 경우 주기에도 영향을 미치지만 듀티사이클(duty cycle) 의 불평형이 심해질 수 있으므로 고정해 두고, C 의 경우에도 C 의 값은 다양한 값을 만들기가 어려우므로, Rb 의 값을 변경해서 주파수를 변환하는것이 좋다.
 아래는 Ra = 1k, C=0.01㎌ 로 하여 회로를 꾸민 모습이다.



[그림 3]

 저항의 경우 값이 연속적이지 않고, 주로 사용하는 값이 있으므로 적당한 저항을 조합해서 최대한 근사값으로 만들어야 한다. 68345Ω 의 경우 해당 저항이 없으므로 68kΩ 와 330Ω 을 직렬로 연결하는 등의 방법을 이용해야 한다.
 또한 한 음 낮은 "시" 의 경우 72526Ω 을 달아야 하지만 버튼마다 개별로 저항을 만들면 매우 복잡해지고, 2개의 버튼을 동시에 누르면 2개의 버튼에 각각 연결된 저항이 병렬연결된 형상이 되어 이상한 소리가 나므로, 한 단계 높은 음에 연결된 저항과 직렬연결 되도록 회로를 꾸며야 한다.
 이 경우 72526 - 68345 = 4181 이므로 3.9kΩ + 270Ω 을 부착하는것이 적당하다. 음을 정확히 맞추고자 한다면 10Ω 이하의 저항을 여러 개 사서 맞추는 것도 좋지만, 너무 정확하게 할 필요까지는 없다.
 근사한 저항값을 계속 이어나가면 오차가 커지므로 직렬로 연결된 저항값들의 합이 해당 계이름에 연결될 저항의 크기와 유사해야 한다. 탄소피막저항의 경우 오차가 약간 크므로 멀티미터로 측정해서 원하는 값에 가까운 오차를 가진 저항을 사용하는것도 좋은 방법이다. (금속피막저항 권장; 탄소피막저항의 경우 온도의 변화에 따른 저항의 변화가 큼) 이런 경우에도 저항을 이어붙여나갈때마다 멀티미터로 측정해서 보정하는것이 좋다. 스피커는 저항값이 높은 스피커가 좋다.
  각 계이름에 해당하는 저항과, 저항에 따른 발생주파수는 아래 계산기를 이용하면 된다. 경우에 따라 도레미파솔라시도 8음만 구현해보려는 사람도 있을 수 있어서 따로 계산하도록 하였다. (자바스크립트가 활성화 되어있어야 함)

저항값에 따른 발생주파수 알아보기(적색 상자에 저항값을 넣으세요. 1k 인 경우 1000)

0.693 * (1k + 2 * [Ω]) * 0.01㎌ = 주기(T): , 주파수(1/T):

주파수에 따른 저항값 알아보기(적색 상자에 주파수를 넣으세요. 440Hz 인 경우 440)

(1/ * 0.693 * 0.01㎌ * 2) - 500 = R2 저항값[Ω]:

4. 회로 조립

 이제 만능기판에 회로를 조립할 차례이다.



[그림 4]

 먼저 브레드보드에 회로도대로 조립을 해 본다. 미리 조립을 해 보는 이유는 콘덴서나 저항의 오차때문에 정확한 계산을 하더라도, 조립을 해 놓으면 원하는 동작을 하지 않을 수 있기 때문이다. 납땜을 해 버리면 수정하기가 매우 번거로워진다. 기본 "도" 에 해당하는 275k 를 연결해보니 거의 비슷한 주파수의 소리가 났다.
 하지만 문제가 발생하였다. 0.01㎌(103) 의 콘덴서가 용량이 변하는지 손가락을 가까이 가져다대면 음이 높아졌다가 다시 멀리 떼면 음이 낮아지는 현상이 발생하였다. 손가락 때문에 정전용량이 변하는 현상인 듯하여 다른 0.01㎌ 의 콘덴서를 연결하였더니 그런 현상이 적어졌다.



[그림 5]

 똑같은 0.01㎌ (103)세라믹 콘덴서이지만 왼쪽것은 손가락을 가져다 대어도 주파수의 변화가 매우 적었다. 세라믹 콘덴서는 이 회로에 사용하기 부적절하므로 마일러 콘덴서 등의 다른 콘덴서를 사용하는것이 좋겠다.



[그림 6]

 회로가 검증이 되었으니 이제 만능기판에 조립할 차례이다. 택 스위치 (Tact Switch) 를 만능기판에 피아노 건반과 비슷한 형태로 배치한다.



[그림 7]

 스위치의 뒷면을 납땜한 후, 한쪽 극은 모두 공통으로 연결한다. 택 스위치에는 단자가 4개가 있는데, 이 중 2개는 각각 서로 연결되어있는 단자이다. 스위치를 누르면 4개의 단자가 모두 연결되는 형식이다.
 각 계이름마다 달아야 할 저항을 계산한다. 그 다음 해당 저항에 가장 가까운 표준저항을 직병렬로 연결하여 해당 저항에 가장 가까운 값을 만들어서 연결한다. 저항 조합은 상황에 따라 다르기 때문에 정답이 없다.
 이 프로젝트에 사용된 저항은 IC114 에서 구매한 것인데, 전체적으로 저항이 표기된 값 보다 약간 작았다. 그래서 계산된 값 보다 약간 크게 선정하여 조립을 하였다. (금속피막저항을 연결해야 하나, 불가피하게 탄소피막저항으로 연결하였음)



[그림 8]

 약 3시간의 납땜 끝에 완성이 되었다. 저항은 온도에 따라 변하므로 적절히 조절할 필요가 있어서 맨 처음 연결되는 저항에는 직렬로 가변저항을 연결하였다. 가변저항은 10k 정도가 적당하다. 연결되는 저항에 따라 적절한 가변저항을 선택해야 한다. 가변저항은 연결안해도 별 상관은 없다. 테스터기로 저항을 재 가면서 만들었지만 기본음 "도" 는 실제 "도" 보다 약간 높은 음이 나왔다. 아마 저항의 오차가 누적되어서 그런 것 같다.
 "솔" 의 경우 스위치가 불량이어서 떼어냈다가 다른 스위치를 부착하였다. 간혹 스위치가 불량인 경우도 있으니 미리 확인하여야 한다.



[동영상1]



[동영상2 - We wish you a merry christmas]

 전원을 넣고 버튼을 눌러보니 해당 계이름에 해당하는 음이 흘러나온다. 멜로디가 간단한 음악은 쉽게 연주가 가능하다.

 조립하면서 기판 뒷면을 자주 만지면 안된다.
 손가락의 땀이 기판에 묻어서 저항값이 변하므로 원하는 동작을 하지 않을 수 있다.


 고정 저항을 이용하면 보정을 할 수가 없으므로 다음에 다시 만들게 되면 버튼마다 모두 가변저항을 부착하는 방식으로 해야겠다. 만들 사람은 계이름별로 모두 가변저항을 붙이는 방법으로 하는 것을 추천한다.

모바일 기기에서 현재 페이지를 보려면 이 코드를 스캔하세요. * 현재 페이지를 스마트폰에서 보고 싶으시다면 왼쪽의 QR 코드 를 스캔하세요.

* QR 코드읽기는 스마트폰용 바코드 리더 어플을 사용하시면 됩니다.

위의 자료를 타 사이트나 카페에 무단으로 사용하지 마세요.