Microsoft MVP성태의 닷넷 이야기
사물인터넷: 31. 커패시터와 RC 회로 [링크 복사], [링크+제목 복사]
조회: 13927
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
(연관된 글이 1개 있습니다.)

커패시터와 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Ω의 저항으로 직렬 연결하면서 전압을 측정한 것으로 이에 대해서는 "https://www.sysnet.pe.kr/2/0/11651" 글에서도 한 번 다뤘습니다.)

capacitor_7.png

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

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




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

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

1F = 1C / 1V (전위를 1V 상승시키는데 1[C]의 전하가 필요한 용량)

전해 (극성, 높은 커패시턴스, 낮은 정격전압)
  알루미늄(Aluminum) - 직류 또는 100kHz 미만 교류 회로의 전원 노이즈 필터 또는 바이패스 용도, 높은 용량, 저주파수
  탄탈(Tantalum) - 주파수 특성 우수 - 노이즈 리미트, 바이패스, 커플링 회로, 전원필터 회로, 역전압에 취약, 비교적 높은 용량
비전해 (무극성, 낮은 커패시턴스)
  세라믹(Ceramic)
  필름(Film)
  마이카(Mica)
기타
  칩 (칩 세라믹, 칩 전해, 칩 탄탈륨)
  슈퍼 (울트라, 전기이중층 커패시터) - 배터리 역할, 가전제품에 광범위하게 사용
  배리어블 - 일정한 범위 내에서 용량 변화 가능

정전용량(EIA Code 표시법)
  474 - 47 * 104 = 470,000[pF] = 470[nF] = 0.47[uF]
  4R7 - 4.7[pF]
  1R5 - 1.5[pF]
  202 - 20 * 102 = 2,000[pf] = 2[nF] = 0.002[uF]
  336 - 33 * 106 = 33,000,000[pF] = 33,000[nF] = 33[uF]

오차(EIA Code 표시법)
  J - +-5% (탄탈, 세라믹, 필름)
  K - +-10% (탄탈, 세라믹, 필름)
  M - +-20% (알루미늄, 세라믹)

정격전압(EIA Code 표시법)
  2A - 2(10의 승수), A(1) = 100 * 1 = 100V
  3C - 3(10의 승수), C(1.6) = 1000 * 1.6 = 1600V
  2E - 2(10의 승수), E(2.5) = 100 * 2.5 = 250V
  2G - 2(10의 승수), G(4) = 100 * 4 = 400V
12KV - 12,000V

리드 타입
  - Radial Lead Type (긴 노드가 +)
  - Axial Lead Type (+ 쪽의 오목한 홈)
  - Chip Type (+ 쪽의 굵은 선 마킹)

병렬 연결 - 허용전압(내압)은 작은 값을 따르고, 합성 용량은 커지고,
직렬 연결 - 허용전압(내압) 증가, 합성 용량은 작아짐




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

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/19/2021]

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

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...
NoWriterDateCnt.TitleFile(s)
13244정성태2/5/20233975VS.NET IDE: 179. Visual Studio - External Tools에 Shell 내장 명령어 등록
13243정성태2/5/20234843디버깅 기술: 190. windbg - Win32 API 호출 시점에 BP 거는 방법 [1]
13242정성태2/4/20234281디버깅 기술: 189. ASP.NET Web Application (.NET Framework) 프로젝트의 숨겨진 예외 - System.UnauthorizedAccessException
13241정성태2/3/20233815디버깅 기술: 188. ASP.NET Web Application (.NET Framework) 프로젝트의 숨겨진 예외 - System.IO.FileNotFoundException
13240정성태2/1/20233980디버깅 기술: 187. ASP.NET Web Application (.NET Framework) 프로젝트의 숨겨진 예외 - System.Web.HttpException
13239정성태2/1/20233623디버깅 기술: 186. C# - CacheDependency의 숨겨진 예외 - System.Web.HttpException
13238정성태1/31/20235622.NET Framework: 2092. IIS 웹 사이트를 TLS 1.2 또는 TLS 1.3 프로토콜로만 운영하는 방법
13237정성태1/30/20235283.NET Framework: 2091. C# - 웹 사이트가 어떤 버전의 TLS/SSL을 지원하는지 확인하는 방법
13236정성태1/29/20234953개발 환경 구성: 663. openssl을 이용해 인트라넷 IIS 사이트의 SSL 인증서 생성
13235정성태1/29/20234480개발 환경 구성: 662. openssl - 윈도우 환경의 명령행에서 SAN 적용하는 방법
13234정성태1/28/20235520개발 환경 구성: 661. dnSpy를 이용해 소스 코드가 없는 .NET 어셈블리의 코드를 변경하는 방법 [1]
13233정성태1/28/20236872오류 유형: 840. C# - WebClient로 https 호출 시 "The request was aborted: Could not create SSL/TLS secure channel" 예외 발생
13232정성태1/27/20234691스크립트: 43. uwsgi의 --processes와 --threads 옵션
13231정성태1/27/20233605오류 유형: 839. python - TypeError: '...' object is not callable
13230정성태1/26/20234018개발 환경 구성: 660. WSL 2 내부로부터 호스트 측의 네트워크로 UDP 데이터가 1개의 패킷으로만 제한되는 문제
13229정성태1/25/20234961.NET Framework: 2090. C# - UDP Datagram의 최대 크기
13228정성태1/24/20235102.NET Framework: 2089. C# - WMI 논리 디스크가 속한 물리 디스크의 정보를 얻는 방법 [2]파일 다운로드1
13227정성태1/23/20234810개발 환경 구성: 659. Windows - IP MTU 값을 바꿀 수 있을까요? [1]
13226정성태1/23/20234466.NET Framework: 2088. .NET 5부터 지원하는 GetRawSocketOption 사용 시 주의할 점
13225정성태1/21/20233738개발 환경 구성: 658. Windows에서 실행 중인 소켓 서버를 다른 PC 또는 WSL에서 접속할 수 없는 경우
13224정성태1/21/20234074Windows: 221. Windows - Private/Public/Domain이 아닌 네트워크 어댑터 단위로 방화벽을 on/off하는 방법
13223정성태1/20/20234269오류 유형: 838. RDP 연결 오류 - The two computers couldn't connect in the amount of time allotted
13222정성태1/20/20233929개발 환경 구성: 657. WSL - DockerDesktop.vhdx 파일 위치를 옮기는 방법
13221정성태1/19/20234138Linux: 57. C# - 리눅스 프로세스 메모리 정보파일 다운로드1
13220정성태1/19/20234281오류 유형: 837. NETSDK1045 The current .NET SDK does not support targeting .NET ...
13219정성태1/18/20233856Windows: 220. 네트워크의 인터넷 접속 가능 여부에 대한 판단 기준
1  2  3  4  5  6  7  8  9  10  11  12  13  14  [15]  ...