Microsoft MVP성태의 닷넷 이야기
사물인터넷: 35. 병렬 회로에서의 커패시터 [링크 복사], [링크+제목 복사],
조회: 17223
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일

병렬 회로에서의 커패시터

커패시터는 (시간이 주어진다면) 입력 전압만큼 충전이 됩니다. 예를 들어, 다음의 회로를 보면,

capacitor_parallel_1.png

회로 전압이 8.73V 일 때, C1도 8.73V만큼 충전이 됩니다. 그리고 다음과 같이 병렬 회로를 구성해도,

capacitor_parallel_2.png

8.61V 전압으로 약간 내려가긴 했지만 금방 충전이 됩니다.

하지만 위의 회로에서 다음과 같이 저항을 하나 추가하면,

capacitor_parallel_3.png

(R3와 Battery 구간의 전류는 4.36mA) 이젠 C1에 4.31V 정도만 충전이 됩니다. 대략, R3와 R1이 50:50으로 전압을 나눠 갖은 정도입니다. 조금 생각해 보면 이해가 됩니다. 원래는 R1 || R2의 구간이 병렬 회로이기 때문에 500Ω 정도의 저항이 있을 것이므로 R3 : (R1 || R2) 구간의 전압은 1K:500 정도로 나뉘어야 됩니다. 즉, 8.73V 입력 전압일 때,

[R1 || R2 전압]
1500:500 = 8.73:x
x = 2.91V

[R3 전압]
1500:1000 = 8.73:x
x = 5.82V

이렇게 전압 배분이 되어야 합니다. 하지만, 일단 전원이 인가되면 C1이 충전될수록 점점 더 저항이 올라가는 효과가 발생합니다. 그래서 R1 || R2 병렬 회로의 합성 저항값이 올라가게 되고 이 때문에 2.91V를 넘어 전압을 받게 됩니다. 하지만 병렬 회로의 합성 저항은 아무리 커야 낮은 쪽 저항의 값에 수렴하게 됩니다. 가령 합성 저항의 공식에 위의 회로에서 (R1 || R2)의 합성 저항이 1K가 되도록 만들려면,

1000 = (1000 * x) / (1000 + x)
1000 * (1000 + x) = 1000x
1000 * 1000 + 1000x = 1000x
1000 * 1000 ≠ 0 // 합성 저항이 1K로는 정의할 수 없음.

999 = (1000 * x) / (1000 + x)
999 * (1000 + x) = 1000x
999 * 1000 + 999x = 1000x
999 * 1000 = x
999000 = x         // 합성 저항을 500에서 999로 끌어올리는데 1MΩ 정도의 저항이 필요

그러니까, (1K || 1K) 병렬 회로에서의 합성 저항이 1K가 되려면 C1의 저항이 무한대가 되는 시점(다시 말해 단선이나 다름없는 시점)이고, 그제서야 전체적으로는 직렬 회로처럼 되어 1K:1K 비율의 전압 및 저항으로 나뉘게 되고 결국 C1에 충전할 수 있는 전압의 양은 1/2 정도가 되는 것입니다.




그럼 다음과 같이 LED를 하나 추가해 보면 어떻게 될까요?

capacitor_parallel_4.png

측정해 보면 LED에 2.496V의 전압이 있습니다. 따라서 전체 8.72V에서 2.496V를 제외한 6.224V를 절반으로 나눈 3.112V가 충전될 것입니다. 실제로 측정해 보니 3.083V가 나왔습니다.




또는 이런 식으로 연결하면 어떻게 될까요?

capacitor_parallel_5.png

그럼 (극이 없는) ceramic capacitor는 S1 스위치가 눌린 경우 왼쪽을 양(+) 극을 갖는 충전 상태가 됩니다. 그리곤 S1 스위치를 열면 C1 - R1 - R2의 폐회로가 있기 때문에,

1KΩ = 1000Ω
2.2uF = 0.0000022F

TC = R * C

TC = 2000 * 0.0000022 = 0.0044초

순식간에 방전됩니다. 반면 S2 스위치를 닫는 경우에는 오른쪽을 양(+) 극을 갖는 충전 상태가 되고 S2 스위치를 열면 C1 - R2 - R1의 폐회로가 있기 때문에 마찬가지로 빠르게 방전됩니다.




위의 회로에서 "R2"만 470KΩ으로 저항을 바꿔보겠습니다.

capacitor_parallel_6.png

S1을 누르면 R1을 경유해 충전되므로 1KΩ 저항에 따른 시상수 함숫값으로 충전이 빠르게 이뤄지지만 스위치를 떼었을 때는 (1K + 470K)에 해당하는 시상수 함숫값이 나오기 때문에 방전은 느리게 이뤄집니다.

반면, S2를 누른 경우에는 R2를 경유해 충전되므로 470K 저항에 따른 시상수 함숫값이 나와 충전이 느리게 이뤄지고 방전 시에도 +1K가 더해져 약간 더 느린 속도로 진행합니다.

S1의 On/Off
    C1 - 고속 충전, 저속 방전

S2의 On/Off
    C1 - 저속 충전, 저속 방전

그렇다면, 한 쪽 스위치(예를 들어 S1 스위치를 닫아 충전한 다음, S1 스위치)를 열어 저속 방전 시에 다른 쪽 스위치(예를 들어 S2 스위치)를 누르면 어떻게 될까요? 그럼 고속 방전이 이뤄지는데 아마도 방전 방향과 같게 전류도 흐르므로 속도를 높여주는 것 같습니다.

그래도 또 하나 테스트할 것이 있습니다. 저 상황에서 S1을 누르면 고속 충전이 되는데 그 눌린 상태에서 S2를 누르면 어떻게 될까요? S1을 누르면 C1 왼쪽이 양(+) 극을 띠고 고속 충전된 상태에서 S2가 함께 눌리면 C1으로의 저항값이 무한대이기 때문에 R1으로 흐르던 전류는 S2로 곧바로 흘러 버립니다. C1은 R1으로부터 유입되던 전류가 끊겨 버려 방전을 하기 시작하는데 C1 - S2 - S1으로의 폐회로가 단락되기 때문에 순간 방전을 하게 됩니다. 재미있게도 R2를 통한 충전이 발생하지는 않는다는 점입니다. 아마도 R2에서 S1으로의 경로가 GND로 접지되기 때문에 C1으로의 전류가 흐르지 않는 것 같습니다. 즉, C1은 말 그대로 0V의 상태로 충전도 방전도 하지 않는 상태로 빠집니다. (계측기로 C1의 왼쪽에 +, 오른쪽에 - 탐침을 두고 측정해 보면 전압이 0.008V 나옵니다.)

참고로, S2를 누르고 S1을 눌러도 같은 상태로 빠지며 C1의 전압은 동일하게 0.008V에서 멈춥니다.




또 하나 해볼까요? 다음과 같이 트랜지스터를 넣어두면 어떻게 될까요?

capacitor_parallel_7.png

스위치의 상태에 따른 C1의 전압은 다음과 같습니다.

+/-: 8.73V

계측기 탐침 [+]: C1 [Left]
계측기 탐침 [-]: C1 [Right]

[계측기를 C1에 병렬연결했으므로 방전 시 영향이 있음]

S1 ON: 8.03V 고속 충전 (1K 저항과 병렬로 베이스-이미터 연결)
S1 OFF: 저속 방전 (R1 - R2 - C1의 연결로 470K 저항의 영향)

S2 ON: -8.17V 저속 충전 (R2 - C1의 연결로 470K 저항의 영향)
S2 OFF: 저속 방전 (R2 - R1 - C1의 연결로 470K 저항의 영향)

S1 ON + S2 ON인 경우 C1의 전압: -0.628V

참고로 R3의 경우 방전 시에 베이스에서 컬렉터로 전류가 흐르지는 못하므로 아무런 영향을 주지 않습니다.

그렇다면 트랜지스터의 상태는 S1, S2의 열고 닫힘에 어떻게 반응할까요?

우선, S1이 닫히면 배터리 양(+) 극 => R1 => C1 => Q1 Base => Q1 Emitter로의 경로가 개방되므로 스위치가 켜집니다. 하지만, 곧 C1이 충전되면서 저항이 증가해 R1의 전압은 0V가 되고 C1은 8.01V까지 상승합니다. 그래도 Q1은 스위치가 켜진 상태를 유지하는데 R2로부터의 전류 유입이 있기 때문입니다. 이미터가 GND에 곧바로 연결되어 있으므로 Base -> Emitter의 전압은 운영 전압인 0.67V 정도를 S1이 닫혀 있는 동안 유지합니다.

반면 S1이 열리고, S2만 닫히면 어떻게 될까요? 이런 경우에는 S1 스위치가 닫혀 있기 때문에 Emitter로의 경로가 끊어져 있으므로 베이스로 전류가 흐르지 않게 되어 당연히 Q1 스위치는 언제나 꺼져 있게 됩니다.

그렇다면 S1이 닫힌 상태에서 S2를 닫으면 어떻게 될까요? S1이 닫히면서 Q1의 Base => Emitter는 연결되고, 이 상태에서 S2가 닫히면 C1의 왼쪽이 GND와 바로 연결되면서 R2로부터 전류가 잠시 흐르게 되고 C1 역시 방전이 됩니다. 따라서 잠깐 음(-) 전압 상태로 바뀌었다가 (저속 충전에 의해) C1이 충전되면서 저항이 커지게 되고 이내 R2의 전류 흐름은 Q1의 베이스로 향하게 됩니다. 결국 잠시 스위치가 꺼졌다가 다시 열리게 됩니다.

이 상태를 이미터에 LED를 연결하면 눈으로 확인할 수 있습니다. S1을 닫아 LED 불이 켜진 상태에서 S2를 닫으면 잠시 LED가 꺼졌다가 잠시 후 다시 밝아집니다.

(첨부 파일은 이 글의 그림에 사용된 fzz 원본입니다.)




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







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

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

비밀번호

댓글 작성자
 




... 91  92  93  94  95  96  97  98  [99]  100  101  102  103  104  105  ...
NoWriterDateCnt.TitleFile(s)
11454정성태2/12/201827440기타: 71. 만료된 Office 제품 키를 변경하는 방법
11453정성태1/31/201819415오류 유형: 450. Azure Cloud Services(classic) 배포 시 "Certificate with thumbprint ... doesn't exist." 오류 발생
11452정성태1/31/201824965기타: 70. 재현 가능한 최소한의 예제 프로젝트란? [3]파일 다운로드1
11451정성태1/24/201819202디버깅 기술: 111. windbg - x86 메모리 덤프 분석 시 닷넷 메서드의 호출 인자 값 확인
11450정성태1/24/201834440Windows: 146. PowerShell로 원격 프로세스(EXE, BAT) 실행하는 방법 [1]
11449정성태1/23/201821803오류 유형: 449. 단위 테스트 - Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.VideoRecorderEngine' or one of its dependencies. [1]
11448정성태1/20/201819240오류 유형: 448. Fakes를 포함한 단위 테스트 프로젝트를 빌드 시 CS0619 관련 오류 발생
11447정성태1/20/201820612.NET Framework: 730. dotnet user-secrets 명령어 [2]파일 다운로드1
11446정성태1/20/201821690.NET Framework: 729. windbg로 살펴보는 GC heap의 Segment 구조 [2]파일 다운로드1
11445정성태1/20/201819551.NET Framework: 728. windbg - 눈으로 확인하는 Workstation GC / Server GC
11444정성태1/19/201819652VS.NET IDE: 125. Visual Studio에서 Selenium WebDriver를 이용한 웹 브라우저 단위 테스트 구성파일 다운로드1
11443정성태1/18/201820145VC++: 124. libuv 모듈 살펴 보기
11442정성태1/18/201818050개발 환경 구성: 353. ASP.NET Core 프로젝트의 "Enable unmanaged code debugging" 옵션 켜는 방법
11441정성태1/18/201816604오류 유형: 447. ASP.NET Core 배포 오류 - Ensure that restore has run and that you have included '...' in the TargetFrameworks for your project.
11440정성태1/17/201819865.NET Framework: 727. ASP.NET의 HttpContext.Current 구현에 대응하는 ASP.NET Core의 IHttpContextAccessor/HttpContextAccessor 사용법파일 다운로드1
11439정성태1/17/201824627기타: 69. C# - CPU 100% 부하 주는 프로그램파일 다운로드1
11438정성태1/17/201819421오류 유형: 446. Error CS0234 The type or namespace name 'ITuple' does not exist in the namespace
11437정성태1/17/201818699VS.NET IDE: 124. Platform Toolset 설정에 따른 Visual C++의 헤더 파일 기본 디렉터리
11436정성태1/16/201820977개발 환경 구성: 352. ASP.NET Core (EXE) 프로세스가 IIS에서 호스팅되는 방법 - ASP.NET Core Module(AspNetCoreModule) [4]
11435정성태1/16/201822101개발 환경 구성: 351. OWIN 웹 서버(EXE)를 IIS에서 호스팅하는 방법 - HttpPlatformHandler (Reverse Proxy)파일 다운로드2
11434정성태1/15/201822408개발 환경 구성: 350. 사용자 정의 웹 서버(EXE)를 IIS에서 호스팅하는 방법 - HttpPlatformHandler (Reverse Proxy)파일 다운로드2
11433정성태1/15/201820456개발 환경 구성: 349. dotnet ef 명령어 사용을 위한 준비
11432정성태1/11/201826252.NET Framework: 726. WPF + Direct2D + SharpDX 출력 C# 예제파일 다운로드2
11431정성태1/11/201824233.NET Framework: 725. C# - 동기 방식이면서 비동기 메서드(awaitable)처럼 구현한 사례 [9]
11430정성태1/10/201827690.NET Framework: 724. WPF + Direct2D 출력 C# 예제 [2]파일 다운로드1
11429정성태1/9/201818444개발 환경 구성: 348. ASP.NET Core 2.1 Preview 버전 적용 방법
... 91  92  93  94  95  96  97  98  [99]  100  101  102  103  104  105  ...