Microsoft MVP성태의 닷넷 이야기
사물인터넷: 31. 커패시터와 RC 회로 [링크 복사], [링크+제목 복사]
조회: 233
글쓴 사람
정성태 (kevin13@chol.net)
홈페이지
첨부 파일

커패시터와 RC 회로

"짜릿짜릿 전자회로 DIY (2판) 뜯고 태우고 맛보고, 몸으로 배우는" 책의 그림 2-71 회로 실습을 보면 1000uF 용량의 커패시터를 사용하고 있어서 저도 이 부품을 구매했습니다.

50PK1000MEFCCC12.5X25
; https://www.eleparts.co.kr/goods/view?no=2627278

Capacitance: 1000uF
Voltage Rating: 50V
Product Range: PK Series
Capacitance Tolerance: ±20%
Capacitor Terminals: Radial Leaded
Diameter: 12.5mm
Lead Spacing: 5mm
Height: 25mm
Operating Temperature Min: -40°C
Operating Temperature Max: 85°C
Lifetime @ Temperature: 2000 hours @ 85°C
Capacitance Tolerance ±: ±20%
Packaging: Each
Ripple Current AC: 1350mA

(첨부 파일에 datasheet - 2321614.pdf가 있습니다.)

보통 전해 커패시터는 다리의 길이로 극을 알 수 있다고 하는데요, 배송되어온 제품이 다음과 같이 다리가 동일하게 잘려 있는 것입니다. ^^;

capacitor_1.png

극을 찾는 다른 방법이 있을까 찾아봤더니 다행히 ^^ 있습니다.

전해 콘덴서의 고장 여부 판별 방법 및 기능 총정리
; http://mon.futurepia.com/21

제가 올려놓은 사진을 보면 우측에 회색 띠가 있는데요, 그 부분 쪽으로 나온 다리가 음극인 것입니다. 자, 그럼 간단하게 다음과 같이 회로를 구성해 봅니다.

capacitor_2.png

그런 후 계측기로 커패시터 다리 양측의 전압을 재는데, 스위치를 누르면 금방 다음과 같이 바뀝니다.

[측정값]
+/-: 8.83V
커패시터: 8.83V

저항이 없는 상태이기 때문에 순식간에 8.83V로 채워지고 스위치를 떼면 그 이후부터 0.0x ~ 0.00x 단위의 전압이 누수가 되면서 떨어집니다. 그리고 양(+)극에 연결된 선을 GND로 옮긴 후(어떤 식으로든 커패시터를 배터리로 여기고 +/-를 연결하는 폐회로 구성) 다시 스위치를 누르면 순식간에 0V 전압으로 내려가는데 재미있는 것은 이번엔 0.0x ~ 0.00x 단위의 전압이 다시 올라가는 현상이 발생합니다.

이렇게 순간에 충전되고, 순간에 방전되는 것을 모두, 저항을 이용하면 제어가 가능합니다.

우선, 순간에 충전되지 않도록 회로를 다음과 같이 변경해 보겠습니다.

capacitor_3.png

이렇게 저항을 연결해 주면 "TC = R * C"라는 시상수(Time constant, 또는 시정수)" 함수에 따라 커패시터가 갖는 충전 용량의 63%를 원하는 시간에 채우도록 제어할 수 있습니다. 예를 들어, R = 1K, C = 1,000uF 이면 TC = 1000 * 0.001F = 1이 되므로 1초에 완전히 방전된 커패시터를 9V의 63%까지 채울 수 있습니다. (이후로 미분 방정식처럼 그런 과정이 연속됩니다.)

또한 순간에 방전되지 않도록 하는 것은 저항을 다음과 같이 병렬로 연결하면 됩니다.

capacitor_4.png

위와 같이 구성하면 S1 스위치를 닫는 경우 R1의 저항 크기에 따라 커패시터가 충전되는 속도가 달라지며, (S1을 떼고) S2 스위치를 닫으면 R2의 저항 크기에 따라 커패시터의 방전 속도가 달라집니다.

이렇게 구성한 회로를 RC(Resistor-Capacity) 네트워크라고 부른다는데 ^^ 저 같은 비전공자가 설명할 만한 내용이 아니므로 ^^ 이에 대해서는 다음의 글을 좀 더 읽어보시길 바랍니다.

RC회로의 응용(1)
; http://forum.falinux.com/zbxe/index.php?document_srl=792177

RC회로의 응용(2)
; http://forum.falinux.com/zbxe/index.php?document_srl=794104




이번엔 위의 회로에서 저항 옆에 LED 하나씩을 붙여 보겠습니다.

capacitor_5.png

복잡한 회로라고 생각이 드는데, 그냥 충전 시에 동작할 회로라면 아래의 S2 스위치가 그려진 부분은 없다고 생각하면 됩니다. 그 상태에서 상단의 S1 스위치를 닫으면 어떻게 될까요?

처음 C1 커패시터는 0V로 충전된 상태이기 때문에 시상수 함수의 규칙에 따라 (초기에는 빠르지만 이후) 서서히 충전이 될 것입니다. 충전이 되면서 자연스럽게 커패시터의 전압이 0V에서 9V 가까이까지 올라가게 됩니다. 예를 들어, 커패시터에 0V 일 때는 나머지 9V의 전압이 "R1 + LED2"에 걸리게 됩니다. 즉, 이해를 돕자면 커패시터가 0Ω에서 계속 저항값이 증가하는 부품이라고 생각하면 됩니다. 저항값이 올라가면서(즉, 충전이 이뤄지면서) 나머지 전압은 커패시터 이후의 부품들이 받게 되는 것입니다.

이 때문에, 위의 회로는 S1을 닫으면 LED2 부품이 밝아졌다가 서서히 빛을 잃어가게 됩니다.

이어서 방전을 해보겠습니다. 방전할 때, 커패시터는 DC 건전지라고 생각하면 됩니다. 그렇다면 위의 회로에서 (S1 스위치가 열리고) S2 스위치가 닫혔을 때 이번엔 커패시터에 충전된 전압이 R2, LED1 부품을 흐르면서 전원을 공급하게 됩니다. 따라서 LED1이 밝아졌다가 서서히 흐려지게 됩니다.

여기서 C1 커패시터의 용량을 0.33uF로 된 것을 연결해보겠습니다.

AL-CAP 0.33uF 50V   
; https://www.eleparts.co.kr/goods/view?no=3369510

전해콘덴서 85도
5x11mm,2000HRS

(첨부 파일에 datasheet - SHL.pdf가 있습니다.)

이 상태에서 S1 스위치를 닫으면 LED2가 순간적으로 깜빡하고는 커패시터의 용량이 금방 6.68V까지 충전됩니다. 그다음 (S1 스위치를 열고) S2 스위치를 닫으면 마찬가지로 LED1이 순간적으로 깜빡하고는 커패시터의 용량이 금방 0V에 가깝게 내려갑니다.

재미있는 것은, 이때 커패시터의 +/- 노드에 계측기를 연결한 경우입니다. 계측기를 (전압 측정 모드로) 연결하면 S1 스위치를 닫아 6.68V까지 충전한 다음 스위치를 열면 커패시터 자체의 누수라고 하기에는 너무 빠른 속도로 방전이 됩니다. 그래서 계측기 연결 상태에서는 S2 스위치를 빨리 테스트하지 않으면 LED1이 깜빡이는 것을 볼 수 없습니다.

이유는 이렇습니다. 제가 가진 계측기는 전압을 측정하기 위해 자체 저항을 10MΩ으로 연결하기 때문에 결국 커패시터에 저항을 병렬연결한 것이므로 커패시터가 방전을 시작하는 것입니다. 그런데 1000uF에 비해 0.33uf의 방전이 빠른 것은 시상수의 함수가 달라졌기 때문입니다.

10MΩ = 10000000Ω
1000uF = 0.001F
0.33uF = 0.00000033F

TC = R * C

10000000 * 0.001 = 10,000초
10000000 * 0.00000033 = 3.3초

따라서 3초 만에 기 충전되었던 전압에서 (1 - 0.63) 37%만큼의 전압으로 떨어지게 됩니다.




위의 내용을 이해하고, "짜릿짜릿 전자회로 DIY (2판) 뜯고 태우고 맛보고, 몸으로 배우는" 책의 101 페이지에 있는 회로도를 보면 이제 설명이 틀렸다는 것을 알 수 있습니다.

capacitor_6.png

책에서 위의 회로를 설명할 때 다음과 같이 시작합니다.

버튼 B를 눌렀다가 떼서 커패시터를 충전하면...

실은 "충전"이 아니라 "방전"입니다. 위의 회로에서 C1 커패시터를 기준으로 S1 스위치가 닫힘으로써 (저항 없는) 폐회로가 구성되었기 때문에 커패시터는 일순간에 방전해 버립니다.

그리고 이후의 설명도 약간 혼란스러운 면이 있습니다.

버튼 B를 눌렀다가 떼서 커패시터를 방전하면 계측기에 약 9VDC의 측정값이 나타나는데 커패시터의 위쪽 핀이 10K 저항을 지나 양극 버스와 연결되어 있기 때문이다. 커패시터가 DC를 차단하고 있기 때문에 커패시터에 걸리는 저항이 무한하고 양전하가 '갈 데가 없'는 것처럼 보인다.


저기서 계측기에 9VDC의 측정값이 나타나는 것은 저항의 연결이나 커패시터가 DC를 차단하고 있는 것과는 아무런 상관이 없습니다. 다시 말해, 저 회로에서 R1, C1 부품이 없어진다고 해도 여전히 9VDC의 측정값이 나옵니다. 왜냐하면 S2 스위치가 열려 있어 회로가 끊어져 있기 때문입니다. 위의 회로에서 C1은 S1을 눌러 방전한 상태이므로 0V 전압을 띠게 되므로 결과적으로 다음과 같은 회로의 전압을 재는 것과 같습니다. (그리고 그 끊어진 회로를 계측기가 10MΩ의 저항으로 직렬 연결하면서 전압을 측정한 것으로 이에 대해서는 "http://www.sysnet.pe.kr/2/0/11651" 글에서도 한 번 다뤘습니다.)

capacitor_7.png

따라서 저 회로에서 S2 스위치의 좌측과 음극의 전압을 재는 것이므로 자연스럽게 9V가 나오는 것은 당연합니다. 단지 이런 이유일뿐인데 그 설명을 "커패시터의 위쪽 핀이 10K 저항을 지나 양극 버스와 연결되어 있기 때문... 커패시터가 DC를 차단하고 있기 때문에 커패시터에 걸리는 저항이 무한..."이라고 장황하게 설명하니 왠지 10K 저항과 커패시터가 연결되어 있어 9V가 나오는 것처럼 이해할 수 있는 여지를 남긴 것입니다.

(첨부 파일은 이 글의 그림에 대한 fzz 파일입니다.)




커패시터의 활용이란, 결국 충전과 방전을 적절한 시기에 원하는 속도로 하도록 저항을 잘 연결하는 것이라 생각하는데요. 충전의 경우, DC 전압과 연결한 닫힘 회로가 필요하고 방전의 경우 DC 전압이 유입되지 않는 상황에서 어떤 식으로든 닫힘 회로가 필요합니다.

문제는, DC 전원 하에서 충전과 방전을 단일 폐회로에서 하는 것은 불가능하기 때문에 자연스럽게 병렬 회로를 비롯해 복잡한 구성을 가져갈 수밖에 없습니다. 아마도 그래서 더 커패시터가 연결된 회로를 이해하는 것이 어려울지도 모르겠습니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]





[최초 등록일: ]
[최종 수정일: 8/18/2018 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:kevin13@chol.com

비밀번호

댓글 쓴 사람
 




[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
11700정성태9/21/201837Graphics: 25. Unity - shader의 직교 투영(Orthographic projection) 행렬(UNITY_MATRIX_P)을 수작업으로 구성
11699정성태9/21/201826오류 유형: 488. Add-AzureAccount 실행 시 "No subscriptions are associated with the logged in account in Azure Service Management (RDFE)." 오류
11698정성태9/21/201820오류 유형: 487. 윈도우 성능 데이터를 원격 SQL에 저장하는 경우 "Call to SQLAllocConnect failed with %1." 오류 발생
11697정성태9/20/201833Graphics: 24. Unity - unity_CameraWorldClipPlanes 내장 변수 의미
11696정성태9/19/201869.NET Framework: 793. C# - REST API를 이용해 NuGet 저장소 제어파일 다운로드1
11695정성태9/21/201861Graphics: 23. Unity - shader의 원근 투영(Perspective projection) 행렬(UNITY_MATRIX_P)을 수작업으로 구성
11694정성태9/17/201866오류 유형: 486. nuget push 호출 시 405 Method Not Allowed 오류 발생
11693정성태9/16/201892VS.NET IDE: 128. Unity - shader 코드 디버깅 방법
11692정성태9/18/2018118Graphics: 22. Unity - shader의 Camera matrix(UNITY_MATRIX_V)를 수작업으로 구성
11691정성태9/13/2018153VS.NET IDE: 127. Visual C++ / x64 환경에서 inline-assembly를 매크로 어셈블리로 대체하는 방법 - 두 번째 이야기
11690정성태9/13/201890사물인터넷: 43. 555 타이머의 단안정 모드파일 다운로드1
11689정성태9/13/2018108VS.NET IDE: 126. 디컴파일된 소스에 탐색을 사용하도록 설정(Enable navigation to decompiled sources)
11688정성태9/11/201883오류 유형: 485. iisreset - The data is invalid. (2147942413, 8007000d) 오류 발생
11687정성태9/11/201884사물인터넷: 42. 사물인터넷 - 트랜지스터 다중 전압 테스트파일 다운로드1
11686정성태9/8/2018108사물인터넷: 41. 다중 전원의 소스를 가진 회로파일 다운로드1
11685정성태9/6/2018224사물인터넷: 40. 이어폰 소리를 capacitor로 필터링파일 다운로드1
11684정성태9/6/2018317개발 환경 구성: 396. pagefile.sys를 비활성화시켰는데도 working set 메모리가 줄어드는 이유파일 다운로드1
11683정성태9/5/2018190개발 환경 구성: 395. Azure Web App의 이벤트 로그를 확인하는 방법
11682정성태9/5/2018169오류 유형: 484. Fakes를 포함한 단위 테스트 프로젝트를 빌드 시 CS1729 관련 오류 발생
11681정성태9/5/2018259Windows: 149. 다른 컴퓨터의 윈도우 이벤트 로그를 구독하는 방법 [2]
11680정성태9/2/2018202Graphics: 21. shader - _Time 내장 변수를 이용한 UV 변동 효과파일 다운로드1
11679정성태8/31/2018270.NET Framework: 792. C# COM 서버에 구독한 COM 이벤트를 C++에서 받는 방법파일 다운로드1
11678정성태8/29/2018206오류 유형: 483. 닷넷 - System.InvalidProgramException
11677정성태8/29/2018176오류 유형: 482. TFS - Could not find a part of the path '...\packages\Microsoft.AspNet.WebApi.5.2.5\.signature.p7s'.
11676정성태8/29/2018258.NET Framework: 791. C# - ElasticSearch를 위한 Client 라이브러리 제작파일 다운로드1
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...