Microsoft MVP성태의 닷넷 이야기
사물인터넷: 43. 555 타이머의 단안정 모드 [링크 복사], [링크+제목 복사]
조회: 3428
글쓴 사람
홈페이지
첨부 파일

555 타이머의 단안정 모드

제가 구매한 555 타이머는 다음의 제품입니다.

LM555CN
; https://www.eleparts.co.kr/goods/view?no=278200

제조사: FAIRCHILD
유형: 555 형, 타이머/발진기(단일)
전압-공급: 4.5V ~ 16V
전류-공급: 7.5mA
동작온도: 0°C ~ +70°C
실장타입: 스루홀
패키지: 8-DIP
포장: 튜브

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

아래 그림과 같이 패키지의 위를 나타내는 Notch가 있으며 저것을 기준으로 시계 반대 방향으로 핀 번호가 매겨집니다.

arduino_555timer_1.png

즉, 위의 그림에서는 아래의 4개 핀이 (좌->우) 1, 2, 3, 4에 해당하고 위의 핀이 (좌->우) 8, 7, 6, 5번으로 각 핀의 역할은 datasheet에 나와 있는데로 다음과 같습니다.

1: GND
2: Trigger (입력)
3: Output (출력)
4: Reset (초기화)
5: Control Voltage (제어)
6: Threshold (문턱 전압)
7: Discharge (방전)
8: Vcc

아래의 자료를 참고하면,

555 타이머  전기회로 및 ICs/ 전기전자 튜토리얼
; https://blog.naver.com/roboholic84/10182990082

짜릿짜릿 전자회로 DIY (2판) 뜯고 태우고 맛보고, 몸으로 배우는
; http://www.yes24.com/24/goods/33342224

타이머에 3가지 모드가 있다는 것을 알 수 있습니다.

  1. 단안정 모드 (Monostable mode): Trigger 2번 핀이 활성화된 순간부터 Output 3번 핀에 전압이 출력되고, 그 지속 시간은 6번 핀 Threshold로 연결된 capacitor에 의한 일정 전압이 오를 때까지.
  2. 쌍안정 모드 (Bistable mode): Trigger 2번 핀이 활성화된 순간부터 Output 3번 핀에 전압이 출력, 그 지속 시간은 4번 핀 Reset이 활성화될 때까지.
  3. 비안정 모드 (Astable mode): Trigger 2번 핀이 6번 핀 Threshold와 연결되어 Output 3번 핀의 출력이 주기적으로 바뀌는 모드

이 중에서 단안정 모드만 그려보면 다음과 같이 회로를 구성할 수 있습니다.

arduino_555timer_2.png

arduino_555timer_3.png

LM555-1011181.pdf 파일에 있는 555 타이머의 내부 회로를 참고해,

arduino_555timer_4.png

각 핀의 역할을 이렇게 설명할 수 있습니다.

  • 1번 핀은 GND, 8번 핀은 Vcc 입력
  • 2번 핀은 Trigger로써 높은 전압 상태에 있으면 Output 3번 핀의 출력이 OFF, 타이머 내부 회로의 상단을 보면 동일한 저항 3개가 있고 그중 1/3 지점에 Trigger 핀으로의 비교 회로가 연결되어 있는데 따라서 GND-Vcc에 걸린 전압이 9V라면 3V 이하로 전압이 떨어지는 경우 Output 3번 핀의 출력이 ON
  • 3번 핀은 출력 핀으로 2번 핀의 전압 상태에 따라 출력 전압 발생
  • 4번 핀은 Reset 핀으로 높은 전압 상태에서는 아무 동작을 하지 않고 낮은 전압으로 떨어지면 3번 출력 핀의 전압 발생을 해제
  • 6번 핀은 기본적으로 상단의 동일한 저항 3개로부터 2/3 지점의 분배 전압과 비교해, 높아지면(즉 GND-Vcc에 걸린 전압이 9V라면 6V 이상의 전압이 걸리게 되면) Output 3번 핀의 출력을 해제함. 보통 단안정 모드인 경우 이곳에 capacitor를 연결하고 저항과 함께 RC 네트워크를 구성해 3번 핀의 출력을 적절한 시간에 해제하도록 전압을 제어.
  • 5번 핀은 6번 핀의 2/3와 비교되는 기준 전압을 변경하는 것이 가능, 따라서 5번 핀의 전압을 변경하면 6번 핀에 6V가 발생하지 않아도 Output 3번 핀의 출력을 해제하는 것이 가능
  • 7번 핀은 방전 핀으로 3번 핀이 OFF 상태일 때는 접지로 곧바로 연결된 상태여서 6번 핀에 연결된 capacitor를 충전하지 못하게 함. 하지만 3번 핀이 ON 일 때는 끊긴 회로로 바뀌기 때문에 6번 핀에 연결된 capacitor에 충전이 이뤄지고 일정 전압에 도달하면 다시 3번 핀의 출력을 OFF 상태로 만들면서 접지로 연결됨. 따라서 capacitor는 이 순간 방전이 됨.

위의 타이머 내부 회로에서 플립플롭(F/F) 회로가 블랙박스인데 이에 대한 정보를 "짜릿짜릿 전자회로 DIY (2판) 뜯고 태우고 맛보고, 몸으로 배우는" 책에서 조금 더 자세하게 설명하고 있으니 그 부분이 궁금하신 분은 ^^ 책을 구매하셔서 보면 되겠습니다.

제가 브레드보드로 구성한 회로와 각 핀들 간의 역할을 읽어 보면 동작을 유추할 수 있습니다. 스위치를 누르기 전에는 2번 핀에 전압이 부과되어 있는 상태이므로 타이머가 아무런 동작을 하지 않습니다. 반면 스위치를 누르면 접지와 곧바로 연결되기 때문에 2번 핀으로의 전압이 0V에 가깝게 떨어집니다. 따라서 타이머가 동작하게 되어 3번 핀으로의 출력 전압이 발생해 LED에 불이 들어오게 됩니다. 그럼 이제 LED가 언제까지 켜진 채로 있을까요? 3번 핀으로 출력 전압이 발생하면 이와 함께 내부적으로 접지되어 있던 7번 핀의 회로가 끊기면서 전류가 C1 capacitor로 흐르게 됩니다. R3과 함께 C1은 RC 네트워크가 구성되고 저항의 크기에 따른 시상수로 C1이 충전되면서 서서히 6번 핀의 전압이 상승, 결국 GND-Vcc의 2/3 전압까지 올라가면 3번 핀의 출력 전압을 OFF시킵니다.

따라서 단안정 모드에서는 6번 핀에 연결된 capacitor와 저항의 구성에 따라 3번 핀의 출력 전압이 ON 되는 시간을 제어할 수 있습니다.

참고로 위의 회로 구성에서 입력 전압이 6.84V인 상태에서 타이머가 활성화하면 3번 출력 핀으로 5.15V 정도가 나왔습니다. (저가 디지털 계측기라 순간적인 전압 변동에 정확한 값이 안 나왔을 수 있습니다.)




"짜릿짜릿 전자회로 DIY (2판) 뜯고 태우고 맛보고, 몸으로 배우는" 책에도 나오지만 시간 제어를 위해 반고정 가변 저항을 이용하면 쉽게 테스트를 할 수 있습니다. 저도 책에 소개된 20K, 100K, 500K 저항에 해당하는 다음의 제품 3개를 구매했는데,

T93YA203KT20
; https://www.eleparts.co.kr/goods/view?no=95102

No. of Turns: 23Turns
Potentiometer Mounting: Through Hole
Product Range: T93YA Series
Power Rating: 500mW
Resistance Tolerance: ±10%
Temperature Coefficient: ±100ppm/°C
RoHS Phthalates Compliant: Yes
Adjustment Type: Screwdriver Slot
Contact Resistance Variation +: 2%
End Resistance: 1Ω
Full Power Rating Temperature: 85°C
IP / NEMA Rating: IP67
Operating Temperature Max: 155°C
Operating Temperature Min: -55°C
Operating Temperature Range: -55°C to +155°C
Proof Voltage: 1000V
Resistor Element Material: Cermet
Resistor Mounting: Through Hole
Resistor Terminals: Radial Leaded
Temperature Coeff. +: 100ppm/°C
Temperature Coeff. -: 100ppm/°C
Tolerance +: 10%
Tolerance -: 10%
Track Taper: Linear
Voltage Rating: 250V
Voltage Rating V DC: 250V

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

T93YA104KT20 
; https://www.eleparts.co.kr/goods/view?no=95098

(datasheet - 저항 값을 제외한 기타 사양은 T93YA203KT20 제품과 동일)

T93YA504KT20
; https://www.eleparts.co.kr/goods/view?no=519701

(datasheet - 저항 값을 제외한 기타 사양은 T93YA203KT20 제품과 동일)

사실 잘 안 쓰게 됩니다. ^^; 이 제품을 보면 턴 횟수가 23회라고 나오는데요, 실제로 ^^; 23 바퀴를 돌려야 원점에서 끝까지 갈 수 있습니다. 따라서 미세하게 조정할 용도로는 좋지만 빠르게 저항을 늘였다 줄였다 하는 용도로는 좀 불편합니다. 오히려 간단한 테스트 용으로는 지난 글에 소개한 "손잡이 가변저항(Trimpot 10K with Knob)"이 더 좋습니다.

(첨부 파일은 이 글의 회로도와 datasheet를 포함하고 있습니다.)




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





[최초 등록일: ]
[최종 수정일: 9/13/2018 ]

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

비밀번호

댓글 쓴 사람
 




... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
11913정성태5/24/20191349.NET Framework: 838. C# - 숫자형 타입의 bit(2진) 문자열, 16진수 문자열 구하는 방법파일 다운로드1
11912정성태5/23/20191365VS.NET IDE: 137. Visual Studio 2019 버전 16.1부터 리눅스 C/C++ 프로젝트에 추가된 WSL 지원
11911정성태5/23/20191490VS.NET IDE: 136. Visual Studio 2019 - 리눅스 C/C++ 프로젝트에 인텔리센스가 동작하지 않는 경우
11910정성태5/24/20192850Math: 50. C# - MathNet.Numerics의 Matrix(행렬) 연산파일 다운로드1
11909정성태5/25/20192020.NET Framework: 837. C# - PLplot 사용 예제 [1]파일 다운로드1
11908정성태5/22/20191317.NET Framework: 836. C# - Python range 함수 구현파일 다운로드1
11907정성태6/4/20191053오류 유형: 541. msbuild - MSB4024 The imported project file "...targets" could not be loaded
11906정성태5/21/2019894.NET Framework: 835. .NET Core/C# - 리눅스 syslog에 로그 남기는 방법
11905정성태5/21/20191292.NET Framework: 834. C# - 폴더 경로 문자열에서 "..", "." 표기를 고려한 최종 문자열을 얻는 방법 - 두 번째 이야기
11904정성태5/21/20192677.NET Framework: 833. C# - Open Hardware Monitor를 이용한 CPU 온도 정보파일 다운로드1
11903정성태5/21/20191461오류 유형: 540. .NET Core - System.PlatformNotSupportedException: The named version of this synchronization primitive is not supported on this platform.
11902정성태5/21/2019971오류 유형: 539. mstest 실행 시 "The directory name is invalid." 오류 발생
11901정성태5/21/20191650오류 유형: 538. msbuild 오류 - Could not find a part of the path '%LOCALAPPDATA%\Temp\2\.NETFramework,Version=v4.0.AssemblyAttributes.cs'
11900정성태3/12/20201555오류 유형: 537. "sfc /scannow" 실행 중 시스템이 부팅되는 현상
11899정성태5/17/20191654Linux: 9. Linux에서 윈도우의 OutputDebugString 대신 사용할 수 있는 syslog [1]
11898정성태5/20/20191738VC++: 130. C++ string의 c_str과 data 함수의 차이점 [3]
11897정성태5/16/20193192오류 유형: 536. Visual Studio - "Developer Pack"을 설치했는데도 "대상 프레임워크" 목록에 나오지 않는 경우 [1]
11896정성태5/15/20192446개발 환경 구성: 440. C#, C++ - double의 Infinity, NaN 표현 방식파일 다운로드1
11895정성태5/12/20191647.NET Framework: 832. ML.NET Model Builder - 회귀(Regression), 다중 분류(Multi-class classification) 예제파일 다운로드1
11894정성태5/12/20192283VS.NET IDE: 135. Visual Studio - ML.NET Model Builder 소개 [1]
11893정성태5/10/20191764오류 유형: 535. C# 6.0 이상의 문법을 컴파일 시 오류가 발생한다면?
11892정성태5/10/20191170웹: 38. HTTP Cookie의 expires 시간 형식(RFC7231)
11891정성태5/9/20191491.NET Framework: 831. (번역글) .NET Internals Cookbook Part 12 - Memory structure, attributes, handles
11890정성태5/8/20191171개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록
11889정성태5/8/20191315개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법
11888정성태5/8/20192717.NET Framework: 830. C# - 비동기 호출을 취소하는 CancellationToken의 간단한 예제 코드파일 다운로드1
... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...