메뉴 English Ukrainian 러시아인 홈

애호가 및 전문가를 위한 무료 기술 라이브러리 무료 기술 라이브러리


라디오 전자 및 전기 공학의 백과사전
무료 도서관 / 무선 전자 및 전기 장치의 계획

간단한 데이터 수집 시스템인 COM 포트를 사용한 ADC 작동. 무선전자공학 및 전기공학 백과사전

무료 기술 라이브러리

무선 전자 및 전기 공학 백과사전 / 컴퓨터

기사에 대한 의견 기사에 대한 의견

이 글은 주로 초보자를 대상으로 작성되었습니다. 데이터 수집 시스템 구축, 아날로그 신호를 컴퓨터에 입력, 처리 등을 시도하기로 결정한 사람들을 위해. 이 기사에서는 이에 대해 논의할 것이며 모든 작업을 스스로 수행하려고 노력할 것입니다.

일반적으로 이 주제에 대한 정보는 인터넷과 문헌에 꽤 많이 있습니다. 특히 Visual Basic 언어를 사용하는 경우 더욱 그렇습니다. 그러므로 나는 이 격차를 적어도 부분적으로 메우려고 노력할 것이다.

시작하겠습니다...

목표가 무엇이든 먼저 실제 아날로그-디지털 변환기(ADC)를 구입해야 합니다. 또한 컴퓨터에 Visual Basic 6.0 개발 환경을 설치하십시오. 또한 이 개발 환경을 간단하게 탐색할 수 있어야 합니다... 왜냐하면... 이 기사는 독자가 Visual Basic 프로그래밍에 대한 최소한의 기본 지식을 갖고 있는지 확인하기 위해 작성되었습니다. 또한 문헌 [1], [3]을 읽어 보시기 바랍니다.

ADC로 TLC549IP를 구입하는 것이 좋습니다. 간단한 통신 프로토콜을 갖춘 8비트 직렬 ADC입니다. 이에 대해서는 기사에서 논의할 것입니다. 물론 회로와 코드를 적절하게 변경하여 다른 ADC를 사용할 수도 있습니다. 이에 대한 자세한 내용은 [1]에서 확인할 수 있습니다.

ADC를 찾은 후에는 데이터 수집 시스템의 하드웨어, 즉 그림 1에 표시된 회로를 조립해야 합니다. XNUMX.

COM 포트를 통한 ADC 작동, 간단한 데이터 수집 시스템. 하드웨어
(확대하려면 클릭하십시오)

이 계획은 약간의 변경을 거쳐 [1]에서 차용되었습니다. 다이오드 VD1, VD2, VD6 - KD521, 안정화 전압 3...5V용 모든 제너 다이오드. 78L05 대신 KREN5A를 사용할 수 있습니다. 허용 오차가 1%인 저항기 R2, R1 또는 저항 값이 가장 가까운 여러 개 중에서 선택합니다. 측정의 정확도는 측정값에 따라 달라집니다. 저항 R3은 다중 턴인 것이 바람직합니다.

조정: 보드에 전원을 공급하여 DA1 스태빌라이저의 Out 핀에서 전압을 측정합니다. 결과 전압 값을 소수점 이하 3자리까지 기록합니다. 나중에 필요합니다. DD1 마이크로 회로의 핀 1에서 저항 R3을 사용하여 전압을 Out 핀에서 측정된 안정기의 정확히 절반과 동일하게 설정합니다.

이제 실제 소프트웨어 부분으로 넘어 갑시다. 일반적으로 처음에는 RS-232, I2C, Micro Ware 등과 같은 통신 인터페이스를 사용합니다. 나는 그것이 부적절하다고 생각한다. 왜냐하면 프로그램 코드가 약간 복잡해지면 하드웨어가 훨씬 더 복잡해질 수 있습니다. 따라서 우리는 "데이터시트"에서 ADC로 가져온 가장 간단한 교환 프로토콜을 사용할 것입니다. 즉, 간단한 구현입니다. 물론 이러한 프로토콜을 사용하면 빠른 속도를 얻을 수 없습니다. 이 경우 Visual Basic 자체에 의해 제한이 적용되지만 최소한의 시간과 노력으로 첫 번째 결과를 얻고 상대적으로 느린 변화를 측정하는 데 매우 적합합니다. 프로세스. TLC549IP ADC의 통신 프로토콜은 그림 2에 나와 있습니다. XNUMX.

COM 포트를 통한 ADC 작동, 간단한 데이터 수집 시스템. ADC 통신 프로토콜 TLC549IP
(확대하려면 클릭하십시오)

단일 상태 동안 실제 변환은 A/D 변환기의 CS(칩 선택) 핀에서 발생합니다. 데이터 출력은 각 펄스에 대해 8비트인 클록 펄스의 출현과 함께 낮은 CS 레벨에서 시작됩니다. 8비트 코드를 생성하려면 1개의 클럭 펄스가 필요합니다. 그 후 CS는 단일 상태로 전환될 수 있으며 다음과 같은 변환이 수행될 수 있습니다. ADC 작동에 대한 자세한 내용은 [XNUMX]에서 확인할 수 있습니다.

이 모든 것에서 우리는 적절한 시간에 필요한 펄스 시퀀스를 생성하는 드라이버 프로그램을 작성해야 한다는 결론을 내릴 수 있으며, 그 후에는 데이터만 수신할 수 있습니다.

Visual Basic 개발 환경을 시작하고 표준 EXE 프로젝트를 만듭니다. MSComm 컨트롤을 추가합니다. 다음과 같이 구성 요소 패널에 추가할 수 있습니다. 프로젝트-->구성 요소-->목록에서 선택Microsoft 통신 6.0 제어. 2개의 라벨과 2개의 타이머와 함께 양식에 배치하세요. 이름은 기본값으로 둡니다.

이제 간단한 전압계용 코드 작성을 시작할 수 있습니다.

변수를 설정하자: Dim b1, b2, b3, b4, b5, b6, b7, b8, sum, Ud 단일로

양식 로드 절차에 다음 코드를 삽입합니다.

개인 하위 Form_Load ()

MSComm1.DTREnable = True '초기값 - 높은 CS 수준

Timer1.Interval = 100 ' 타이머 간격 1ms

Timer2.Interval = 1 ' 타이머 간격 100ms

MSComm1.Settings = "1200,N,8,1" ' 데이터 전송 설정

MSComm1.CommPort = 1 ' COM 포트 번호

MSComm1.PortOpen = True ' COM 포트 열기

최종 하위

절차 중 Timer1은 다음 코드를 입력합니다.

개인 서브 타이머1_Timer()

MSComm1.DTREnable = False '낮은 CS 만들기

Label2.Caption = "" '초기 지연에 대한 쓰레기

MSComm1.RTSEnable = True '첫 번째 클럭 펄스 클럭 높음

If MSComm1.CDHolding = True Then b1 = 1 Else b1 = 0 'CD 입력(ADC 출력)에서 XNUMX 또는 XNUMX 값을 폴링합니다.

MSComm1.RTSEnable = False '첫 번째 클럭 펄스 클럭 낮음

MSComm1.RTSEnable = 참

MSComm1.CDHolding = True이면 b2 = 1 그렇지 않으면 b2 = 0

MSComm1.RTSEnable = 거짓

MSComm1.RTSEnable = 참

MSComm1.CDHolding = True이면 b3 = 1 그렇지 않으면 b3 = 0

MSComm1.RTSEnable = 거짓

MSComm1.RTSEnable = 참

MSComm1.CDHolding = True이면 b4 = 1 그렇지 않으면 b4 = 0

MSComm1.RTSEnable = 거짓

MSComm1.RTSEnable = 참

MSComm1.CDHolding = True이면 b5 = 1 그렇지 않으면 b5 = 0

MSComm1.RTSEnable = 거짓

MSComm1.RTSEnable = 참

MSComm1.CDHolding = True이면 b6 = 1 그렇지 않으면 b6 = 0

MSComm1.RTSEnable = 거짓

MSComm1.RTSEnable = 참

MSComm1.CDHolding = True이면 b7 = 1 그렇지 않으면 b7 = 0

MSComm1.RTSEnable = 거짓

MSComm1.RTSEnable = 참

MSComm1.CDHolding = True이면 b8 = 1 그렇지 않으면 b8 = 0

MSComm1.DTREnable = True '높은 CS 만들기

MSComm1.RTSEnable = False '첫 번째 클럭 펄스 클럭 낮음

'확장 공식을 사용하여 비트를 XNUMX진수 형식으로 변환합니다.

합계 = (b1 * 2^7) + (b2 * 2^6) + (b3 * 2^5) + (b4 * 2^4) + (b5 * 2^3) + (b6 * 2^2) + (b7 * 2^1) + (b8 * 2^0)

Ud = Format(sum * 5.083 / 255, "##0.000") '비례값 계산

Label1.Caption = CStr(Ud) & "Volt" '결과 값 표시

최종 하위

Timer1의 코드는 실제 드라이버입니다. 주기적으로 반복되어 클록 펄스를 생성하고 데이터 비트를 수신합니다. Ud는 ADC 입력 전압입니다. 10개의 12비트 ADC를 사용하는 경우 숫자 225는 각각 1024, 4096으로 대체됩니다. 10개의 12비트 ADC의 경우 누락된 비트를 코드에 추가해야 합니다. , "데이터 시트"에 따라 안내됩니다. 값 5.083은 스태빌라이저의 Out 출력에서 ​​얻은 전압 값입니다. 여기에 값을 입력하세요.

보드에 전원을 공급하려면 별도의 소스를 사용하거나 COM 포트에서 직접 전원을 공급할 수 있습니다. 이를 위해 Timer2 프로시저에 다음 코드를 배치합니다.

개인 서브 타이머2_Timer()

MSComm1.Output = Chr(0) & Chr(0) ' ADC 보드에 전원을 공급하기 위해 TX 핀(3)에 펄스를 생성합니다.

최종 하위

COM 포트에는 과부하가 걸릴 수 없다는 점을 기억해야 합니다. 믿을 수 있는 최대치는 20mA입니다. 작동 모드에서 회로는 5mA 이하의 전류를 소비합니다.

이제 보드를 COM 포트에 연결하고 프로젝트를 실행하십시오. DA1 스태빌라이저의 IN 핀에서 전압을 측정합니다. 6.5V 이상이어야 합니다. 그렇지 않은 경우 별도의 전원을 사용하십시오. ADC 입력의 전압을 변경하여 프로그램이 작동하고 화면에 전압이 표시되는지 확인하십시오. 8비트 ADC 사용 시 전압 판독 정확도는 20mV이고, 10비트 ADC 사용 시 - 5mV, 12-1.2mV입니다.

Visual Basic에서 작업하고 COM 포트를 사용하여 만든 응용 프로그램에 대해 조금

이미 이해하셨겠지만, COM 포트로 작업하려면 구성 요소가 필요합니다.Microsoft 통신 Control 즉, Visual Basic을 설치한 후 C:\Windows\system32 디렉터리에 있는 MSCOMM32.ocx 파일입니다. 이것이 의미하는 바는 설치 프로그램을 만들지 않고 Visual Basic이 없는 다른 컴퓨터에 프로그램을 복사하면 작동하지 않는다는 것입니다. 또한 이 파일을 컴퓨터와 동일한 디렉터리에 복사해야 합니다. system32에서. 아니면 설치 프로그램을 만드세요.

이제 일부 명령에 대해 다음을 수행합니다.

데이터 교환율을 설정하는 명령:

MSComm1.Settings = "1200,N,8,1"

com 포트 번호를 나타내는 명령

MSComm1.CommPort = 1

COM 포트를 열고 닫는 명령

MSComm1.PortOpen = 참

MSComm1.PortOpen = 거짓

com 커넥터의 해당 핀에 +12V를 출력하는 명령:

MSComm1.RTSEnable = True RTS (7) - 핀 이름 및 핀 번호

MSComm1.DTREnable = True DTR(4)

-12V를 출력하는 명령

MSComm1.RTSEnable = 거짓         

MSComm1.DTREnable = 거짓

단일 또는 1 상태가 있는지 핀 CD(8), CTS(6), DSR(XNUMX)을 폴링할 수 있습니다.

If MSComm1.CDHolding = True Then(만약 그렇다면…)

MSComm1.CDHolding = False Then(XNUMX이면...)

문자 또는 문자열의 ASCII 코드를 Tx(3) 출력으로 전송:

MSComm1.Output = "A"

숫자

MSComm1.Output = Chr(10) 번호는 0~255에서 다양할 수 있습니다.

타이머에 이러한 명령을 작성하고 숫자나 기호를 변경하면 PWM 변조를 생성할 수 있습니다. 명령에 대한 자세한 내용은 컨트롤 설명을 다운로드하여 확인할 수 있습니다.  Microsoft 통신 Control.

이제 이 코드를 사용하면 데이터 수집을 위한 여러 프로그램을 작성할 수 있습니다. 예: 전압계, 전류계, 온도계, 단순 오실로스코프, 데이터를 파일에 저장합니다. 측정은 1ms마다 한 번씩 또는 시간별, 하루에 한 번 수행할 수 있으므로 장기적인 프로세스를 모니터링할 수 있습니다.

교류 전압(0을 통과)으로 작업하고 측정 한계를 확장하려면 입력 증폭기가 필요하며 그 회로는 [1]에서 가져올 수 있습니다. 주전원 전압이나 네트워크에서 갈바닉 절연되지 않은 장치를 사용하려면 컴퓨터에서 회로를 광절연해야 합니다.

COM 포트를 통한 ADC 작동, 간단한 데이터 수집 시스템

COM 포트를 통한 ADC 작동, 간단한 데이터 수집 시스템

샘플 프로그램의 소스 코드 다운로드(8kB)

문학

  1. Gell P. 개인용 컴퓨터를 측정 단지로 전환하는 방법: Transl. fr에서. - 2판, 개정판. - M .: DMK Press, 2001. - 144 p .: 아픈.
  2. P. PC와 외부 장치의 인터페이스: Transl. 영어로부터 - M.: DMK Press, 2001 - 320 pp.:ill.
  3. 비주얼 베이직 6.0: 번역. 영어로부터 - 상트페테르부르크: BHV - 상트페테르부르크, 2000. - 992쪽: 아픈.

작성자: =ShooRooP=, evei [개] mail.ru; 간행물: cxem.net

다른 기사 보기 섹션 컴퓨터.

읽고 쓰기 유용한 이 기사에 대한 의견.

<< 뒤로

과학 기술의 최신 뉴스, 새로운 전자 제품:

터치 에뮬레이션을 위한 인조 가죽 15.04.2024

거리가 점점 일반화되는 현대 기술 세계에서는 연결과 친밀감을 유지하는 것이 중요합니다. 최근 독일 자를란트 대학(Saarland University) 과학자들이 인공 피부를 개발하면서 가상 상호 작용의 새로운 시대가 열렸습니다. 독일 자를란트 대학 연구진이 촉각 감각을 멀리까지 전달할 수 있는 초박형 필름을 개발했습니다. 이 최첨단 기술은 특히 사랑하는 사람과 멀리 떨어져 있는 사람들에게 가상 커뮤니케이션을 위한 새로운 기회를 제공합니다. 연구원들이 개발한 두께가 50마이크로미터에 불과한 초박형 필름은 직물에 통합되어 제XNUMX의 피부처럼 착용될 수 있습니다. 이 필름은 엄마나 아빠의 촉각 신호를 인식하는 센서이자, 이러한 움직임을 아기에게 전달하는 액추에이터 역할을 합니다. 부모가 직물을 만지면 압력에 반응하여 초박막 필름이 변형되는 센서가 활성화됩니다. 이것 ...>>

펫구구 글로벌 고양이 모래 15.04.2024

애완동물을 돌보는 것은 종종 어려운 일이 될 수 있습니다. 특히 집을 깨끗하게 유지하는 데 있어서는 더욱 그렇습니다. Petgugu Global 스타트업의 새롭고 흥미로운 솔루션이 제시되었습니다. 이 솔루션은 고양이 주인의 삶을 더 쉽게 만들고 집을 완벽하게 깨끗하고 깔끔하게 유지할 수 있도록 도와줍니다. 스타트업 펫구구글로벌(Petgugu Global)이 자동으로 배설물을 씻어내는 독특한 고양이 화장실을 공개해 집안을 깨끗하고 산뜻하게 유지해준다. 이 혁신적인 장치에는 애완동물의 배변 활동을 모니터링하고 사용 후 자동으로 청소하도록 활성화되는 다양한 스마트 센서가 장착되어 있습니다. 이 장치는 하수 시스템에 연결되어 소유자의 개입 없이 효율적인 폐기물 제거를 보장합니다. 또한 변기는 물을 내릴 수 있는 대용량 수납 공간을 갖추고 있어 다묘 가정에 이상적입니다. Petgugu 고양이 모래 그릇은 수용성 모래와 함께 사용하도록 설계되었으며 다양한 추가 기능을 제공합니다. ...>>

배려심 많은 남자의 매력 14.04.2024

여성이 '나쁜 남자'를 더 좋아한다는 고정관념은 오랫동안 널리 퍼져 있었습니다. 그러나 최근 모나쉬 대학의 영국 과학자들이 실시한 연구는 이 문제에 대한 새로운 관점을 제시합니다. 그들은 여성이 남성의 정서적 책임과 다른 사람을 도우려는 의지에 어떻게 반응하는지 살펴보았습니다. 이번 연구 결과는 무엇이 남성을 여성에게 매력적으로 만드는지에 대한 우리의 이해를 변화시킬 수 있습니다. Monash University의 과학자들이 실시한 연구는 여성에 대한 남성의 매력에 대한 새로운 발견으로 이어졌습니다. 실험에서 여성에게는 노숙자를 만났을 때의 반응을 포함하여 다양한 상황에서 자신의 행동에 대한 간략한 이야기와 함께 남성의 사진이 표시되었습니다. 일부 남성은 노숙인을 무시했지만, 다른 남성은 음식을 사주는 등 그를 도왔습니다. 한 연구에 따르면 공감과 친절을 보여주는 남성은 공감과 친절을 보여주는 남성에 비해 여성에게 더 매력적이었습니다. ...>>

아카이브의 무작위 뉴스

바다를 위한 센티넬 12.08.2006

유럽 ​​연합은 동남아시아 연안에 쓰나미 경보 시스템을 설치하기 위해 45만 유로를 할당했습니다.

독일 포츠담 지구물리센터에서 개발된 부표가 시스템의 기초가 되어야 한다. 그들은 인도양에 배치될 것입니다. 각각에는 쓰나미 접근 방식을 서로 다른 방식으로 감지하는 XNUMX개의 센서가 있습니다. 해저 부표 아래에는 해저의 흔들림을 감지하는 지진계가 설치되어 있고, 이 구간을 지나는 쓰나미 파도에 반응하는 압력 센서도 있습니다.

부표 자체에 시스템을 장착하여 항법위성을 이용하여 쓰나미파에 의한 부이의 상승을 표시하는 시스템(이 파동은 일반 폭풍파보다 넓고 수위가 장기간 상승하여 구별할 수 있도록 함) 보통파에서). 이 센티넬 바다는 자카르타(인도네시아)에서 건설 중인 센터에 임박한 재난의 징후를 보고할 것입니다.

이제 유일한 질문은 바닥에서 부표까지의 데이터 전송 채널이 얼마나 안정적으로 작동할 것인가입니다. 설계자는 케이블이 꼬이거나 찢어질 수 있기 때문에 물을 통해 전파하는 초음파를 사용하려고 합니다.

다른 흥미로운 소식:

▪ 바다거북 케미컬 칵테일

▪ S2-LP - 433/868MHz 협대역 트랜시버

▪ 횡단보도에서 전화 - 불법

▪ 쓰나미 파도가 하늘로 치솟다

▪ 접이식 A-바이크

과학 기술 뉴스 피드, 새로운 전자 제품

 

무료 기술 라이브러리의 흥미로운 자료:

▪ 사이트 섹션 컴퓨터 장치. 기사 선택

▪ 기사 약물 사용이 인체 건강에 미치는 영향. 안전한 생활의 기본

▪ 기사 칼로리는 체중에 어떤 영향을 줍니까? 자세한 답변

▪ 기사 산업 건물의 먼지 및 가스 오염

▪ 기사 알루미늄을 구리로 바꾸는 방법과 이유. 무선 전자 및 전기 공학 백과사전

▪ 기사 균형을 맞추십시오. 포커스 시크릿

이 기사에 대한 의견을 남겨주세요:

이름 :


이메일(선택사항):


댓글 :





이 페이지의 모든 언어

홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰

www.diagram.com.ua

www.diagram.com.ua
2000-2024