라디오 전자 및 전기 공학의 백과사전 다중 프로그램 타이머 시계 온도계. 무선 전자 및 전기 공학 백과사전 무선 전자 및 전기 공학 백과사전 / 전력 조절기, 온도계, 열 안정기 이 기사에서는 시계, 알람 시계, 광역 온도계 및 가열과 냉각을 모두 제공하는 온도 조절기의 네 가지 부하를 제어할 수 있는 다중 프로그램 타이머의 기능을 수행할 수 있는 PIC 컨트롤러 기반의 범용 디지털 장치에 대해 설명합니다. 제어 대상의. 범용 디지털 장치의 회로는 그림 1에 나와 있습니다. XNUMX, 다음과 같은 사양이 있습니다.
16버튼 키패드를 사용하여 장치를 제어합니다. 제어 프로그램 MK를 변경하여 버튼을 누르는 소리를 켜고 끄고 소리, 조명 및 제어 신호의 공급을 설정하고 특정 응용 프로그램에 대한 장치를 개별적으로 조정할 수 있습니다. 내장 충전식 배터리의 백업 전원 공급 장치가 있습니다. 장치로 작업하면서 설정한 모든 파라미터는 백업 전원을 40년 이상 꺼도 저장됩니다. 다이어그램에서 볼 수 있듯이 장치의 기본은 PIC 컨트롤러 DD1입니다. 시프트 레지스터 DD2 및 디코더 DD3은 동적 표시를 구성하도록 설계되었으며 그 원리는 다음과 같습니다. 먼저 코드 3이 DD1111 디코더에 적용되어 모든 출력에서 로그 수준이 설정됩니다. 1이고 HG1 표시기의 숫자 중 어느 것도 켜지지 않습니다. 다음으로 필요한 문자의 코드가 레지스터 DD2에 입력된 후 원하는 표시기 비트에 해당하는 코드가 DD3으로 전송됩니다. 표시기의 데이터 업데이트와 동시에 키보드가 스캔되며 그 중 16개 버튼은 각각 0개씩 두 그룹으로 나뉩니다. 이 그룹의 버튼에 대한 일반적인 결론은 MK의 두 입력(RB1 및 RB0)에 연결됩니다. 버튼을 누르면 이러한 입력 중 하나로 로그 신호가 전송됩니다. 3 디코더 DDXNUMX의 해당 출력에서 코드를 결정합니다. 키보드를 사용하여 프로그램 타이머 또는 모두를 동시에 시작/정지하고 온도 조절기 작동 모드, 현재 시간, 알람 시간 등을 설정할 수 있습니다. 키보드에서 입력: 숫자 또는 컨트롤 . 키보드 버튼의 용도를 더 자세히 고려하십시오. "0", "시계" - 숫자 정보를 입력하거나 시계 모드로 전환할 때 숫자 0으로 현재 시간을 변경하고, 알람이 켜질 시간을 설정하고, 새로운 시간 알람 모드를 켜고, 시간을 편집할 수 있습니다. 보정 계수(아래 참조). "1" - "9" - 숫자 정보를 입력하거나 적절한 프로그램 타이머를 선택할 때 숫자 1 - 9. "Term" - 온도 조절기 모드로 전환하여 현재 온도 값을 설정하고 제어된 온도 값, 조절 유형(가열 또는 냉각) 및 서미스터 매개변수를 편집할 수 있습니다. "Del"-제어 온도 값을 입력 할 때 "마이너스"기호, 온도 조절기, 온도계, 알람 시계 또는 시계 켜기 / 끄기 (끄면 해당 판독 값 대신 --- 기호가 표시됨), 제로화 숫자 데이터를 입력합니다. "설정" - 모든 매개변수(소프트웨어 타이머, 현재 시간, 알람 시계, 온도계, 온도 조절기, 설정)의 값을 변경하는 모드로 전환/종료합니다. "옵션" - 설정 변경 모드로 전환합니다. 여기에서 버튼 소리, 환영 모드, 제어 신호 발행 소스 선택 등을 켜거나 끌 수 있습니다. "선택" - 시간 지연 값이 0이 아닌 경우 현재 소프트웨어 타이머를 시작/중지합니다. "AH" - 시간 지연 값이 0이 아닌 모든 소프트웨어 타이머를 시작/중지합니다. 이 장치는 XNUMX개의 제어 신호를 발행할 수 있으며 각 신호는 사용자의 재량에 따라 사용할 수 있습니다. 다음 신호의 소스를 설정할 수 있습니다.
이 장치는 1색 LED HLXNUMX을 사용하는데, 하나 이상의 타이머가 시작될 때 하나 이상의 제어 신호가 활성화되면 빨간색으로 깜박이고 활성 신호가 없으면 녹색으로 깜박입니다. 실행 중인 타이머의 시간 지연이 끝나면 HG1 표시등이 깜박이기 시작하고 인터럽터가 내장된 HA1 피에조 이미터에서 신호음이 울립니다. 이것은 사용자가 키보드의 아무 버튼이나 누르거나 특정 시간이 지날 때까지 계속되며, 그 값은 MK의 메모리에 저장되고 프로그래밍 중에 변경할 수 있습니다. 타이머가 트리거될 때 방출되는 사운드 신호는 사운드 지속 시간과 사운드 팩 수라는 두 가지 매개 변수에 의해 결정됩니다. 알람이 울리면 사운드 신호도 제공되지만 표시기의 가장 왼쪽 기호 A와 L (영어에서. ALARM - 알람 시계)만 깜박이기 시작합니다. 알람 시계의 소리 신호는 MK 메모리에 저장된 두 가지 매개 변수로도 설명됩니다. 적용된 석영 공진기에 따라 시계의 정확도가 달라지므로 이 장치에서 소프트웨어 시간 수정이 구현됩니다. 보정 계수는 키보드에서 사용자가 설정하며 MK의 메모리에도 저장됩니다. 실제로 MK의 내부 타이머에 의해 생성된 진동 주기에 추가되는 마이크로초 수를 나타냅니다(이 경우 1,92ms). 보정 계수의 도움으로 이 시간은 2ms가 되도록 달성됩니다(1초의 시간 주기는 이러한 주기가 500회마다 기록됨). 온도는 서미스터 RK1 양단의 전압 강하를 측정하여 측정됩니다. 온도 함수로서의 저항은 다음 공식에 의해 결정됩니다. 여기서 R0은 저항의 차원을 갖는 상수이고; B는 온도 차원을 갖는 상수이고; T는 절대 온도입니다. 따라서 이 종속성은 선형으로 감소되어야 합니다. 써미스터 브릿지를 이용한 선형화 방법은 알려진 바가 있으나 이 방식은 써미스터를 교체할 때 브릿지 자체의 파라미터를 변경해야 하므로 그리 간단하지 않아 불편하다. 선형화 없이 온도 값을 얻는 것이 더 편리하겠지만 이를 위해서는 다음 식의 값을 계산해야 합니다. 여기서 Rd는 추가 저항의 저항입니다. N - 아날로그-디지털 변환 후 얻은 10비트 이진 코드. Un - 공급 전압. 설명하는 장치에서 이 식은 MK 제어 프로그램에 의해 계산되고 그 결과가 표시기에 표시됩니다. 위의 측정 및 제어 온도 범위(-43 ... +470 ° C)는 어떤 식으로든 늘리거나, 압축하거나, 이동할 수 있습니다. 표시된 간격은 온도 측정 오류가 ±2 °С를 초과하지 않기 때문에 선택되었습니다. 이 경우 추가 저항 R17의 저항은 300ohm입니다. 오류를 줄이기 위해 오류를 늘릴 수 있지만 결과적으로 온도 간격의 경계가 변경됩니다. 계산의 편의를 위해 다음을 사용할 수 있습니다. 문서 서미스터 RK10, 저항기 R2001 및 필요한 오류의 지정된 매개변수를 기반으로 측정된 온도 범위를 계산하는 MathCAD 1 시스템용 용어(17비트).mcd. 주 전원이 꺼졌을 때 실시간 시계가 잘못되지 않도록 하기 위해 기기에는 백업 전원 장치 MK가 있습니다. 1V 배터리 GB3,6, 저항 R16 및 다이오드 VD2, VD3으로 구성됩니다. 주 전원이 켜지면 VD3 다이오드가 닫히고 GB1 배터리는 R16 저항을 통해 충전됩니다. 주 전원이 꺼지면 배터리 전압은 VD3 다이오드를 통해 MK에만 공급됩니다(VD2 다이오드는 장치의 나머지 요소에 전압 공급을 방지함). MK는 RB2 핀의 전압 수준을 지속적으로 모니터링하므로 정전 사실을 판단합니다. 그리고 로그와 같아지면. 0이면 MK는 표시기 재생성 및 키보드 폴링을 중지하고 실행 중인 모든 소프트웨어 타이머를 중지하고 온도 측정 및 조절을 중지하고 시계 모드로 전환합니다. 또한 장치 작업 중 설정이 변경된 경우 전원을 끈 후 설정이 변경되지 않은 경우 빨간색 LED가 짧게 깜박입니다-녹색. 장치를 장기간(1주일 이상) 사용하지 않을 경우 배터리의 완전 방전을 방지하기 위해 점퍼 SXNUMX을 사용하여 백업 전원을 끌 수 있습니다. MK는 키보드 버튼의 접점 상태를 지속적으로 모니터링하고 지정된 시간 동안 한 번도 누르지 않았고 단일 프로그램 타이머가 시작되지 않은 경우 자동으로 시계 모드로 전환됩니다. MK 제어 프로그램은 C로 작성되어 실제 데이터를 포함하여 모든 데이터 유형을 쉽게 사용할 수 있습니다. 이 프로그램은 HT-PIC C 프로그래밍 시스템에서 개발되었습니다(사이트에서 "다운로드" 가능) ). 디버깅을 위해 우리는 컴퓨터의 병렬 포트 라인을 메인 보드의 MK 아래 소켓에 연결하는 일련의 접점 인 가장 간단한 회로 내 에뮬레이터를 사용했습니다. 타이머 보드의 MK 소켓 소켓에 대한 컴퓨터 병렬 포트의 결론은 표에 나와 있습니다. 1. 에뮬레이터를 제어하기 위해 MK 제어 프로그램을 Borland C++ 3.1 프로그래밍 환경에서 약간 변경하여 컴파일했습니다. 불행히도 이러한 에뮬레이터의 작업은 실제와 다른 시간 척도에서 발생하지만 그럼에도 불구하고 그러한 장치 없이는 이러한 복잡한 프로그램을 디버깅하는 것이 거의 불가능합니다. 에뮬레이터를 사용하지 않고 아날로그에서 디지털로의 변환만 구현되었으며, 이 MK와 관련된 설명은 웹 사이트에서 찾을 수 있습니다. (문서 DS30292C - "PIC10F16x 마이크로컨트롤러의 87비트 ADC 모듈"). MC 제어 프로그램의 주요 사항을 간단히 살펴보겠습니다. 이것은 구조화된 프로그래밍 방법론을 사용하여 작성되었으며 그 결과 많은 수의 서브루틴이 있습니다. 전원을 켠 후 MCU는 I/O 포트, ADC 및 내부 타이머를 설정합니다. 그런 다음 메인 루프가 실행되기 시작하며 이는 무한합니다. 이미 언급했듯이 주 공급 전압의 존재 여부를 지속적으로 확인하고 꺼지면 MK는 타이밍을 제외한 모든 기능 수행을 중단합니다. 주 전원을 켜면 시작 화면이 표시되고 작동 모드로 돌아갑니다. 현재 인디케이터에 표시되어야 하는 정보는 배열 d에 저장됩니다. 인디케이터 재생성 과정에서 MC는 내용을 중간 배열에 다시 쓰고 여기에서 출력 문자의 코드를 순차적으로 읽어서 인디케이터에 표시합니다. 이전 정보가 아직 완전히 표시되지 않기 전에 배열 d에 새 정보를 기록하여 표시기의 깜박임을 제거하기 위해 추가 배열이 도입되었습니다. 예를 들어 배열 d가 처음에 문자열 "ABCDEFHLP"를 포함하고 있고 네 번째 문자("D")가 표시되면 문자열 "FDA 2002"가 배열에 입력되었다고 가정해 보겠습니다. 그런 다음 인간 시각의 관성으로 인해 장치 사용자는 어느 시점에서 "ABC 2002"라는 줄을 보게 됩니다. 또한 이러한 프로세스가 지속적으로 반복되면 (실제 작업의 경우) 표시기의 정보가 깜박이는 인상을 받게됩니다. 언급한 바와 같이 키보드는 표시기 업데이트와 동시에 스캔됩니다. 아무 버튼이나 누르면 접촉 바운스 억제 서브루틴이 호출되어 몇 밀리초(이 시간 값은 MK 메모리에 저장됨)가 지연되며, 그 동안 장치는 추가 버튼 누름에 응답하지 않습니다. 또한 소프트웨어 타이머, 시계 및 알람의 노출 시간은 초 단위로 설정되며(시간 카운터는 값 24 x 60 x 60 = 86400에 도달하면 재설정됨) 표시기에 표시되기 전에 변환됩니다. H : MM : 타이머의 경우 SS 형식으로, 시계 및 알람의 경우 HH : MM 형식으로. 이는 다음 공식을 사용하여 수행됩니다. C = 시간 모드 60. 여기서 ][ 연산은 소수 부분을 버리는 것을 의미합니다. 즉, 나누기는 정수입니다. 획득한 시간, 분 및 초 값은 이진 코드로 표시되기 때문에 표시기에 직접 표시하기에는 아직 적합하지 않습니다. 가장 중요하고 가장 중요하지 않은 소수 자릿수를 선택하려면 각 값에 대해 두 가지 작업을 더 수행해야 합니다. LSB = 값 모드 10. 예를 들어 보겠습니다. H : MM : SS 형식으로 표시기에 값 8673 s를 표시해야 합니다. 우리는 얻는다 C = 8673 모드 60 = 33. 따라서 표시기는 2:24:33을 표시합니다. 제공된 예에서 지표에 대한 출력을 구성하기 위해 수행해야 하는 작업 수를 확인할 수 있습니다. 이러한 수학을 어셈블리 언어로 구현하는 것은 거의 불가능합니다. C 언어에서 이것은 단 몇 줄로 구현되는 반면, 높은 수준의 최적화 덕분에 프로그램 코드는 매우 간결하고 빠릅니다. 그러나 가장 중요한 것은 프로그래머가 적용된 마이크로 컨트롤러 아키텍처의 특정 기능을 추상화하여 프로그램 알고리즘에 주요 관심을 집중할 수 있다는 것입니다. 이 모든 것이 한 MK에서 다른 MK로 프로그램을 쉽게 이전하는 데 기여합니다. MK 프로그램의 소스 텍스트와 Intel HEX 형식의 "펌웨어" 코드는 인터넷의 위 주소에 있습니다. MK를 프로그래밍하기 위해 저자는 그림 2에 표시된 구성표에 따라 조립된 프로그래머를 사용했습니다. 2000 및 PonyProg1 소프트웨어, 최신 버전은 웹사이트에서 "다운로드"할 수 있습니다. . 프로그래머와 [3]에 설명된 것의 주요 차이점은 동기화 신호 생성 회로에 다른 트랜지스터(VTXNUMX)를 추가하여 MK 핀에서 음의 전압을 완전히 제거하여 프로그래밍 신뢰성을 높인다는 것입니다. 설명된 장치는 보드에서 MK 프로그래밍을 허용합니다. 즉 ICSP 기술(회로 내 직렬 프로그래밍 - 회로 내 직렬 프로그래밍)을 지원합니다. 이를 위해 다음과 같이 커넥터 X1을 통해 프로그래머에 7개의 와이어로 연결됩니다. 5,6 - 공통; 5 - 2V; 3 - SDA; 1 - SCL; XNUMX - 업그레이드. 저전압 프로그래밍을 지원하는 프로그래머를 포함하여 다른 프로그래머를 사용할 수 있습니다. 후자의 경우 프로그래머의 해당 접점을 커넥터 X4의 핀 1에 추가로 연결해야 합니다. 장치의 인쇄 회로 기판 도면이 그림 3에 나와 있습니다. 4, 키보드 - 그림. 넷. 타이머 보드에는 3개의 구멍이 있는데 부품을 장착하기 전에 주석 도금된 와이어 조각을 보드 양쪽의 인쇄된 도체에 삽입하고 납땜합니다. 점퍼의 기능은 또한 일부 부품의 결론에 의해 수행됩니다. 인쇄 도체의 이러한 연결이 이루어지는 구멍은 그림에 강조 표시되어 있습니다. XNUMX개의 십자형 점이 있는 XNUMX. CAD Accel EDA 15.0에 대한 프로젝트의 소스 파일과 사용된 구성 요소 라이브러리는 위 사이트에 있습니다. 이 장치는 표면 실장을 위해 고정 저항과 커패시터를 사용합니다. 예외는 산화물 커패시터 C6, C7(K50-35)입니다. MK PIC16F876은 최대 작동 주파수와 온도 범위를 가질 수 있으며, 가장 중요한 것은 DIP 패키지(SP 접미사가 있음)에 있다는 것입니다. HRM14AX 압전 이미 터는 KR1533LAZ 마이크로 회로의 세 가지 요소와 ZP-18 압전 이미 터 [2]로 만든 장치로 대체 할 수 있습니다. 공칭 저항이 1kOhm(R4 = 15Ohm, V = 0K)인 서미스터 RK0,294 - MMT-3176. 커넥터 X1 - XZ로는 컴퓨터 기술에 사용되는 직선 핀이 있는 분할 블록이 사용됩니다. XP1 플러그와 세 번째 XP2 플러그의 여덟 번째 접점을 제거하고 두꺼운 낚싯줄 조각 인 커넥터 결합 부분의 해당 소켓에 플러그를 삽입했습니다. 이 조치는 커넥터가 잘못 결합되는 것을 방지합니다. X1 커넥터 소켓은 DIP 패키지의 초소형 회로용 2슬롯 패널로 구성됩니다(2핀이 있는 한 부분이 사용됨). 버튼 SB20-SB10 - TS-A1PS-16. 다른 동작 매개변수를 설정하기 위해 변경할 수 있는 MK EEPROM의 내용은 표에 나와 있습니다. 2. "매개변수" 열에는 표시기에 표시되는 매개변수의 이름이 포함됩니다. 이 열에 대시가 있는 경우 이 매개변수는 MK를 프로그래밍할 때만 변경할 수 있습니다. 문학
저자: D.Frolov, Ryazan 다른 기사 보기 섹션 전력 조절기, 온도계, 열 안정기. 읽고 쓰기 유용한 이 기사에 대한 의견. 과학 기술의 최신 뉴스, 새로운 전자 제품: 터치 에뮬레이션을 위한 인조 가죽
15.04.2024 펫구구 글로벌 고양이 모래
15.04.2024 배려심 많은 남자의 매력
14.04.2024
다른 흥미로운 소식:
무료 기술 라이브러리의 흥미로운 자료: ▪ 우리는 독일인 없이는 우리를 위한 구원이 없다고 믿는 데 익숙합니다. 대중적인 표현 ▪ 기사 휴대용 라디오용 나선형 안테나. 무선 전자 및 전기 공학 백과사전 ▪ 기사 전원 공급 장치, 1-29볼트 2암페어. 무선 전자 및 전기 공학 백과사전 이 페이지의 모든 언어 홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰 www.diagram.com.ua |