ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA Temporizador-relógio-termômetro multiprograma. Enciclopédia de rádio eletrônica e engenharia elétrica Enciclopédia de eletrônica de rádio e engenharia elétrica / Reguladores de potência, termômetros, estabilizadores de calor O artigo descreve um dispositivo digital universal baseado em um controlador PIC que pode executar as funções de um temporizador multiprograma que pode controlar quatro cargas, um relógio, um despertador, um termômetro de ampla faixa e um termostato que fornece aquecimento e resfriamento do objeto controlado. Um dispositivo digital universal, cujo circuito é mostrado na Fig. 1, tem as seguintes especificações:
Controle o dispositivo usando um teclado de 16 botões. É possível ligar e desligar o som de pressionar botões, configurar o fornecimento de sinais de som, luz e controle, a possibilidade de ajuste individual do dispositivo para uma aplicação específica alterando o programa de controle MK. Há uma fonte de alimentação de backup da bateria recarregável embutida. Todos os parâmetros definidos durante o trabalho com o dispositivo são salvos mesmo quando a energia de backup é desligada por mais de 40 anos. Como pode ser visto no diagrama, a base do dispositivo é o controlador PIC DD1. O registrador de deslocamento DD2 e o decodificador DD3 são projetados para organizar a indicação dinâmica, cujo princípio é o seguinte. Primeiro, o código 3 é aplicado ao decodificador DD1111, como resultado, os níveis de log são definidos em todas as suas saídas. 1 e nenhum dos dígitos do indicador HG1 está aceso. Em seguida, o código do caractere necessário é inserido no registro DD2, após o qual o código correspondente ao bit desejado do indicador é enviado para DD3. Simultaneamente à atualização dos dados do indicador, o teclado é digitalizado, 16 botões dos quais são divididos em dois grupos - oito em cada. As conclusões gerais dos botões desses grupos são conectadas a duas entradas do MK (RB0 e RB1). Quando um botão é pressionado, um sinal de log é enviado para uma dessas entradas. 0 da saída correspondente do decodificador DD3, determinando assim seu código. Usando o teclado, você pode iniciar / parar qualquer um dos temporizadores do programa ou todos ao mesmo tempo, definir o modo de operação do termostato, hora atual, hora do alarme, etc. A maioria dos botões tem dupla função, dependendo de quais informações o usuário entra pelo teclado: numérico ou controle . Considere a finalidade dos botões do teclado com mais detalhes. "0", "Relógio" - dígito 0 ao inserir informações numéricas ou alternar para o modo relógio, no qual você pode alterar a hora atual, definir a hora para o alarme ligar, ativar o novo modo de alarme de hora, editar a hora fator de correção (veja abaixo). "1" - "9" - números 1 - 9 ao inserir informações numéricas ou selecionar o temporizador de programa apropriado. "Term" - mudança para o modo termostato, onde você pode definir o valor da temperatura atual, editar o valor da temperatura controlada, o tipo de regulação (aquecimento ou resfriamento) e os parâmetros do termistor. "Del" - sinal de "menos" ao inserir o valor da temperatura controlada, ligar/desligar o termostato, termômetro, despertador ou relógio (quando desligado, sinais --- são exibidos no lugar das leituras correspondentes), zerar quando entrada de dados numéricos. "Set" - transição/saída para o modo de alteração do valor de qualquer parâmetro (temporizador de software, hora atual, despertador, termômetro, termostato, configurações). "Opções" - mude para o modo de alteração das configurações. Aqui você pode ligar / desligar o som dos botões, modo de boas-vindas, selecionar fontes para emissão de sinais de controle, etc. "Selecionar" - iniciar/parar o temporizador de software atual se seu valor de atraso de tempo for diferente de 0. "AH" - inicia/pára todos os temporizadores de software cujo valor de atraso de tempo é diferente de 0. O dispositivo é capaz de emitir quatro sinais de controle, cada um dos quais pode ser usado a critério do usuário. É possível definir a origem destes sinais:
O dispositivo usa um LED HL1 de duas cores, que pisca em vermelho se pelo menos um sinal de controle foi ativado quando um ou mais temporizadores são iniciados e verde se não houver sinais ativos. No final do atraso de tempo de qualquer um dos temporizadores em execução, o indicador HG1 começa a piscar e o emissor piezo HA1 com um interruptor embutido emite um bipe. Isso continua até que o usuário pressione qualquer botão do teclado ou passe um determinado tempo, cujo valor fica armazenado na memória do MK e pode ser alterado durante sua programação. O sinal sonoro emitido quando o temporizador é acionado é determinado por dois parâmetros: a duração do som e o número de pacotes de som. Quando o alarme dispara, também são emitidos sinais sonoros, mas apenas os dois símbolos mais à esquerda do indicador - A e L (do inglês. ALARM - despertador) começam a piscar. O sinal sonoro do despertador também é descrito por dois parâmetros armazenados na memória do MK. Dependendo do ressonador de quartzo aplicado, a precisão do relógio é diferente, portanto, a correção de tempo de software é implementada neste dispositivo. O fator de correção é definido pelo usuário no teclado e também é armazenado na memória do MK. Na verdade, representa o número de microssegundos que se somam aos períodos de oscilação gerados pelo timer interno do MK - no nosso caso 1,92 ms. Com a ajuda de um fator de correção, esse tempo é alcançado para se tornar igual a 2 ms (um período de tempo de 1 s é registrado a cada 500 desses períodos). A temperatura é medida medindo a queda de tensão no termistor RK1. Sua resistência em função da temperatura é determinada pela seguinte fórmula: onde R0 é uma constante com dimensão de resistência; B é uma constante com dimensão de temperatura; T é a temperatura absoluta. Assim, essa dependência deve ser reduzida a linear. Existe um método conhecido de linearização usando uma ponte termistor, mas essa abordagem é inconveniente porque ao substituir o termistor, você deve alterar os parâmetros da própria ponte, o que não é tão simples. Seria mais conveniente obter o valor da temperatura sem nenhuma linearização, mas para isso é necessário calcular o valor da seguinte expressão: onde Rd é a resistência do resistor adicional; N - código binário de 10 bits obtido após conversão analógico-digital; Tensão de alimentação insuficiente. No dispositivo que está sendo descrito, esta expressão é calculada pelo programa de controle MK e o resultado é exibido no indicador. Deve-se notar que a faixa acima de temperaturas medidas e controladas (-43 ... +470 ° C) pode ser esticada, comprimida ou deslocada de qualquer forma. O intervalo indicado foi escolhido porque o erro de medição de temperatura nele não excede ±2 °С. Nesse caso, a resistência do resistor adicional R17 é de 300 ohms. Para reduzir o erro, ele pode ser aumentado; no entanto, como resultado, os limites do intervalo de temperatura serão alterados. Para facilitar o cálculo, você pode usar documento term (10 bits).mcd para o sistema MathCAD 2001, que calcula a faixa de temperaturas medidas com base nos parâmetros especificados do termistor RK1, resistor R17 e o erro necessário. Para garantir que o relógio em tempo real não se desvie quando a energia principal for desligada, o instrumento possui uma unidade de energia reserva MK. Consiste em uma bateria GB1 de 3,6 V, um resistor R16 e os diodos VD2, VD3. Quando a alimentação principal é ligada, o diodo VD3 fecha e a bateria GB1 é carregada através do resistor R16. Quando a energia principal é desligada, a tensão da bateria é fornecida através do diodo VD3 apenas para o MK (o diodo VD2 impede o fornecimento de tensão aos demais elementos do dispositivo). O MK determina o fato de uma queda de energia, pois monitora constantemente o nível de tensão no pino RB2. E quando se torna igual a log. 0, o MK para de regenerar o indicador e consultar o teclado, para todos os temporizadores de software em execução, para de medir e regular a temperatura e muda para o modo de relógio. Além disso, se as configurações foram alteradas durante o trabalho com o dispositivo, depois de desligar a energia, o LED vermelho piscará brevemente, se as configurações não tiverem sido alteradas - verde. Se o dispositivo não for usado por um longo período de tempo (uma semana ou mais), para evitar o descarregamento completo da bateria, você pode desligar a energia de reserva usando o jumper S1. O MK monitora constantemente o status dos contatos dos botões do teclado e, se não houver um único pressionamento no tempo especificado e nenhum temporizador de programa for iniciado, ele alterna automaticamente para o modo relógio. O programa de controle MK é escrito em C, portanto, pode facilmente usar qualquer tipo de dados, incluindo os reais. O programa foi desenvolvido no sistema de programação HT-PIC C (pode ser "baixado" no site ). Para depuração, usamos o emulador de circuito mais simples, que é um conjunto de contatos conectando as linhas da porta paralela do computador ao soquete sob o MK na placa principal. A correspondência das conclusões da porta paralela do computador com os soquetes do soquete MK na placa do temporizador é fornecida na Tabela. 1. Para controlar o emulador, o programa de controle MK foi compilado com pequenas alterações no ambiente de programação Borland C++ 3.1. Infelizmente, o trabalho de tal emulador ocorre em uma escala de tempo diferente da real, mas mesmo assim, sem tal dispositivo, seria quase impossível depurar um programa tão complexo. Sem o uso de emulador, foi implementada apenas a conversão analógico-digital, cuja descrição em relação a este MK pode ser encontrada no site (documento DS30292C - "Módulo ADC de 10 bits em microcontroladores PIC16F87x"). Vamos considerar brevemente os principais pontos do programa de controle MC. É escrito usando a metodologia de programação estruturada, pelo que possui um grande número de sub-rotinas. Depois de ligar a energia, o MCU configura as portas de E/S, o ADC e o timer interno. Então o loop principal começa a correr, que é infinito. Nele, como já mencionado, a presença da tensão de alimentação principal é constantemente verificada e, se desligada, o MK deixa de executar todas as funções, exceto o tempo. Quando a energia principal é ligada, ela exibe a tela inicial e retorna ao modo de operação. As informações que devem ser exibidas no indicador no momento atual são armazenadas no array d. No processo de regeneração do indicador, o MC reescreve seu conteúdo em uma matriz intermediária e, a partir dela, lê sequencialmente os códigos dos caracteres de saída e os exibe no indicador. Uma matriz adicional é introduzida para eliminar a oscilação do indicador resultante da gravação de novas informações na matriz d antes que a antiga ainda não seja totalmente exibida. Por exemplo, digamos que o array d continha inicialmente a string "ABCDEFHLP", e quando o quarto caractere ("D") é exibido, a string "FDA 2002" é inserida no array. Então o usuário do aparelho, devido à inércia da visão humana, em algum momento verá a linha "ABC 2002". Além disso, se tais processos forem repetidos constantemente (e será o caso no trabalho real), a pessoa terá a impressão de que as informações do indicador estão piscando. Conforme observado, o teclado é verificado simultaneamente com a atualização do indicador. Quando qualquer botão é pressionado, a sub-rotina de supressão de ressalto de contato é chamada, que atrasa alguns milissegundos (o valor deste tempo é armazenado na memória MK), durante o qual o dispositivo não responde a novos pressionamentos de botão. De referir ainda que o tempo de exposição dos temporizadores, relógios e alarmes de software é definido em segundos (o contador de horas é reiniciado quando é atingido o valor 24 x 60 x 60 = 86400), e antes de ser apresentado no indicador é convertido para o formato H : MM : SS para temporizadores ou para o formato HH : MM para relógio e alarme. Isso é feito usando as seguintes fórmulas: C = mod de tempo 60. Aqui a operação ][ significa descartar a parte fracionária, ou seja, a divisão é inteira. Os valores obtidos de horas, minutos e segundos ainda não são adequados para exibição direta no indicador, pois são apresentados em código binário. Para selecionar as casas decimais mais significativas e menos significativas, é necessário realizar mais duas operações em cada valor: LSB = valor mod 10. Considere um exemplo. Seja necessário exibir o valor 8673 s no indicador no formato H : MM : SS. Nós temos C = 8673 mod 60 = 33. Assim, o indicador exibirá 2 : 24 : 33 A partir dos exemplos dados, pode-se ver quantas operações precisam ser realizadas apenas para organizar a saída para o indicador. Seria quase impossível implementar tal matemática em linguagem assembly. Na linguagem C, isso é implementado em apenas algumas linhas, enquanto, graças a um alto nível de otimização, o código do programa é bastante compacto e rápido. Mas o mais importante é que o programador possa focar sua atenção principal no algoritmo do programa, abstraindo-se das características específicas da arquitetura do microcontrolador aplicado. Tudo isso contribui para a fácil transferência do programa de um MK para outro. O texto fonte do programa MK e os códigos de "firmware" no formato Intel HEX estão localizados no endereço acima na Internet. Para programar o MK, o autor utilizou um programador montado conforme o esquema mostrado na Fig. 2, e o software PonyProg2000, cuja versão mais recente pode ser "baixada" do site . A principal diferença entre o programador e o descrito em [1] é a adição de outro transistor (VT3) ao circuito de geração do sinal de sincronização, o que aumenta a confiabilidade da programação ao eliminar completamente a tensão negativa nos pinos MK. O dispositivo descrito permite a programação MK na placa, ou seja, suporta a tecnologia ICSP (In-Circuit Serial Programming - programação serial in-circuit). Para isso, liga-se por cinco fios ao programador através do conector X1 da seguinte forma: 7 - comum; 5,6 - 5 V; 2 - SDA; 3 - SCL; 1 - Upprog. É possível usar outros programadores, inclusive aqueles que suportam programação de baixa tensão. Neste último caso, deve-se conectar adicionalmente o contato correspondente do programador com o pino 4 do conector X1. Um desenho da placa de circuito impresso do dispositivo é mostrado na fig. 3, teclados - na fig. quatro. Existem sete orifícios na placa do temporizador, nos quais, antes da montagem das peças, são inseridos pedaços de arame estanhado e soldados aos condutores impressos em ambos os lados da placa. A função dos jumpers também é realizada pelas conclusões de algumas partes. Os orifícios através dos quais são feitas essas conexões de condutores impressos são destacados na fig. 3 com quatro pontos transversais. Os arquivos fonte do projeto e a biblioteca de componentes usados para CAD Accel EDA 15.0 estão localizados no site acima. O dispositivo usa resistores e capacitores fixos para montagem em superfície. A exceção são os capacitores de óxido C6, C7 (K50-35). O MK PIC16F876 pode ter qualquer frequência máxima de operação e faixa de temperatura, o principal é que esteja em um pacote DIP (tinha um sufixo SP). O emissor piezoelétrico HRM14AX pode ser substituído por uma unidade composta por três elementos do microcircuito KR1533LAZ e um emissor piezoelétrico ZP-18 [2]. Termistor RK1 - MMT-4 com resistência nominal de 15 kOhm (R0 = 0,294 Ohm, V = 3176 K). Como conectores X1 - XZ, são usados \u1b\u2bblocos divididos com pinos retos, usados \u1b\u2bna tecnologia de computadores: para X2, é usado um bloco com arranjo de pinos em duas linhas e para X20 e XZ - com uma única linha. O oitavo contato do plugue XP10 e o terceiro plugue XP1 foram removidos e os plugues foram inseridos nos soquetes correspondentes das partes correspondentes dos conectores - pedaços de linha de pesca grossa. Essa medida evitará que os conectores se encaixem incorretamente. O soquete do conector X16 é feito de um painel de 3 slots para um microcircuito em um encapsulamento DIP (é usada uma parte dele, que possui 130 pinos). Botões SBXNUMX-SBXNUMX - TS-AXNUMXPS-XNUMX. O conteúdo do MK EEPROM, que pode ser alterado para definir outros parâmetros de operação, é apresentado na Tabela. 2. A coluna "Parâmetro" contém o nome do parâmetro, que é exibido no indicador. Se houver um traço nesta coluna, então este parâmetro só pode ser alterado na hora de programar o MK. Literatura
Autor: D.Frolov, Ryazan Veja outros artigos seção Reguladores de potência, termômetros, estabilizadores de calor. Leia e escreva útil comentários sobre este artigo. Últimas notícias de ciência e tecnologia, nova eletrônica: Couro artificial para emulação de toque
15.04.2024 Areia para gatos Petgugu Global
15.04.2024 A atratividade de homens atenciosos
14.04.2024
Outras notícias interessantes: ▪ Smartphones com zoom óptico sem aumentar seu tamanho ▪ Determinando a maturidade usando redes neurais ▪ Núcleos de processador MIPS Warrior I64 de 6400 bits ▪ Está chovendo diamantes em Urano ▪ Dispositivos analógicos ADC de 24 bits Feed de notícias de ciência e tecnologia, nova eletrônica
Materiais interessantes da Biblioteca Técnica Gratuita: ▪ seção do site Medidores elétricos. Seleção de artigos ▪ artigo Rainha das provas. expressão popular ▪ artigo Quem inventou a língua de sinais? Resposta detalhada ▪ artigo de rosa de cachorro. Lendas, cultivo, métodos de aplicação ▪ artigo ponte HF - medidor SWR panorâmico. Enciclopédia de rádio eletrônica e engenharia elétrica ▪ artigo Ovo na garrafa. experimento físico
Deixe seu comentário neste artigo: Todos os idiomas desta página Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site www.diagrama.com.ua |