컴퓨터 계측 및 실습 A/D-converter 영남대학교 기계공학부
Quantization(양자화)
Sampling(표본화)
샘플링주기와 aliasing
A/D변환기의 역할
A/D-Converter의 디지탈출력
A/D변환기의 종류
3 bit 병렬 A/D-Converter
Successive approximation
축차비교형
Ramp A/D-converter
Dual-ramp A/D-Converter
A/D 변환기의 구성 - 12bit A/D Converter 차동증폭기 Sample & Holder Multiplexer Programmable Gain - 12bit A/D Converter - Throughput Rate : 50 KHz at 12bit Accuracy - 8Ch 차동입력 또는 16Ch Single Ended 입력 - 입력범위 ± 5, ±10, 0~10, ±0.5, ±1, 0~1, ±0.05, ±0.1, 0~0.1 - Programmable Gain : 1, 10, 100 배
A/D 변환기 레지스터
Channel 설정
배율과 전압설정
Serial Mode Base+1 의 bit6 이 1 로 설정되면 세팅시간 25 ms 이 지난후 샘플 및 홀더(5ms) 한 후 변환(20ms) 을 수행 전체변환율은 25 kHz 정도 즉, Serial Mode 는 완전히 한번 읽은후 다시 세팅하고 변환하는 모드
Overlap Mode - 설정과 변환이 겹쳐서 작동 - 빠른 변환
온도센서 실 험 목 적 이번 실험은 온도에 따라 저항이 변하는 소자인 NTC 서미스터를 사용하여 온도를 A/D변환기를 거쳐 컴퓨터에 의해 측정하여 온도라는 물리량에 대한 디지털 계측을 합니다.
열전쌍(Thermocouple) - 상이한 금속으로 만들어진 두개의 전기 도체로 이루어져 있으며, 적어도 한 곳에서 전기적으로 연결되어 있다. - Seebeck 효과 : Thomas Johann Seebeck 이 발견 회로내 접점의 온도차이에 기인하는 개방 열전대 회로의 전압 또는 기전력
열전쌍의 연결
서미스터 (Thermistor) Thermistror 종류 Thermal +Transistor 온도에 따라 전기저항치가 달라지는 반도체 회로소자를 이용한 온도측정기 종류 NTC (Negative Temperature Coefficient) 온도 상승과 함께 저항치가 감소 가장 일반적 PTC (Positive Temperature Coefficient) 온도 상승과 함께 저항치가 증가 CTC (Critical Temperature Resistor) 어는 온도에서 저항치가 급히 감소
서미스터의 온도범위와 재료
NTC Thermistor - Mn, Co, Ni, Fe, Cu 등의 천이금속 산화물을 혼합해서 성형하고 1000°C 이상의 고온에서 소결한 세라믹계열의 서미스터 - 온도특성치나 저항특성을 재료나 소결조건에 따라 자유로이 제어가능
서미스터의 결합방식 - 호환성의 문제가 있어서 소자 상호 또는 호환용 저항을 부가하여 온도특성을 균일화 하는 결합방식을 사용
서미스터 검출회로 예
회 로 도
프로그램 설명 void CComPractDlg::Ontheron() { InitDevice ( 0x220 , DIFFER) ; DR_1010 void CComPractDlg::Ontheron() { InitDevice ( 0x220 , DIFFER) ; SetAD_Range ( 0 , UNIPOLAR , 10) ; SetTimer(0 , 100 , NULL); } void CComPractDlg::Ontheroff() KillTimer(0);
void CComPractDlg::OnTimer(UINT nIDEvent) { m_therdata = GetAD(0); DR_1010 void CComPractDlg::OnTimer(UINT nIDEvent) { m_therdata = GetAD(0); UpdateData (FALSE); CDialog::OnTimer(nIDEvent); }
void CComPractDlg::Ontheron() { DR_InitDevice ( -1 , -1) ; DR_SetAD_Range ( 0 , 0 , 10) ; SetTimer(0 , 100 , NULL); } void CComPractDlg::Ontheroff() KillTimer(0);
void CComPractDlg::OnTimer(UINT nIDEvent) { DR_8330 void CComPractDlg::OnTimer(UINT nIDEvent) { m_therdata = DR_GetAD_digit(0); UpdateData (FALSE); CDialog::OnTimer(nIDEvent); }