2012/07/18 12:52
http://blog.naver.com/kdsy317/10143250906
220볼트가 흐르므로 제작시 쇼트나 감전에 주의하시고
트라이악의 금속부분이나 방열판등과 가변저항의 금속핀을 만지면 감전될 수 있으므로 주의 합니다.
220볼트를 위상제어 하여 모터와 전기판넬에 사용해 보았습니다.
회로도 입니다. 부품은 모두 5개 이며 1,200원이면 됩니다.
위상제어하기 위한 트라이악 입니다. 600볼트 16암페어용을 사용해 보았습니다.
다이악 입니다.
회로도를 보고 부품 배치 및 연결 배선도를 그려 보았습니다.
부품 배치도와 같이 만들었습니다.
뒷부분 입니다.
업소용 청소기에 들어있던 모터에 연결해 보았습니다.
업소용 청소기 작동 동영상 입니다.
전기판넬에 온도 조절용으로 사용해 보았습니다.
소비전력이 260와트 이고 규격이 850x1700x15인 전기 판넬 입니다. 싱글침대 사이즈 정도 됩니다.
열선은 노랑색 2가닥입니다. 녹색은 접지선 입니다.
빨강,검정,흰색 선은 맨좌측으로 연결되어 있습니다. 여러장 사용할 때 전기를 공급해 주기위한 예비선인것 같습니다.
온도 조절 잘 됩니다.
더 큰 부하에 사용하려면 방열판을 달고 랜선대신 굵은 전선을 사용해야 합니다.
트라이액이나 SCR을 아나로그 테스터기를 이용해서 간단히 이상 유무를 체크해볼 수 있는 방법을 소개합니다.
워낙 제가 구닥다리 같은 마인드라 ... 아나로그 테스터를 애용합니다.
Triac 의 기본 동작 원리는 다들 아실거라 봅니다. 게이트 신호를 인가하면 주전류는 A2(T2) A1(T1)으로 흐르게 됩니다. SCR과 다른 점은 Triac은 양방향 소자이고 SCR은 직류용으로 단방향 소자라는 점입니다만 SCR을 2개 붙혀서 교류용으로도 사용을 많이 합니다. 이제 테스터기 레인지 전환 스위치를 저항 측정의 X1 에 맞춰놓습니다. 이제 A1,A2 핀에 리드봉을 갖다 대면 게이트 신호가 없어서 무한대 저항값을 보입니다. 한마디로 바늘이 꿈쩍도 하지 않게 됩니다. 게이트와 찍어보면 바늘이 이렇게 움직입니다...리드봉 위치를 잘 봐주세요. 이제 리드봉 하나는 A1( T1 )에 갖다 대고 , 또 다른 리드봉은 A2 (T2)와 게이트에 동시 접촉을 시킵니다. 게이트와 T2를 한마디로 리드봉으로 쇼트를 시켜주는 겁니다. 그럼 바늘이 아래 사진처럼 12옴 정도를 보입니다만..이값은 중요치 않습니다. 턴온 상태를 보인다는 것이 핵심이죠. 그런 후에 ... 게이트에 접촛 시킨 것을 살짝 떼어 A2(T2)와만 닿게 유지를 시킵니다. 잘못하면 게이트에서 리드봉이 떨어질 때 A2(T2)와도 떨어지면 바늘은 다시 무한대 위치로 백 합니다. 그러니깐 A2(T2) 와 게이트핀에 닿은 리드봉은 A2에서는 떨어지지 않게 조심심 게이트에서만 떨어지게 하는 것입니다. 그러면 한번 게이트 신호를 주었기 때문에 A1, A2가 일정 저항 값을 유지한 상태로 그대로 있게 됩니다.
왼손으로 사진 찍느라 아주 여러번 해야했네요. ㅠㅠ SCR도 위와 같이 테스트 해보면 동일한 특성을 보입니다. T2,T2간에 고장난 녀석은 게이트 신호와 무관하게 쇼트나 낮은 저항값을 보여줍니다. 아니면 아예 아무리 게이트 신호를 줘도 꿈쩍도 안하던가요. |
2011/02/14 11:13
http://blog.naver.com/a980827/20122509289
SCR,TRIAC은 사이리스터라고 해서 주로 교류의 위상제어 소자로서 사용합니다. 대표적인 사용예로 조광기라든지 청소기모터제어등에 많이 사용하죠.
FET와 MOS FET는 제조공정만 약간 차이있고, 거의 비슷하고, 특히 스위칭용은 대부분 MOS FET를 사용하는데, MOS FET는 이전에 많이 사용한 TR보다 고속스위칭이 가능하고, 대전류,저전압에서 낮은 Ron저항을 가지므로 효율이 뛰어납니다. 그리고 GATE 임피던스가 매우 높기 때문에 드라이브단이 비교적 간단하게 구성이 가능하죠. 다만 고전압일때는 Ron저항도 높아져 효율이 TR보다 떨어지는데, 이러한 TR과 FET의 장단점에서 장점만 뽑아 만든것이 IGBT입니다. 즉 입력형태는 MOS FET처럼 하고, 출력형태는 TR처럼 만들어 고압,대전류에서도 고속 스위칭이 가능하도록 만든것이죠.
SSR은 TRIAC에서 약간 변형시킨 형태입니다. 포토 커플러와 ZERO CROSSING회로등을 넣어 만든것이 SSR입니다. 주변부품이줄어들긴 하지만 TRIAC+PHOTO COUPLE로 조합시켜도 SSR로 만들수 있습니다. 뭐 특별히 장점은 없어보이네요. 일반 기계식 릴레이보다는 속도,소음,수명,스파크노이즈등에서 유리하지만...
SSR은 TRIAC에서 약간 변형시킨 소자인데, TRIAC은 위상제어용이고, SSR은 일반 기계식 RELAY처럼 on,OFF용입니다. 즉 조광기나 모터 속도제어처럼 비교적 빠른 위상제어에서는 TRIAC을 주로 사용하는 반면 히터같은 것은 아주 빠르게 제어를 해줄 필요는 없습니다. 그래서 속도가 느리지만 사용하기 쉬운 SSR을 주로 사용하는 것이죠.
SCR은 다이오드에 트리거 전극을 붙여 트리거 신호가 있으면 A-K로 전류가 흐르는 스위칭 소자입니다.
그러나 근본은 다이오드이므로 부하는 한 방향으로 전류가 흐르게 되고 교류를 인가하면 반파 정류가 되어 흐릅니다. 트리거 신호는 한번 트리거 하면 A-K를 쇼트 할때까지 계속 혼 상태를 유지 합니다. 응용은 주로 DC 스위치로 많이 사용합니다.
TRIAC은 동일한 원리이나 다이오드 두개가 서로다른 방향으로 병렬로 접속된 구조이며, 트리거 신호가 있으면 턴온이 되는것은 동일합니다. 양방향으로 전류가 흘러서 교류 및 직류모두에 응용이 가능하며, 디머(빛의 밝기를 조절하는 장치)등에 많이 사용됩니다. 네온사인, 크리스마스 트리등의 점멸하는 전구등에도 사용됩니다. 또 한가지는 릴레이 대신 SSR과 같은 반도체 대전력 스위치에도 사용됩니다. 5V DC전압으로 트리거를 하면 교류220V 를 온 오프 할수 있는 것처럼...
triac(Triode+AC)
스위치용 반도체의 일종이며, 미국 제너럴 일렉트릭(GE)회사의 상품명이다.
p-n-p-n-p의 5층의 반도체를 포개서 만든다.
양단(兩端)의 전극 외에 제3의 제어전극(게이트)을 가지고 있으며, 마치 3극관(트라이오드)처럼 전류를 제어할 수 있다.
단, 사인파 모양인 교류전류의 통과개시를 제어하는 것으로 평균전류를 제어할 수 있을 뿐이며, 순간적인 진폭(振幅)의 제어나 전류의 차단은 할 수 없다.
또 p-n-p-n 4층 사이리스터는 1방향 전류의 평균제어를 할 수 있을 뿐이었으나, 트라이액은 2방향 제어가 가능하다.
교류로 사용하는 가정용 기구, 선풍기,세탁기, 조리용 믹서 등의 전동기의 회전수 제어 냉장고, 전기담요의 온도제어 스위칭 전원, 가전제품의 전력전자에 활용됨 .
또, 사용하는 데 있어서는 특수한 2방향성 다이오드, 다이액(diac)과 함께 사용되는 수가 많다.
이는 다이액 소자에 게이트를 붙인 쌍 방향 3단자 다이리스터이며, FLS(fine layer switch)라고도 한다. SCR를 역병렬로 하고 게이트를 1개로 한 것과 같은 기능을 가지며 5층의 pn 접합에 의하여 구성된 쌍방향성의 전력용 소자이다.
1.
1번 회로에서 AC 입력에 대하여 반주기 동안만 램프에 불이 들어오지 않을까요?
포토커플러가 동작한다고 가정.
이때 램프 단이 플러스 스윙일때는 당연히 불이 켜지지만 다음 반주기 동안은 램프단이 제로가 되어 트라이악이 오프 되는것 같은 생각인데요 그러니까 램프단이 제로가 되면 트라이악의 게이트도 제로가 되어 트라이악이 오프!! 안그런가요? ......그런데 어떻게 계속 램프가 켜져있죠?
2.
2번 회로에서 220V가 전원에 연결되어 있고 로드도 있다고 가정하고.....5V SIGNAL이 low일때 트라이악이 항상 켜져있다가 5V SIGNAL에 high가 되면 꺼지거나 아니면 어두워지거나 하지 않나요?
1.2번회로는 기본적으로 완전히 같은 TRIAC 제어방식 입니다.
다른점이 있다면...
1번은 포터커플러에 의한 단순ON/OFF 제어방식이고.
2번은 ZeroClossing(0V 부근에서의 on/OFF)방식입니다.
**결국 TRIAC을 제어하는 포터커플러의 차이 입니다
알고계신 바와 같이 SCR은 다이오드처럼 단반향 제어이지만 TRIAC은 양방향 제어
입니다.물론 게이트신호에 의해 Turn on되구요...
여기서 중요한것은 SCR은 게이트에 +,케쏘드에 -일때만 Turn on되지만..
TRIAC은 극성에 관계없이 Turn on된다는 사실입니다.
그리고 5V SIGNAL이 high가 되면 on되고 low일때 OFF가 됩니다
즉 포터커플러에 내장되어있는 발광다이오드가 동작하면 그 빛을 받어서 포토TR의
내부저항이 작어저 TRIAC의 게이트에 바이어스가 형성됩니다.
따라서 포터커플러에 공급되는 5V SIGNAL을 AC 입력의 위상과 동기시켜서 위상제어를 하게되면 불 밝기를 제어하거나 모터의 속도를 제어할수 있게됩니다.
**아래내용을 참조하세요**
(1) AC전력의 제어 방법
우선 AC100V를 on/Off 할 필요가 있으니까, 이것을 무엇으로 실시할지가 과제
그렇지만, 위상 제어를 실시하고 싶기 때문에 고속의 변환이 필요하기 때문에 릴레이 등은 사용할 수가 없습니다. 여기에서는 일반적인 AC전력 콘트롤러와 같이 트라이액을 사용하기로 하겠습니다.
기본의 회로는 밑그림과 같이 T1, T2간의 on/Off 제어를 게이트 전압의 제어로 실시할 수가 있습니다.
이 회로로, 게이트에 일순간 전압을 더하고 전류를 흘려 주면(자), T1, T2간이 도통해, 부하에 대해서 AC100V가 더해집니다. 그리고 AC100V의 전압의 정현파가 0 V를 횡단할 때, 트라이액은 Off가 됩니다.
이것을 정현파의 반사이클마다 반복하면, 정현파의 일부가 끊어진 형태의 밑그림과 같은 교류가 부하에 참가하게 됩니다.
이 부하에 참가하는 교류의 전력은, 파형의 면적에 비례하기 때문에, on로 한다
위치를 가변해 주면 전력을 가변할 수가 있습니다.
(2) 절연 방법
이 트라이액의 게이트를 제어하기 위해서는, T2에 참가하는 전압보다 수V정도 높은 전압을 더할 필요가 있습니다.
그러나 T2에 참가하는 전압은, 제어하는 상대가 AC100V 이상 그렇다면, 이것과 같다
전압을 취급할 필요가 나오게 됩니다. 따라서, 이 고전압을, DC5V로 동작하는 PIC로부터 제어하기 위해서는 궁리가 필요
입니다. 즉 전기적으로 절연 할 필요가 있는 것입니다.
이 절연에는, photo-coupler를 사용합니다. 게다가, 트라이액은 양극성을 가져있기 때문에, 이것에 대응할 수 있도록, photo-coupler에 트라이액을 짜넣었다
포토 트라이액을 사용합니다. 사용한 것은 토시바의 TLP560라고 하는 포토 트라이액입니다.
기본 회로는 밑그림과 같이 합니다. 이것으로, PIC로부터 포토 트라이액의 발광 다이오드를 on 그렇다면, 출력의 트라이액이 제어용 트라이액의 게이트에
트리거용의 전압을 더할 수가 있습니다. 한층 더 출력이 트라이액인 것에보다 , 정현파의 플러스측에서도 마이너스측에서도 똑같이 동작합니다.
C4와 R5의 직렬 회로는 트라이액이 발생하는 스위칭 잡음을 억제하기 위해(때문에)의 모래 바 회로로 불리는 것입니다.
(3) 정현파에의 동기
다음의 과제는, 위상 제어를 하기 위해서는, 부하의 교류의 정현파에 동기 한 신호 하지만 필요합니다. 여기에서도 photo-coupler를 이용합니다. 밑그림과 같은 회로를 사용합니다.
이 회로로로 photo-coupler의 발광 다이오드에 부하의 교류 신호를 흘리면(자), 출력측 트랜지스터 출력에는, 밑그림과 같은 신호가 나타납니다. 즉, 정현파의 전압이
일정치 이상 있으면, 트랜지스터는 on가 되어 출력은 0 V가 됩니다만, 교류가
0 V를 횡단하려면(이것을 제로 크로스라고 부르기) , 발광 다이오드가 소등하기 때문에,
출력은 5 V가 됩니다. 이것으로, 교류의 제로 크로스의 타이밍에 동기 한 신호를
얻을 수 있습니다. 게다가 전기적으로 절연 되고 있기 때문에, PIC에 직접 출력을
접속하는 것이 가능하게 됩니다.
이 제로 크로스의 펄스 신호를 PIC의 RB0에 가세해 외부 새치기 신호로 합니다.
이것으로 PIC의 프로그램을 반사이클마다 기동시킬 수가 있게 됩니다.
그러나, 여기에 하나 문제가 있습니다. 발광 다이오드에 흘리는 전류는 불과
수mA입니다. 여기에 직접 AC100V를 더하는 것은 조금 위험한 느낌이 듭니다.
거기서, PIC용의 5 V전원을 공급하기 위해(때문에)공용으로, 전원 트랜스를 사용하는 것에
했습니다. 이 트랜스로 강압한 교류를 더하기로 하겠습니다.
PIC용의 전원 회로를 조합해 아래와 같은 회로로 실현되었습니다.
PIC의 회로에 필요한 전원 용량은 10 mA정도이기 때문에, 작은 전원 트랜스
그리고 충분해서, 프린트 기판용의 전원 트랜스를 사용하기로 했습니다.
참고하세요.
PN접합다이오드 -> BJT -> JFET -> MOSFET에 이어서 SCR(Silicon Controlled Rectifier)에 대해 한번 정리해 보려 합니다.
하지만~ 그렇게 똑같은 기능을 한다면 BJT와 FET랑 다를게 없자나요~! 아래쪽 그림과 같이 다이오드가 연결되어있는 구조로 생각해 볼 수 있을 것입니다.
4) 이 Ic1은 이제 Ig랑 같이 연결되어있으므로 Gate의 전류를 0으로 해준다고 해도 Ic1의 전류가 있기 때문에 전체적으로 A-K간에 전류가 끊기지 않고 계속 흐를 수 있게 됩니다. 위의 그래프는 SCR의 I-V 특성 곡선 그래프인데요..
위의 그림은 SCR의 Input과 Gate의 신호, 그에 따른 Output 신호를 보여주고 있는데요.. 위와 같이 AC 극성이 반대가 되어 Reverse bias가 되면 SCR이 다시 Off-state로 들어가 Output단에서는 신호가 보이지 않게 되지요~
|
PC를 이용한 선풍기 콘트롤러(트라이액)
|
콘트롤러의 회로도입니다.
목차로
선풍기 콘트롤러 제작 강좌
1. 소개
요즘 생활환경이 향상되어 에어콘이 많이 보급이 되어있지만
그래도 서민들의 여름철 냉방장치로 선풍기만한 것이 없을것입니다.
이 선풍기라는 물건은 또한 예수가 그 제자들에게 보여준것 같은
미덕을 지니고 있으니 그것은 바로 타 가전제품에서 찾아보기 힘든
발가락으로의 조작 편의성(?)을 지니고 있는 것입니다.
기실 우리가 여러가지 가전제품을 조작하는데 손을 주로 씁니다만
그것은 손잡이 등이 마침 손이 닿기 알맞은 높이에 위치해 있고
또 손으로 만지지 않으면 안될만큼 작고 정밀하며 복잡한 움직임을
필요로 하기 때문입니다.
하지만 우리들이 흔히 쓰는 스탠드형 선풍기를 잠시 돌아볼것 같으면
적당히 큼직한 스위치가 일렬로 붙어있는 품새하며 그 위치가 또한
손이 닿기에는 조금 먼 곳에, 그러나 발이 닿는데는 가까운곳에 있으니
우리는 적당히 발가락을 구부려 날을 세운 후 원하는 세기의 풍속을
켜주는 스위치를 눌러 부담없이 시원함을 즐길 수 있고, 또 한편
선풍기는 그 구수한 냄새가 풍기고 무좀균이 핫도그의 케첩마냥 묻어있는
발가락의 요구 내지는 명령을 한마디 불평없이 묵묵히 받아들여 낮이고
밤이고 주인에게 시원함을 선사하니 이는 옛날 제자들의 발을 씻어주면서
한없이 겸손해 질것을 가르쳤던 예수의 말씀을 연상함이러라.
여하튼 날씨가 더운 관계로 이런 말도안되는 생각을 굴리다가 언뜻 스치는
아이디어가 있었으니 그것은 "선풍기의 발가락으로부터의 해방"이었습니다.
아이디어의 요점은 여태까지의 구태의연한 방법인 선풍기의 발가락 조작법을
지양하고, 첨단 정보화, 세계화 시대에 알맞게 PC를 이용해 선풍기를 조작함으
로써 생활의 편리함과 우아함을 함양하고, 더 나아가 불결한 발가락으로
선풍기를 조작함으로 인해 생기는 인권침해 아닌 선권침해의 소지를 없애
세계 평화에 기여한다...는 것이 이 제작기사의 핵심이 되겠습니다. 네네.
이런 허망한 소리를 하는 저는 누구냐고요? 저는...(백수건달이죠)
아, 물론, 이 기기는 꼭 선풍기 제어에만 쓰이는것은 아닙니다.
오히려 선풍기 제어보다는 다른 곳에 더 유용하게 응용을 할 수 있습니다.
하지만 원래 아이디어가 선풍기 제어였으므로 여기서는 그대로 설명합니다만
독자여러분께서 여러가지로 독창적인 응용을 하실 수 있을 것입니다.
여기에 쓰이는 선풍기는 요즘 나오는 무슨 리모트콘트롤이나 퍼지기능 따위의
화려한 기능이 붙어있는 것은 오히려 부적당하고, 보통 볼 수 있는 평범한
선풍기가 오히려 개조하기에 적당합니다.
이 기기의 동작원리는 우선 PC의 프린터포트를 통해 PC로부터의 명령코드를
전해받아 코드에 따라 선풍기의 풍속조절 스위치에 병렬로 연결된 3개의
반도체 스위치중 하나만 켜서 선풍기를 on/OFF및 풍속조절한다는 것입니다.
명령코드에 따라 3개의 스위치를 켜고 끄는데 2 to 4 라인 디코더가 사용
됩니다.
2 to 4 라인디코더란 입력으로 들어오는 두자리의 2진수 입력의 값에 따라
출력의 4개 단자중 하나에만 "1"을 출력하는 회로인데, 보통 칩 하나에
두개의 회로가 들어있는 IC를 구할 수 있습니다.
저의집 선풍기는 풍속조절이 3단계로 되어 있어 2 to 4 라인디코더로 충분
했으나, 만일 4단조절이 되는 선풍기라면 3 to 8 라인디코더 칩을
사용하시면 됩니다.
선풍기의 OFF스위치는 따로 작동시킬 필요가 없으므로 디코더의 출력단자중
Q0 단자는 사용하지 않고 나머지 3단자만 사용합니다.
물론 이 노는 단자에 선풍기가 꺼진것을 나타내는 LED를 달아도 괜찮겠지요.
한편 이 선풍기 제어기를 제어하는 신호는 PC의 프린터포트에서 보내줍니다.
PC의 프린터포트는 8비트의 데이터와 5비트의 제어입력, 4비트의 제어출력핀을
가지고 있으며 비교적 프로그램하기가 쉬운것이 특징입니다.
TTL 호환 레벨이므로 이 선풍기제어기에서처럼 포토커플러나 LED를 달아
직접 제어할 수도 있고요.
여기서는 프린터포트중의 D0, D1 두개의 비트만 사용하여 선풍기를 제어하는
신호를 제어기에 주게 됩니다.
위에서 설명한 두가지 아이디어로 대충 선풍기 제어에 필요한 사항이 준비
된것 같으니 이제 회로도를 한번 그려 보겠습니다.
2. 회로도 설명
이 선풍기 제어기는 별도의 전원이 필요없이 선풍기에 들어오는 상용전원을
직접 정류해서 쓰는것으로 합니다. 그 편이 훨씬 실용적일 것입니다.
트랜스를 쓰지 않는 회로로 한번 해 보죠. 보다 더 작게 만들 수가 있습니다.
그러나 상용전원에서 트랜스리스로 전원을 뽑을 때는 주의할 사항이 많습니다.
우선 신호 입 출력 회로는 본체 회로와 절연이 되어있지 않으면 안됩니다.
그래서 보통 디지털 신호는 포토커플러를 이용하고, 아날로그 신호라면 트랜스
등을 이용하여 외부 회로와 내부 회로간을 절연합니다.
이문제는 트랜스리스 전원을 쓰는 데 있어서 대단히 중요한 문제이므로 신경을
쓰셔야 하며 만알 소홀하게 처리해서 생기는 문제에 대해서는....책임 못지지..
트랜스리스 전원에서 가장 문제가 되는 사항은 상용전원의 높은 전압을
쓰기 적당한 낮은 전압으로 낮추었을때 발생하는 엄청난 전압차를 어떻게 극복
하느냐 하는 것인데 이 문제해결의 비결은 콘덴서에 있습니다.
만일 이 전압차를 저항으로 모두 해결하려고 직렬로 저항을 넣어서 전압을 낮춘다면
이 저항에는 거의 전원전압이 그대로 걸리게 되며 그 전압과 흐르는 전류의 곱인
P=VI의 전력이 모두 열로 발생하게 됩니다.
상용전원의 전압이 110 - 220V 이므로 전류가 아무리 작게 흐른다고 해도 그 전력은
와트단위가 되어 열도 장난이 아니게 발생할 뿐더러 그 전력을 견디는 저항은
크기도 상당히 크고 구하기도 어려울 겁니다.
그런데 여기에 저항 대신 콘덴서를 넣으면 문제가 달라지는데, -물론 상용전원은
교류이므로 콘덴서를 직렬로 넣을수가 있는 것이고요- 콘덴서는 전압과 전류가
90도의 위상차를 두고 흐른다고 합니다.
쉽게 말한다면 콘덴서에는 전압이 걸리면 전류가 흐르지 않고, 전류가 흐르면
전압이 나타나지 않는다는 말이 되겠습니다. (써놓고 보니 이상한 말이지만
전압/전류의 90도 위상차라는 말의 간단한 설명정도로 이해하시면 되겠습니다.)
이러한 콘덴서의 신비스러운(?) 성질에 의해 콘덴서에 흐르는 전압과 전류는
각기 따로놀게 되고, 전압이 최고가 되면 전류가 최소가 돠고 전류가 최대가
되었을때 전압이 최저가 되어 순간 순간의 전력인 P=VI가 저항의 경우와는 달리
매우 작은값을 나타내게 되어 열 발생이 거의 없습니다.
저항의 경우는 전압과 전류가 동상, 즉 전압이 최고가 되었을때 전류도 최대가
되므로 전력손실 P=VI가 올라갈데까지 올라가 결국 저항을 태워먹게 됩니다.
한편, 콘덴서 말고 코일도 전압 전류가 따로노는 성질이 있습니다만 크기가
무지하게 크지요. 상용전원같은 저주파용 초우크코일을 쓰느니 차라리 맘 편하게
트랜스를 쓰고 마는게 백번 낫습니다.
회로도에서 오른쪽 아래에 트랜스리스 전원회로가 보입니다.
콘덴서와 직렬로 연결된 저항은 전압강하용이 아니라 예상치 못한 급격한 전압변동
등에서 회로를 보호하는 역할을 합니다. 이를테면 전원스위치를 켰을 때 전혀
충전이 되어있지 않은 콘덴서에 갑자기 큰 전류가 흐를 수 있으므로 저항을 넣어
안전을 도모한다는 이야기지요.
이 저항은 약 100에서 300옴 정도의 값으로 1 - 5와트의 용량을 갖는것이면 됩니다.
콘덴서는 여기서는 104정도의 용량에 AC 400V 정도의 내압을 갖는 것이면 됩니다.
만일 이 회로를 다른 기기에 응용한다면 콘덴서의 용량을 조금 큰걸로 잡으면
출력전류를 조금 더 많이 뽑을 수가 있습니다.
그러나 이것도 정도문제지 무한정 전류를 늘릴 수는 없는 문제이므로
필요한 전류가 10mA 이상이라면 트랜스를 이용하는 것이 좋습니다.
콘덴서를 통과해서 전압이 낮아진 상용전원은 이제 다이오드 브릿지를 통과해 직류로
바뀌게 됩니다.
보통 정류용 다이오드는 그 내전압이 전원전압의 2배에 루트2를 곱한 값 이상을
쓰는것이 좋다고 알려져 있으나 이 회로의 경우는 이미 브릿지 다이오드에 오면
전압은 상당히 낮아져 있으므로 내압에 크게 신경 쓸 것은 없고 일반적인
전원정류용 브릿지 다이오드를 쓰면 됩니다.
이제 직류로 바뀐 전류는 전압안정용 제너 다이오드에 의해 전압이 조절됩니다.
흔히 제너 다이오드라면 간단히 정전압원을 얻기위해 사용하는 부품이지만
이 회로에서의 제너다이오드의 역할은 실로 막중한 회로 전체의 안전이 달려있습니다.
만일 이 회로에서 제너다이오드가 제 역할을 못한다면 최악의 경우 직류 전원전압이
공급되는 상용전원전압까지 올라갈 수도 있으며 이렇게 되면 여기에 목매고 있는
전체 회로가 다 저세상으로 떠나는 불상사도 일어날 수 있습니다.
그러므로 이 트랜스리스 전원회로를 제작하는데는 특별히 주의가 필요하며
납땜 불량등이 허용되지 않습니다.
혹시 자신의 주특기종목을 건달납땜이나 냉땜으로 삼고있는 분들께서는 권고하건대
이 회로의 제작을 사양해 주시고 트랜스를 사용한 FM한 전원회로를 이용하시기 바랍니다.
다시 전원회로의 설명 계속인데 제너를 이용한 정전압원은 흔히 저항으로 일단
전압을 떨어뜨린 후 제너로 안정화 시키는 것이지만 이 회로에서는 눈에 낮익은
그 전압강하용 저항이 안보입니다.
왜냐하면 그 역할을 바로 전원라인에 직렬로 삽입한 콘덴서가 맡기 때문에
따로 저항이 필요없는 것이지요. 콘덴서의 직렬연결된 저항은 전압강하용보다는
이상전압 억제용이라고 말씀 드렸었습니다.
이제 전원부의 설명은 이정도로 하고 본 회로의 설명을 시작해 보죠.
회로도 왼쪽 위에 PC 로부터 신호를 받아들이는 입력부가 보입니다.
PC의 프린터포트 커넥터는 25핀의 암컷으로, 이 커넥터의 2번핀에서 9번핀까지의
8개 핀이 PC내부의 프린터포트 데이터 레지스터와 연결되어 있습니다.
그래서 PC안에서 이 데이터 레지스터의 비트를 프로그램을 통해 켰다/껐다 히면
그에따라 그 비트에 해당되는 핀의 전압이 걸렸다/안걸렸다로 변화하게 됩니다.
예를 들면, 데이터레지스터의 0번 비트를 "1"로 세트시켜 주면, 프린터포트 커넥터의
2번 핀에 약 4V내지 5V의 전압이 나타나며, 다시 0번 비트를 "0"으로 리셋시키면,
2번핀의 전압이 0V가 된다는 이야기입니다.
이 회로에서도 입력을 프린터포트의 2번핀과 3번핀을 통해 받고 있습니다.
입력에 직렬연결된 저항은 전류제한용 저항으로 부하가 LED이기 때문에 저항을
직렬로 연결하여 과전류가 흐르지 않게 안전조치를 취한 거지요.
이렇게 PC에서 들어온 신호선은 직접 디코더에 연결되지 않고 포토커플러의 1차측
LED에 연결됩니다.
이 포토커플러의 2차측은 포토트랜지스터(PhTr)라는 소자로 되어있는데, 이 PhTr은
보통 트랜지스터가 베이스에 전류가 흐르면 그에 따라 on 이 되는것과 마찬가지로
PhTr 소자에 빛을 쪼여주면 도통이 됩니다.
따라서 포토커플러의 1차측인 LED에 전류를 흘리면 LED 가 빛을 내고, 이 빛은
LED와 바로 마주보고 있는 PhTr에 비추어져서 PhTr이 on이 되므로써 신호가
전달되게 됩니다.
이렇게 직결을 하지않고 중간에 검문소(?)를 두는 까닭은 만일 이 콘트롤러회로에서
이상이 생겨 과전압이 발생하더라도 그 이상전압이 PC와의 신호선을 타고 PC로 넘어가
PC가 맛이 가는 것을 막으려는 목적입니다. 빛은 전기가 통하지 않으니까요.
이제 포토커플러를 무사히 넘어온 신호는 드디어 이 콘트롤러의 핵심(?)인
2 to 4 라인디코더의 입력단자에 가해지게 됩니다.
2 to 4 라인디코더가 무엇인가에 대해서는 앞서서 설명을 했습니다만
여기서 좀 더 설명을 덧붙여 보죠.
2 to 4 라인디코더는 2개의 신호입력과 4개의 신호출력을 가지는 논리소자입니다.
2 to 4란 2개의 입력라인을 4개로 늘인다는 의미지요.
다음은 이 라인디코더의 진리표입니다.
입력 | 출 력 | ||||
---|---|---|---|---|---|
A | B | Q0 | Q1 | Q2 | Q3 |
F | F | T | F | F | F |
F | T | F | T | F | F |
T | F | F | F | T | F |
T | T | F | F | F | T |
표에서 보는것처럼 입력 A, B의 상태에 따라 해당되는 하나의 출력선만
참(T)이 되고 나머지 세 선은 거짓(F)이 되는것을 볼 수 있습니다.
물론 여기서 참이란 스위치 on상태를, 거짓이란 스위치 OFF상태를 나타내는 것이죠.
이러한 라인디코더 칩에는 TTL도 있고 CMOS도 있는데, 이 회로에서는 CMOS를
썼습니다.
CMOS가 TTL보다 사용전압범위가 넓어 까다롭지 않다는 장점이 있고 또 소비전류도
적다는 것이 이유가 되겠습니다.
CMOS로서 2 to 4 라인디코더로는 4555와 4556이 있습니다만 4556은 출력이 거꾸로
나오는 것이라 진리표대로의 출력이 나오는 4555를 썼습니다.
4555는 16핀 DIP 형태의 칩인데, 이안에 라인디코더가 2조 들어있습니다.
우리가 필요한 것은 라인디코더 하나만이므로 한쪽은 아깝지만 안쓰고 놀려두게
되는데, 여기서 주의해야 할 점이 있습니다.
TTL의 경우에는 이렇게 한 칩에 여러 회로가 들어있을때 쓰지않는 회로에 대해
별 특별한 처리를 안해도 되지만, CMOS의 경우에는 안쓰는 회로의 입력선은
반드시 H나 L에 달아매 놓아야 된다는 점입니다.
즉 입력선을 공통접지선이나 B+ 전원선에 연결해 놓아야 한다는 것인데, 왜냐하면
CMOS는 입력선에 아무것도 연결되지 않고 개방된 상태에서는 TTL과는 달리
H도 L도 아닌 부정의 상태가 되기 때문에, 이 회로가 무슨짓을 할 지 아무도
모르는 지경에 이르고, 대개는 사용중인 회로의 동작을 방해한다든지 전류소모가
엄청나게 커진다든지 하는 말썽을 일으킵니다.
그래서 회로도에는 안나왔지만, 4555의 안쓰는 쪽 디코더회로의 입력선인 A, B와
/Enable 단자는 모두 접지선에 연결시켜 줍니다.
한가지 더 덧붙인다면 이 칩의 전원단자인 Vdd 와 Vss 사이에 최단거리로
104 콘덴서를 붙여놓는것을 잊지 말라는 이야기지요.
여하튼지간에 이렇게해서 4555의 입력에 PC로부터의 신호를 연결을 했으면
이제 남은것은 출력을 뽑아내 실제로 스위치를 제어하는 일입니다.
앞서 말한 바와 같이 4555의 출력선은 4개가 나오고, 이 출력선은 진리표대로
PC에서 날아오는 두자리 2진 신호에 따라 00 -> Q0, 01 -> Q1, 10 -> Q2. 11 -> Q3이
차례대로 켜지게 됩니다.
이중에 00은 선풍기를 꺼지게 하는 신호이므로 이 신호에 켜지는 Q0출력선은
사용하지 않고, 나머지 Q1, Q2, Q3 출력선에만 스위치를 달아 씁니다.
자, 출력을 봅시다.
출력선 Q1이 on되면 저항 Ro1와 Tr1의 베이스에 전류가 흐릅니다.
이 전류에 의해 Tr1의 콜렉터-에미터가 도통되고, 전류는 B+ - Rd1 - PC1 - LED1 -
Tr1 콜렉터로 흐릅니다.
CMOS의 출력전류는 TTL에 비해 작기 때문에 트랜지스터로 일단 증폭을 한 후
출력 스위칭 회로를 구동시키게 됩니다.
Rd1은 전류제한저항으로 포토커플러와 LED1에 흐르는 전류를 제한하는 역할이고요,
LED1은 현재 어느 스위치가 켜져있는가를 표시하기 위한 것입니다.
PC도 포토커플러인데, 아까 입력측에 달렸던 포토커플러와는 약간 다른 부품입니다.
입력측 포토커플러는 빛을 받는 2차측이 포토트랜지스터인데 반해, 출력측의
포토커플러는 2차측이 포토 트라이액이라는 점이 다릅니다.
여기서 트라이액이라는 반도체 소자에 대해 간단히 설명한다면, 이 소자는 다이리스터
라고 불리우는 반도체의 일종이며, 주로 교류전류를 on/OFF 하는데 사용합니다.
생김새는 전력 트랜지스터와 비슷한 3단자의 소자인데, 각각의 단자(전극)는
T1, T2, G라고 합니다.
이 트라이액의 T1과 T2에 교류전압을 걸고, T2와 G단자사이를 단락(합선)시키면
T1과 T2사이에 전류가 흐르게 됩니다.
이 트라이액의 특징은 T1에서 T2, T2에서 T1으로 양방향 어느쪽으로도 전류가
흐르는 것으로, 이 성질 때문에 트라이액은 교류전기를 스위칭하는 용도로 많이
쓰입니다.
그리고 이 출력측에 쓰인 포토커플러의 2차측인 포토 트라이액은, 게이트에
전기신호를 주는대신 빛을 쪼여줌으로써 T1, T2 단자가 도통하는 것이죠.
그리고 포토트라이액이 도통하면 실제로 전력 스위칭을 하는 트라이액 SW1의
T2와 G간이 단락되어 SW1이 on이 되는 것입니다.
4555의 Q1에서 이어지는 출력 스위칭 회로에는 굵은 네모가 쳐저있고 Module1
이라는 표시가 되어있는데, 이것은 이하 Module2, Module3도 회로구성이 똑같다는
의미로 같은 회로를 반복해 그리는것을 피하기 위해 편의상 네모로 처리했습니다.
이상으로 회로도에 대한 설명은 대강 끝났고 한가지 최종 출력소자인 트라이액에
대해 형명이라든지 하는것이 안나왔는데, 실상 저도 이것을 만들면서 트라이액의
형명은 큰 신경을 안쓰고, 학생과학사에서 무조건 400V에 2A짜리 트라이액 달라고
해서 집어주는대로 가지고와서 만들었습니다. 고로 트라이액에 대해 별로 해박한
지식이 없을듯한 점원이 과연 내가 말한 규격대로의 트라이액을 집어줬는지는
의문이지만 여하튼 지금까지 쓰면서 별 문제를 일으키지는 않았습니다.
청계천 등지에는 이런 트라이액등을 파는 부품가게들이 많은데, 들어가서 부품표좀
보자고 해서 훑어본뒤 필요한 규격을 가진 형명의 트라이액을 사면
무리가 없으리라 생각합니다.
규격기준은 허용전압이 전원전압의 2배 이상이고 전류도 약 2배 이상되는것으로
선택하시고, 사실때 주의할 점으로는 단자 접속을 확인하시라는 것 정도입니다.
제너다이오드는 12V에 500mW정도의 일반적인 것이면 되고, LED도 취향에 맞는
색상을 구하시면 좋습니다. 각 LED를 색이 다른것으로 만들어 강풍, 약풍, 미풍에
따라 다른 색이 켜지게 하면 더 재미가 있을것 같군요.
저는 이 회로를 손바닥만한 만능기판에 만들었는데, 구멍의 간격이 IC 피치인 것을
구해야 낭패를 면할 수 있습니다.
제작에 있어서는 부품의 배치를 잘 생각하여 전원부와 입력부가 너무 가까이 있지
않도록 하시고 입/출력선이나 전원선이 꼬이지 않도록 주의하시면서 제작을 하십시오.
PC와의 연결은 DB25라는 25핀짜리 커넥터로 하는데, 컴퓨터측 커넥터가 암놈이므로
컨트롤러쪽 커넥터는 숫놈이어야 합니다.
커넥터는 케이블 납땜용으로 후드와 함께 삽니다. 납땜부의 플라스틱 면을 잘 보면
핀의 번호가 새겨져 있으므로 그것을 참고하셔서 2번과 3번핀에 신호선을, 25번 핀에
신호 Gnd 선을 납땜하면 됩니다.
이 콘트롤러는 선풍기에 달 것이기 때문에 PC와의 연결케이블을 약간 여유가 있게
길이를 잡는것이 좋습니다.
콘트롤러의 제작을 다 했으면 실제로 선풍기에 달아야 하겠지요.
선풍기내의 배선은 간단한 선풍기 회로도에서 나온것처럼 모터에서 나온
여러개의 선(여기서는 3개)을 기계식 스위치에 의해 하나만 접속시켜 속도를
조절합니다.
간단한 선풍기 회로도
그러므로 이 기계식 스위치 대신 지금 제작한 콘트롤러의 반도체 스위치로
모터의 선을 on/OFF 해서 제어를 한다는 것이지요.
콘트롤러 회로도 내에 보면 S1이라고 표시된 단자가 있습니다.
당연히 회로도에는 생략되었지만 Module2에는 S2, Module3에는 S3 이 있습니다.
선풍기의 밑판을 열고 보면, 모터에서 내려온 여러개의 선들이 스탠드의
풍속조절 스위치에 납땜되어 있는게 보입니다.
이 풍속조절 스위치의 미풍(1단) 스위치에 해당되는 곳에 콘트롤러의 S1 단자를
병렬로 연결하고, 나머지 2단스위치에 S2단자, 3단스위치에는 S3단자를 각각
병렬로 연결 납땜합니다.
그리고 선풍기내로 들어오는 전원 코드와 선풍기내 배선의 연결점의 절연 캡을
벗겨낸 다음, 콘트롤러의 전원단자를 납땜하여 연결하고 테이프로 확실히 절연을
시켜 줍니다.
다시 주의를 환기시킨다면 콘트롤러에는 직접 상용전원이 들어오고, 여기에
PC의 프린터포트가 연결되기 때문에 절연에 특히 신경을 써야합니다.
설마 PC 신호입력선의 Gnd와 콘트롤러의 공통접지선을 직결시킨것은 아니겠지요?
이제 선풍기 본체에 콘트롤러를 설치했으면 PC접속용 케이블을 바깥으로 빼고
선풍기 케이스를 다시 조립합니다.
아참, 그 전에 테스터를 저항 가장 높은 레인지에 맞춰놓고 PC접속용 케이블의
25번 핀과 선풍기 전원코드중 한 단자를 재어보아 저항값이 무한대를 가리키는지를
확인헤 보세요. 탐침을 바꿔가면서 재어보아 어떤 값을 가리킨다면
절연에 문제가 있다는 이야기 이므로 사용전에 반드시 해결하지 않으면
매우 위험한 사태가 일어날 수 있습니다.
혹시 콘트롤러내에 붙여둔 LED가 콘트롤러가 선풍기 본체안으로 들어가는 바람에
안보이는것이 아깝다고 생각하시는 분들은 콘트롤러 회로기판을 선풍기 케이스에
적당한 반투명 부분이 있으면 그 부분에 위치시키든지 아니면 LED용 구멍을
케이스에 뚫어서 LED를 보이게 만들면 될것입니다.
콘트롤러 제작 및 선풍기내의 설치가 성공적으로 이루어 졌으면 이제 콘트롤러에서
나온 케이블을 PC의 프린터포트에 접속하고 프로그램을 짜서 동작시키는 일만
남았습니다.
그리고 콘트롤러의 반도체스위치는 선풍기스위치에 병렬로 연결되어 있으므로
콘트롤러가 동작하지 않으면 예전처럼 선풍기를 수동으로 동작시킬 수 있습니다.
그러나 콘트롤러가 동작할 때에는 선풍기의 풍속조절 스위치가 켜져 있으면 안됩니다.
3. 프로그램 설명
이제 콘트롤러를 만들어 선풍기에 설치하고 신호 케이블을 PC의 프린터포트에 끼웠으면
컴퓨터에서 선풍기를 제어하는것은 아주 쉬운 일입니다.
그냥 단순히 프린터포트에 원하는 바람 세기의 숫자만 써 주면, 선풍기는 거기에 맞춰서
정확히 켜지고 꺼지면서 컴퓨터의 명령에 따르니까요.
예를 들면 선풍기를 약풍으로 틀고싶다 하면 약풍은 2단이므로 숫자 2를 프린터포트에
써주면 선풍기는 2단으로 돌게 된다는 거지요.
물론 선풍기를 끌 때에는 프린터포트에 0을 써 주면 선풍기는 꺼집니다.
그러면 이제부터 이 선풍기 콘트롤러를 제어하기 위한 프로그램을 작성해 보겠습니다.
프로그램에 사용하는 언어는 MS-DOS 5.0 이상에 들어있는 QBASIC을 이용하겠는데
이 글 읽으시는 분들은 각자 익숙한 언어를 사용하시면 좋겠지요.
그러면 우선 먼저 할 일은 프린터포트의 I/O 주소를 알아내는 일이 되겠습니다.
물론 대개의 경우는 프린터포트의 주소는 정해져 있지만, 간혹 틀린 주소를 가진
컴퓨터도 있으므로 좀더 일반적인 방법으로 주소를 알아내는게 좋겠지요.
BIOS에서 프린터포트중에 LPT1:의 주소는 메모리 번지 40:08에 있는 2바이트
워드형 변수에 저장되어 있습니다.
그러므로 이 주소의 값을 읽어내면 프린터포트의 주소를 알아낼 수가 있습니다.
참고로 프린터포트 LPT2:의 주소는 40:0A에, LPT3:는 40:0C에 저장되어 있습니다.
만일 콘트롤러를 LPT2: 등에 연결했다면 위의 주소를 참고하셔서 프로그램을
작성하시면 되고 이하 설명은 콘트롤러를 LPT1:에 연결한걸로 생각하고 설명합니다.
그럼 위의 설명된 것으로 LPT1: 프린터포트의 주소를 알아내는 QBASIC함수를
만들어 보죠.
DEFINT A-Z
FUNCTION GetLPT1address
DEF SEG = &H40
GetLPT1address = PEEK(8) + PEEK(9) * 256
DEF SEG
END FUNCTION
DEF SEG 명령은 접근하고자하는 메모리의 세그먼트 번지를 정해주는 명령인데
숫자가 없이 쓰이면 원래의 디폴트 세그먼트로 다시 설정이 됩니다.
여하튼 이렇게 해서 LPT1:의 주소를 알아냈으면 그다음은 만사형통(?).
프린터포트의 주소를 변수에 기억시킨다음.
LPT1adrs = GetLPT1address
키보드에서 한글자를 입력받습니다.
K$ = INPUT$(1);
그다음은 무슨 글자를 입력받았는지를 판단해서 해당 값을 프린터포트에 넣는
간단한 부분만 만들면 일은 끝납니다.
IF K$ = "0" THEN
OUT LPT1adrs, 0
ELSEIF K$ = "1" THEN
OUT LPT1adrs, 1
ELSEIF K$ = "2" THEN
OUT LPT1adrs, 2
ELSEIF K$ = "3" THEN
OUT LPT1adrs, 3
ELSE
BEEP
END IF
위의 예는 키보드에서 숫자키 "0" 을 누르면 선풍기를 끄고, "1"을 누르면 1단....
"3"을 누르면 3단으로 선풍기를 켜지게 하고, 그 외의 키를 누르면 경고음을 내는
프로그램입니다.
이제 선풍기 제어 콘트롤러의 기본적인 제어방법은 다 나온것 같고 나머지는
여기에 살을 붙여서 보기좋고 멋있게 만드는 일 밖에는 안남았군요.
아, 선풍기의 기본적인 기능중 하나로 타이머 기능이 있습니다.
이 기능도 프로그램으로 구현을 해 보죠.
예를들어 선풍기를 미풍으로 20분간 돌리고 끄게끔 하려면,
TimeLimit = 20
TimerOrg = TIMER
OUT LPT1adrs, 1
WHILE (TIMER - TimerOrg) < (TimeLimit * 60)
LOCATE 01, 10:PRINT (TIMER - TimerOrg)
WEND
OUT LPT1adrs, 0
TIMER는 QBASIC 시스템 함수로 일종의 시계입니다.
그런데 이 TIMER는 사용자가 임의로 시간을 설정할 수가 없으므로 대신
시작했을때의 시간을 기억해서 현재시간과 비교하는 방법으로 시간을 측정합니다.
기왕에 PC로 선풍기를 제어한다면 요즘 나오는 선풍기들이 웬만하면 갖추고 있는
퍼지기능을 한번 구현해 볼만 합니다.
퍼지기능의 원래 정의가 무엇이든간에 여하튼 선풍기로 자연의 바람에 가까운
형태의 바람을 불게 해주면 되는거지요.
그런데 자연의 바람이란 항상 그 세기가 변하고, 지속시간이 일정치 않은
변덕스런 바람이므로, 선풍기로 그렇게 흉내를 내면 될것입니다.
컴퓨터로 변덕을 부리는데 약방에 감초처럼 빼놓으면 아무것도 안되는 함수가
RND함수입니다.
그야말로 불규칙한(RANDOM)숫자를 만들어내는 함수로, 0에서 .99999999999사이의
아무 숫자나 만들어 내지요.
그래서 이 함수에 필요한 숫자를 곱하고 정수만 떼어내면 원하는 범위의 숫자중
아무숫자나 얻을 수 있습니다.
이 RND를 이용하여 최첨단 퍼지 선풍기를 만들어 보죠.
OUT LPT1adrs, INT(RND * 4)
하게되면 선풍기는 꺼지든지, 1. 2. 3단중 어느 한 단으로 켜지게 됩니다.
FUZZYLimit = INT(RND * 25) + 5
FUZZYTimer = TIMER
WHILE (TIMER - FUZZYTimer) < (FUZZYLimit)
WEND
이렇게 하면 선풍기는 5초에서 30초사이의 시간동안 그 상태를 유지합니다.
이밖에도 프로그램 하기 따라서 여러가지 재미있는 동작을 할 수 있습니다만
제가 여기서 다 하면 여러분들이 할 일이 없어질까봐(?) 이만 줄입니다.
이 기사만 따라하지 마시고 스스로 아이디어를 짜내서 시도해 보시면
더욱 얻는것이 많을 것입니다.
4. 소스 프로그램 공개
QBASIC으로 작성한 콘트롤러 제어 프로그램을 첨부합니다.
화면이 그리 아름답지는 않습니다만 할 짓은 다 하는 프로그램이지요.
이 프로그램을 참고하셔서 여러분이 평소 쓰던 언어로 멋진 프로그램을 짜면
더 좋을 것입니다.
그럼 이만....
1997. 정 동우 글.
선풍기 콘트롤러 제어 프로그램 소스
DECLARE FUNCTION GetLPT1Address% ()
DEFINT A-Z
DIM OldTimer AS LONG
LPT1adrs = GetLPT1Address
OUT LPT1adrs, 0 'Clear printer port data register
OldTimer = 0
fuzzy = 0
CLS
PRINT " Electric Fan Controller for PC"
PRINT
PRINT
PRINT " Wind Strength : 0 1 2 3"
PRINT " ^"
PRINT
PRINT "
PRINT
PRINT "
PRINT
PRINT "
DO
k$ = ""
WHILE k$ = ""
k$ = INKEY$
IF OldTimer <> 0 THEN
IF (TIMER - OldTimer) < (TimeLimit * 60) THEN
LOCATE 7, 27: PRINT USING "#####"; (TimeLimit * 60) - (TIMER - OldTimer)
ELSE
LOCATE 7, 27: PRINT "00000"
OUT LPT1adrs, 0
OldTimer = 0
END IF
END IF
IF fuzzy THEN
IF (TIMER - oldfuzzy) > fuzzyLen THEN
OUT LPT1adrs, INT(RND * 4)
fuzzyLen = INT(RND * 25) + 5
oldfuzzy = TIMER
END IF
END IF
WEND
IF k$ = "0" THEN
OUT LPT1adrs, 0
LOCATE 5, 27: PRINT "^ "
ELSEIF k$ = "1" THEN
OUT LPT1adrs, 1
LOCATE 5, 27: PRINT " ^ "
ELSEIF k$ = "2" THEN
OUT LPT1adrs, 2
LOCATE 5, 27: PRINT " ^ "
ELSEIF k$ = "3" THEN
OUT LPT1adrs, 3
LOCATE 5, 27: PRINT " ^ "
ELSEIF k$ = CHR$(13) THEN
LOCATE 15
INPUT "Setting Timer(1 - 60 minute):"; TimeLimit
OldTimer = TIMER
ELSEIF k$ = CHR$(27) THEN
EXIT DO
ELSEIF k$ = " " THEN
fuzzy = NOT fuzzy
LOCATE 9, 27
IF fuzzy THEN PRINT "Yes" ELSE PRINT "No "
fuzzyLen = INT(RND * 25) + 5
oldfuzzy = TIMER
ELSE
BEEP
END IF
LOOP
OUT LPT1adrs, 0
END
FUNCTION GetLPT1Address
DEF SEG = &H40
GetLPT1Address = PEEK(8) + PEEK(9) * 256
DEF SEG
END FUNCTION
이전으로 목차로
TRIAC 위상제어와 제로크로싱제어의 장단점 비교
떡 본김에 제사 지낸다고 여기까지 왔으니 위상제어와 제로크로싱제어의 차이점(장단점)을 살펴보고 넘어갑니다.
비교 항목 위상제어 제로크로싱제어
----------------------------------------------------------------------------------------------
1. 제어방법 트리거펄스의 위상을 제어 1/2CYCLE단위로 on/OFF
2. 출력율 제어 전압과 전류의 곱, 위상등으로 복잡 단순 분수계산으로 간단.
3. 주요 용도 모터등의 출력제어 히터등의 출력제어
4. 노이즈 발생 트리거 위상에 따라 임펄스 노이즈 발생 임펄스 노이즈가 거의 없음
5. TRIAC 사용율 돌입전류를 감안해 정격의 1/2 이하 정격의 80%까지도 사용가능
1. 제어방법
앞에서 설명했으니 생략합니다.
2. 출력율제어
위상제어에서의 출력율 계산은 정말 간단치 않습니다.
평균값은 P = 전압 x 전류 x 역율 이지만 위상제어에서는 순시값으로 계산해야 하므로
순시전력 P(wt) = Vsin θ x Isin(θ + θ') 가 되고(여기서 θ' 는 위상지연각입니다)
자, 이제 P를 적분하면 전력이 되는데.. 여기서 그만합니다. 더 하면 필자의 바닥이 드러납니다.
목적은 P를 계산하는 것이 아니라 위상제어에서는 출력율 계산이 복잡하다는 것을 설명하는 것이니까..휴..
ATmega8 정도의 MCU에서 하려면 <MATH.C>라도 포함시켜야 할텐데 크기가 문제가 되지요.
제로크로싱에서는 출력율계산이 분수라지만 실제로는 정수 더하기 빼기로 종결입니다.
3. 주요 용도
제로크로싱이 간단하면서도 정확하게 출력제어가 가능하지만 모터에 적용하기에는 무리가 있습니다.
히터에서는 문제가 안되지만 모터는 출력이 단속적으로 흔들리면 모터의 토르크가 크게 떨어지거나 모터에 연결된 기구에 진동을 일으킬 수 있습니다.
필자가 팬모터에 실험해 본 바로도 모터 출력율을 80%로 낮추면 회전속도는 거의 절반으로 떨어졌습니다.
어떤 출력율에서는 '덜,더덜덜..'하는 소리도 내더군요. 모터제어에는 비추입니다.
4. 노이즈 발생
그냥 넘어가기 쉽지만 전자제품이라면 제로크로싱의 가장중요한 장점이라고 볼 수 있습니다. 이것은 그대로 원가와 연결되기 때문이죠. 원가와 관련된 일은 모두 중요한 일입니다.
위상제어는 필연적으로 큰 임펄스 노이즈를 발생시킵니다.
특히 트리거 시점이 사이클의 최대점(50%)부근일 때 가장 큽니다.
요즘은 그런 제품이 없지만 수십년전 TRIAC 출시 전후에는 볼륨으로 출력을 제어하는 열기기를 사용하면 TV에 힌 줄이 오락가락하고 라디오가 지직 소리를 냈습니다.
전기용품형식승인제도가 정착되면서 모든 전기제품은 EMI 시험기준을 만족해야 합니다.
즉, 전자파 또는 전원선을 통하여 기준이상의 노이즈를 발생시켜서는 안된다는 것입니다.
위상제어제품은 그래서 필수적으로 상당히 강력하고 비싼 EMI 감쇠부품을 넣습니다. 이거 상상히 비쌉니다.
몇년전에 할로겐히터 컨트롤러 문제점을 상담해준 일이 있었는데 그 제품은 히터 출력을 위상제어로 하고 있었습니다.
히터가 2KW쯤 되니까 전류도 상당해서(10A) 노이즈차단을위한 링코일도 꽤 크고 열도 많이 발생하더군요.
제로크로싱제어로 재설계해야 한다고 조언해 준 적이 있습니다.
제로크로싱제어에서는 EMI노이즈가 거의 발생하지 않습니다. 당연히 EMI필터도 MCU 노이즈를 제거하는 수준으로도 충분합니다.
5. TRIAC 사용율
이것도 중요하죠. TRIAC는 전압,전류용량에 따라 가격차이가 큽니다.
위상제어에서는 돌입전류와 임펄스를 감안해 전류용량과 내전압이 충분히 높은 품종을 선정해야 합니다.
제로크로싱에서는 돌입전류도 임펄스도 거의 없기 때문에 TRIAC의 정격을 충분히 활용할 수 있습니다.
필자는 최근 수저건조기와 음식물쓰레기처리기에서 TRIAC 제로크로싱 출력제어를 활용했습니다.
PID제어를 하면서 출력율을 정밀하게 제어할 수 있어서 상당히 좋은 효과를 거두었습니다.
씨에스랩 쥔장
TRIAC의 제로크로싱 제어를 활용한 출력제어
이번에는 AC전력제어에 많이 쓰이는 TRIAC 전력제어 중에서 제로크로싱제어를 사용한 출력제어법을 소개합니다.
TRIAC을 사용하여 전력(우리나라는 보통 AC220V)기기를 제어하는 방법은 크게 두가지로 나눌 수 있습니다.
하나는 위상제어이고 또 하나는 이번에 소개하려는 제로크로싱(Zero Crossing)제어 입니다.
혹시 이게 뭔미? 하시는 분들을 위해 위상제어와 제로크로싱제어에 대해 간략히 설명합니다.
위 그림에서 붉은색 사인파형은 AC라인의 전압파형이죠.
그리고 수직으로 내려운 검은색 실선은 TRIAC GATE TRIGGER 신호입니다.
위상제어는 트리거의 위상을 조절해서 AC출력(그림의 'ON'구간) 크기를 제어하는 것입니다.
즉, AC전압이 원점을 통과하는 시점을 검출해서 그 시점을 기준으로 트리거를 일찍하면 출력은 100%에 근접하고,
트리거 타이밍을 늦추면(최대 8.333ms) 출력은 0%에 근접하게 됩니다.
참고로 우리나라의 전력은 모두 60Hz이니까 1Hz는 1/60 = 16.667ms이고 그 반파에 해당하는 1/2는 8.333ms입니다.
제로크로싱제어에서는 AC전압이 원점을 통과하는 시점 직후에 TRIAC에 트리거 신호를 줍니다.
위 그림처럼 트리거 신호를 주면 'ON', 주지 않으면 'OFF'가 되는거죠.
그러니까 위상제어에 비해 간단하다고 할 수 있습니다.
자, 이제 위상제어를 하든 제로크로싱을 하던 TRIAC을 사용한 전력제어 회로의 예를 보입니다.
PH_CHECK는 MCU의 인터럽트로 연결하고 인터럽트 모드는 NEGATIVE EDGY 트리거로 설정해야 합니다.
TRIGGER이야 당연히 출력포트로 연결하는거죠. 가능하면 MCU의 출력포트는 OPEN 모드인것이 좋습니다.
PH_CHECK INT는 포토커플러의 동작점이 있어서 AC 제로크로싱 포인트 보다 일정시간 늦게 되는데 이는 R2값으로 어느정도 조절할 수 있습니다.
그런데 트리거 시점은 제로크로싱 포인트보다 일정시간 늦어야 합니다. 그 이유는 TRIAC에 짧은 펄스(10us)로 트리거 신호를 주더라도 그 시점의 순간전압이 매우 낮으면 전류가 거의 흐르지 않게 되는데 흐르는 전류가 일정값 이하이면 TRIAC는 'TRIGGER on'에 실패하게 됩니다.
이것을 TRIAC의 최소 유지전류라고 합니다.
만일 모터등 인덕턴스 성분이 큰 부하인 경우는 전압투입에 비해 전류의 흐름이 상당히 늦게 됩니다. 이때는 트리거 시간을 적당히 연장하던지 아니면 연속적인 트리거 신호를 주던지 해야 합니다.
제로크로싱은 역률이 100%에 가까운(즉, 위상지연이 거의 0도인) 히터부하를 대상으로 하므로 모터를 대상으로하는 위상제어에 대한 이야기는 생략하겠습니다.
편의상 여기서는 1/2 CYCLE을 1펄스로 표현하겠습니다.
자, 그러면 예를 들어 48% 출력제어를 어떻게 하면 좋을까요?
간단히 생각하면 100번의 펄스(1/2 CYCLE)가 발생하는동안 48번을 보내면 되는것이죠.
그렇다고 '48 펄스를 먼저 출력하고 62펄스는 쉰다'는 것은 좀 안이한 발상입니다.
이렇게 하면 히터의 출력이 0.833초(100/120초)를 주기로 흔들리게 되는데 이는 히터의 온도제어에 오차로 나타나게 됩니다.
또 현실적으로도 히터에 소음이 발생한다든지(지잉..지잉..하는 소리가 납니다.)하는 문제도 생깁니다.
자, 우선 분모를 100으로 하고 분자는 0으로 합니다.
먼저 분자에 출력율을 더합니다. -> 48/100 -> 1 이하이므로 쉽니다.
첫 크로싱에서 또 출력율을 더합니다. -> 96/100 -> 1 이하이므로 쉽니다.
다음 크로싱에서 또 출력율을 더합니다. -> 144/100 -> 1 이상이므로 1펄스를 출력하고 분자에서 100을 뺍니다. -> 44/100
다음은 92/100 -> OFF -> 140/100 -> on(40/100) -> 88/100 -> OFF -> 136/100 -> on(36/100) ......
결국 50회의 크로싱에서 24번의 'ON'이 적절히 분산되어 발생하게 됩니다.
히터에 주는 출력은 골고루 분산되겠죠.
자, 이제는 구현코드를 보겠습니다.
이런 간단한 제어는 대부분 소형 MCU로 구현되는 일이 많은데, 여기서는 ATMEGA32에서 구현된 코드입니다.
컴파일러는 코드비젼입니다.
//
// 지정된 비율에 따라 히터 출력을 결정
//
#define PULSE_DUTY 100 // 여기서 제어 정밀도가 결정됩니다. 100이면 %단위가 됩니다.
uchar HeatCount;
char pulse_out_heater(void)
{
char pulse = 0;
if (HeaterOn) // 히터를 켜고 끄는 스위치입니다.
{
HeatCount += HeatOut;
if (HeatCount >= PULSE_DUTY)
{
pulse = 1;
HeatCount -= PULSE_DUTY;
};
}
return pulse;
}
//
// PH_CHECK에 의해서 발생하는 EXT_INT2 인터럽트입니다.
// External Interrupt 2 service routine
// 60Hz Power Cycle Detect
// Plus Cycle Trigger
// 잠깐, 회로를 보면 플러스 사이클에서는 PH_CHECK 신호가 나오지만
// 마이너스 사이클에서는 PH_CHECK가 나오지 않습니다.
// 따라서, PH_CHECK에 의한 인터럽트가 발생한 후 8,333us후에 타이머1 인터럽트를 발생시켜
// 마이너스 사이클에서도 출력을 제어하도록 합니다.
//
#define TRIG_TIME_DELAY 65536-8333 // 0us delay
interrupt [EXT_INT2] void ext_int2_isr(void)
{
if (pulse_out_heater()) TRIGGER= 0;
delay_us(10); // TRIAC의 트리거는 10uS 펄스폭만으로도 충분합니다.
TRIGGER = 1;
// 8,333us 후에 TIMER1 INT가 발생하도록 설정
TCCR1A=0x00;
TCCR1B=0x02;
TCNT1H = TRIG_TIME_DELAY >> 8;
TCNT1L = TRIG_TIME_DELAY & 0xFF;
TIMSK=0x05; // Timer0,1 Interrupt enable
}
//
// Timer 1 overflow interrupt service routine
// Minus Cycle Trigger
//
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
if (pulse_out_heater()) TRIGGER= 0;
TCCR1A=0x00;
TCCR1B=0x00;
TIMSK=0x01; // Timer1 Interrupt disnable
delay_us(10);
TRIGGER= 1;
}
//
// 이것은 ATMEGA32에서의 EXT2 INT 설정함수입니다.
// ATMEGA계열은 대부분 그대로 사용할 수 있습니다.
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: on
// INT2 Mode: Falling Edge
//
void extint2_init(void)
{
GICR|=0x20;
MCUCR=0x00;
MCUCSR=0x00;
GIFR=0x20;
}
위상 제어 회로(Phase Control Rectifier)
【 이론 】
SCR의 대표적인 응용이 램프조광기, 전기 히이터, 전기모터등 전력제어이다. 전력 제어의 기법은 입력 전압 파형의 도통각을 조절하여 부하에 공급되는 전력을 제어하는 것으로 결국 위상제어(Phase Control)가 된다. 여기에서는 반파 전력제어 회로를 이용하여 위상 제어 개념을 설명하고자 한다.
그림 19-17은
이 회로의 위상제어 동작을 그림 19-18을 이용하여 설명한다.
입력전압은 SCR의 양단자와
그림 (a)는
그림 (b)는
그림 (c)는
이상과 같이 SCR이 Trigger 위상을 제어하여 공급전압의 위상을 제어함으로써 전력을 제어하는 방식을 위상제어라고 한다.
'전기방' 카테고리의 다른 글
[스크랩] 발전기 (0) | 2015.05.28 |
---|---|
[스크랩] `별빛 에너지가 미래 에너지다`···美과학자들 초당 400만W에 도전‘ (0) | 2015.05.28 |
[스크랩] ch-3 마그네트에 24시간타이머설치?? (0) | 2015.05.28 |
[스크랩] 전동기의 종류 및 원리 (0) | 2015.05.28 |
[스크랩] motor 권선 하는 방법, motor수리 (0) | 2015.05.28 |