Site de automóveis - Ao volante

Site de automóveis - Ao volante

» Sensor de temperatura DS1621. Descrição detalhada do sensor Hack nº 1: Alimentação fantasma para a porta COM

Sensor de temperatura DS1621. Descrição detalhada do sensor Hack nº 1: Alimentação fantasma para a porta COM

O microcircuito é um termômetro e termostato “em uma garrafa” com entrada e saída digital, que garante precisão de medição e controle com erro de mais ou menos 0,5 g. Celsius. Se você usar o sensor DS1621 como termômetro, os dados deverão ser processados ​​através do barramento serial I2C/SMBus em um código adicional de nove bits com uma precisão do dígito menos significativo mais ou menos 0,5 g. Celsius.

Para aplicações que exigem maior resolução de temperatura, registros adicionais e aritmética simples devem ser lidos para obter resolução superior a 12 bits (com o menor bit custando 0,0625 graus Celsius). O chip DS1621 possui três entradas endereçáveis, possibilitando conectar até oito sensores DS1621 a um barramento.

Utilizando o DS1621 como termostato, o DS1621 possui registros TH (alta temperatura) e TL (baixa temperatura). Quando a temperatura atual excede o nível TH, a saída do sensor entrará no estado ativo e continuará nele até que a temperatura atual caia abaixo da marca TL. Assim, é implementado o controle com uma determinada histerese.

Descrição dos pinos do sensor DS1621

  • SDA Saída de dados do barramento I2C.
  • SCL- Saída de clock do barramento I2C.
  • Tout- saída do termostato.
  • Vdd - saída de energia, mais.
  • GND- potência de saída, menos.
  • A0..A2 — linha de bits menos significativos.

Princípio de funcionamento do sensor DS1621

O princípio de medição baseia-se na instabilidade da frequência de oscilação quando a temperatura muda. Para implementar este princípio de medição, dois geradores estão incluídos na estrutura do microcircuito.

O primeiro deles possui estabilidade em altas temperaturas. Sua frequência de operação corresponde a uma temperatura de 55 graus. Celsius e na verdade não muda. A frequência de operação do segundo gerador, pelo contrário, muda proporcionalmente à mudança de temperatura. Contadores especiais contam os pulsos em um período igual de tempo e, com base na diferença, calculam a temperatura atual, que é apresentada na forma de um código binário de 9 bits.

Os dados são divididos em bytes altos e baixos. Se para qualquer finalidade for necessário um valor inteiro de temperatura, apenas o byte alto deverá ser usado. O byte baixo possui apenas um bit de informação - LSB, que implementa uma discrição de 0,5 g. Celsius. Os bits restantes do byte inferior são sempre zero.

Registro de status

O chip DS1621 possui vários modos de operação. Esses modos são configurados e controlados usando o registro de status. Existem os seguintes bits:

  • FEITO sinalizador de conclusão de conversão. Definido no final da conversão.
  • THF— bandeira de "alta temperatura". Definido quando a temperatura aumenta acima do limite de TH. O sinalizador é redefinido por software ou desligando a energia.
  • TLF- bandeira de "baixa temperatura". Definido quando a temperatura cai abaixo do limite TL. O sinalizador é redefinido por software ou desligando a energia.
  • NVB sinalizador para gravação de dados na memória não volátil do sensor. Um sinalizador definido indica que a gravação não foi concluída. O tempo aproximado para gravar dados nas células é de 10 ms.
  • POL - seleção da polaridade de saída Tout. Um valor alto indica polaridade direta, um valor baixo indica polaridade reversa. Este bit não é volátil.
  • É QUENTE bit de controle do ciclo de medição. Uma única medição ocorre quando o nível lógico deste bit é alto. Geralmente é usado para criar sistemas de economia de energia. O baixo nível lógico deste bit permite que a conversão seja realizada em modo constante. Este bit não é volátil.

Comandos de troca

A troca de dados com o sensor DS1621 ocorre usando o protocolo I2C padrão. O sensor participa como um dispositivo SLAVE. Seu endereço SLAVE é assim:

onde xxx é o estado das linhas A0-A2 do microcircuito. Os seguintes comandos são usados ​​para interagir com o DS1621:

  • 22h -“Parar conversão” - o comando encerra a operação do circuito de conversão de temperatura. Nenhum dado extra é necessário para o trabalho.
  • AAh—“Ler temperatura” - O resultado do comando são dois bytes de dados que contêm o valor da temperatura medida.
  • A1h—“Setting TH” é um comando para selecionar o limite superior para operação do termostato. Após este comando, dois bytes do valor limite devem ser transmitidos.
  • A2h—“Setting TL” é um comando para selecionar o limite inferior para operação do termostato. Após este comando, dois bytes do valor limite devem ser transmitidos.
  • A8h—"lendo o medidor de temperatura." O comando é somente leitura e permite a leitura de dados de um contador cuja frequência de operação depende da temperatura.
  • A9h—"ler contador estável". O comando é somente leitura e permite a leitura de dados de um contador cuja frequência de operação independe da temperatura.
  • ACh —“Registro de configuração”. Se o bit for igual a R, o registrador de configuração é escrito, e se W, o registrador de configuração é lido.
  • Eh-“Iniciar contador” é um comando para iniciar a medição de temperatura. Não são necessários dados extras.

Precisão de medição aprimorada

O sensor DS1621 pode melhorar a precisão da temperatura medida. Para este propósito, estão disponíveis os valores do contador do N estável e do gerador de N dependente da temperatura. Conhecendo o valor medido da temperatura T e os valores do contador, você pode obter uma leitura precisa usando a fórmula:

T=T – 0,25 + (N-N)/N

Modo termostato DS1621

O sensor DS1621 também possui um modo de operação como termostato. Para controlar os atuadores existe uma saída digital Tout, configurada em função do valor da temperatura. Os níveis de ativação e desativação da saída são definidos nos registros TH e TL, e a polaridade da saída é selecionada pelo bit POL do registro de configuração.

Diagrama esquemático de um termostato caseiro, projetado para funcionar com um sistema de aquecimento baseado em caldeira elétrica. O circuito é baseado no chip DS1621. O chip DS1621 é um termômetro e termostato com entrada/saída digital, proporcionando uma precisão de ±0,5°C.

Quando usado como termômetro, os dados são lidos via barramento serial l2C/SMBus em um código adicional de 9 bits com um valor de bit menos significativo de ±0,5°C.

Para aplicações que exigem resolução mais alta, o usuário pode ler registros adicionais e realizar aritmética simples para obter resolução superior a 12 bits (com um valor de bit menos significativo de 0,0625°C). O DS1621 fornece 3 entradas endereçáveis ​​para permitir aos usuários conectar até 8 DS1621s a um único barramento.

Ao usar este microcircuito como termostato, os dados sobre a temperatura que precisa ser mantida são armazenados na memória interna não volátil (EEPROM) na forma de pontos de controle definidos pelo usuário para aumento de temperatura (TH) e queda de temperatura (TL). A diferença entre TN e TL forma histerese.

Quando a temperatura é insuficiente (TL e inferior), o pino 3 do microcircuito é ajustado para um nível lógico baixo. Quando a temperatura é suficiente (TN e superior), este pino é lógico.

O chip DS1621 está disponível em pacotes PDIP de 8 pinos e SOIC de 8 pinos.

Diagrama esquemático

A Figura 1 mostra um diagrama de conexão deste microcircuito a um computador pessoal.

Arroz. 1. Diagrama esquemático de um termostato para caldeira elétrica.

O software com o qual o termostato conforme Fig. 1 funcionará em conjunto com um computador pessoal pode ser encontrado em, baixe o programa - Download (1,5 MB).

Depois de definir a temperatura usando um computador pessoal, ela pode ser desconectada do circuito da Fig. Os dados especificados serão salvos na memória do microcircuito, e este circuito funcionará de forma independente, mantendo a temperatura definida através do triac VS1, controlando-o para alimentar o elemento de aquecimento da caldeira de aquecimento.

Arroz. 2. Circuito do termostato no microcontrolador ATTINY2313.

O computador, com sucesso, pode ser substituído por um circuito de controle e monitoramento baseado em um microcontrolador, por exemplo, o circuito ATTINY2313 mostrado na Figura 2. Este é um dispositivo totalmente independente que pode manter a temperatura ambiente na faixa de 10 a 40 graus. Celsius, e ao mesmo tempo serve como termômetro mostrando uma temperatura ambiente específica.

A temperatura é exibida em um indicador digital LED de dois dígitos. Controle de três botões. S1 é usado para ligar e desligar o termômetro.

E com os botões S2 e S3 você pode definir a temperatura a ser mantida. O LED HL1 é utilizado para indicar o estado ligado da caldeira elétrica. Quando a resistência da caldeira está funcionando, pisca.

Firmware MK

O arquivo HEX para programação do microcontrolador está localizado neste link: Download (1,9 KB).

O microcontrolador opera com um oscilador integrado de 4 MHz. Ao programar em Features você precisa selecionar:

interno. R.C. 4MHz; Tempo de inicialização: 14 CK + 0 ms;

Detecção de queda de energia desativada; marque a caixa Download de programa serial (SPI) ativado;

Fusíveis: (marque as caixas) SUT1, SPIEN, SUTO, CKSEL3, CKSEL2, CKSELO

Detalhes

A instalação foi realizada em protótipos de placas de circuito impresso. O transformador T1 é um transformador pronto “TAIWAN 110-230V 6-0-6V 150tA”, potência, baixa potência, com enrolamento secundário de 6V. Mais precisamente, possui dois enrolamentos secundários de 6-0-6V e corrente de até 150 tA, conectados em série. Apenas um enrolamento é usado aqui. O enrolamento primário é de 230V, mas contém uma derivação para 110V.

É necessário usar um ohmímetro para selecionar os terminais do enrolamento primário com maior resistência entre eles e conectá-los à rede elétrica. Os indicadores LED ALSZZZA são bastante antigos. Eles podem ser substituídos por quaisquer LEDs digitais de sete segmentos com cátodo comum.

Kozhukhin V. A. RK-08-16.

Literatura: 1. Termômetro para PC em DS1621 - cxem.net/mc/mc136.php.

Lasca DS 1621, fabricado pela Dallas Semiconductors, foi projetado para desempenhar as funções de termômetro e termostato. As capacidades do microcircuito permitem medições na faixa de temperatura de -55 a +125 graus Celsius. A etapa de leitura da temperatura é de 0,5 graus. DS 1621 está equipado com uma interface Eu 2C. No modo termostato, é possível a operação autônoma.

Atribuição de pinos

  • SDA- Linha de dados de barramento I2C
  • SCL- Linha de relógio do barramento I2C
  • Anunciante- saída do termostato
  • Vdd- saída de potência positiva
  • Vss- fonte de alimentação negativa
  • A0..A2- linhas para formar os bits menos significativos do endereço

Princípio da Operação

sensor de temperatura D.S. 1621 usa o princípio da instabilidade da frequência de oscilação com mudanças de temperatura para medir. Para este efeito, inclui dois geradores. O primeiro possui estabilidade em altas temperaturas. Sua frequência corresponde a uma temperatura de –55 graus e praticamente não está sujeita a alterações. A frequência de operação do segundo gerador, ao contrário, muda proporcionalmente à temperatura. Contadores de pulso especiais contam para o mesmo intervalo de tempo e, com base na diferença, calculam o valor da temperatura. Este valor em código binário de 9 bits está disponível para o usuário. Os dados são divididos em bytes altos e baixos. Se o valor inteiro da temperatura for suficiente, apenas o byte alto poderá ser usado. O byte baixo possui apenas um bit de informação LSB, fornecendo uma resolução de 0,5 graus. Os bits restantes do byte inferior são sempre 0.

O chip DS 1621 possui vários modos de operação. Esses modos são configurados e monitorados usando o registro de status. Os bits disponíveis são:

  • FEITO– sinalizador de conclusão da conversão Definido após a conclusão da conversão.
  • THF– sinalizador “alta temperatura”. Definido quando o limite de TH é excedido. Pode ser redefinido por software ou desligando a energia.
  • TLF- bandeira “baixa temperatura”. Ajustado a uma temperatura inferior ao valor limite TL. Pode ser redefinido por software ou desligando a energia.
  • NVB– sinalizador para gravação de dados em memória não volátil. Um sinalizador definido indica que a gravação está incompleta. O tempo de gravação da célula é de aproximadamente 10 ms.
  • POL– polaridade de saída Tout. Um valor alto corresponde à polaridade direta, um valor baixo à polaridade reversa. O bit não é volátil.
  • É QUENTE– gerenciamento do ciclo de medição. Quando o nível lógico é alto, a medição é realizada uma vez. Este modo é usado em sistemas de economia de energia. Um baixo nível de bits lógicos permite que a conversão seja realizada em modo contínuo. O bit não é volátil.

Trabalhando com DS1621

Comandos de troca

A troca de dados com o DS 1621 é realizada utilizando o protocolo padrão I 2C. O microcircuito participa dele como dispositivo escravo. O endereço escravo do DS 1621 tem o formato 1001xxx, onde xxx é o estado das linhas A0-A2 do microcircuito. Os seguintes comandos são usados ​​para trabalhar com DS 1621:

  • 22h– “Parar conversão” - o comando encerra o circuito de conversão de temperatura. Nenhum dado adicional é necessário para operação.
  • AAh– “Ler temperatura” - O resultado do comando são dois bytes de dados contendo o valor da temperatura medida.
  • Uma 1h– “Setting TH” - um comando para definir o limite superior do termostato. Após este comando, é necessária a transmissão de dois bytes do valor limite.
  • 2h- “Setting TL” - um comando para definir o limite inferior do termostato. Após este comando, é necessária a transmissão de dois bytes do valor limite.
  • Às 8h– “leitura do medidor de temperatura”. O comando é somente leitura e permite ler dados de um contador cuja frequência de operação depende da temperatura.
  • Às 9h- “lendo um contador estável”. O comando é somente leitura e permite ler dados de um contador cuja frequência de operação não depende da temperatura.
  • Um Ch– “Registro de configuração”. Dependendo do estado do bit R/W, o registro de configuração é escrito ou lido. O formato dos dados usados ​​é byte.
  • Eh– “Iniciar contador” - comando para iniciar a medição de temperatura. Não são necessários dados adicionais.

Aumentando a precisão da medição

O sensor de temperatura DS1621 permite maior precisão de medição. Para tanto, os valores dos contadores do gerador N estável e N dependente da temperatura estão à disposição do usuário. Conhecendo a temperatura medida T e os valores do contador, você pode usar a fórmula:

T=T – 0,25 + (N-N)/N

Também é desejável calibrar o sensor para determinar as correções necessárias. Estas correções devem ser levadas em consideração no controlador.

Modo termostato

O chip DS 1621 pode operar no modo termostato. Para isso existe uma saída Tout, que é configurada em função do valor da temperatura. Os limites para ligar e desligar a saída são definidos pelos valores nos registros TH e TL. A polaridade da saída é definida pelo bit POL do registrador de configuração.



O DS1621 é um termômetro e termostato de E/S digital que fornece precisão de ±0,5°C. Quando usado como termômetro, os dados são lidos através do barramento serial I2C/SMBus em código complementar de 9 bits com o valor do bit menos significativo ±0,5°C. Para aplicações que exigem resolução mais alta, o usuário pode ler registros adicionais e realizar aritmética simples para obter resolução superior a 12 bits (com um custo de bit menos significativo de 0,0625°C). O DS1621 fornece 3 entradas endereçáveis ​​para permitir aos usuários conectar até 8 DS1621s a um único barramento.
Quando usado como termostato, o chip DS1621 possui pontos de ajuste de sobretemperatura (TH) e subtemperatura (TL) programáveis ​​pelo usuário em sua memória interna não volátil (EEPROM). Uma saída lógica dedicada operará quando TH for atingido e a saída permanecerá ativa até que a temperatura caia abaixo de TL (histerese programável).
O DS1621 é oferecido em 300mil PDIP de 8 pinos e 150mil SOIC de 8 pinos. Para aplicações que não exigem precisão de ±0,5°C, o DS1721 está disponível com precisão reduzida de ±1°C, um IC totalmente compatível e de menor custo (somente SOIC).
O DS1621 é compatível com o kit de demonstração DS1702k.
Características distintas:
Precisão de ±0,5°C de 0°C a 70°C
Resolução de 9 bits, expansível até 12 bits
saída lógica especial para controle de temperatura
As configurações do termostato são não voláteis e programáveis ​​pelo usuário
Os dados são transferidos via interface serial I2C/SMBus
3 entradas de endereço (8 DS1621 podem ser usados ​​em um barramento)
Faixa de tensão de alimentação operacional de 2,7 V a 5,5 V
Pacotes PDIP de 8 pinos ou 150mil, SOIC de 8 pinos
DS1621 DIP DE 8 PINOS (300 MIL)
DS1621S SOIC de 8 pinos (150 MIL)
DS1621V SOIC de 8 pinos (208 MIL)



O aparelho é simples, sem calibração e microcontroladores.

Este termômetro incrivelmente simples se conecta a qualquer porta serial disponível. Nenhum componente programável ou microcontroladores são usados. A precisão da medição é de até 0,5°C sem calibração. É tão barato que fiz um para cada computador que uso. É tão bom ter temperatura na barra de tarefas do Windows que muitos amigos me pediram para fazer uma!

Faça você mesmo um termômetro preciso

D Este projeto é bastante fácil para iniciantes, mas pode haver dificuldades associadas à incompatibilidade de hardware da porta serial em computadores diferentes. A versão com sensor único requer apenas um chip sensor, um regulador de tensão e alguns diodos e resistores. Faça isso e aprenda os segredos do barramento IIC, como implementar um barramento IIC usando apenas dois resistores e um par de diodos zener, como controlá-lo em uma porta serial usando Visual Basic. Os componentes utilizados estão prontamente disponíveis em lojas de rádios online.

Características:

A temperatura é exibida na barra de tarefas do Windows e fora dela (veja a figura).

Instala em qualquer porta COM livre de um PC.

Faixa de medição -20 … +125°C (-4 … 257°F).

Precisão básica e resolução de 0,5°C.

Escala Celsius (°C) e Farenheit (°F).

Os dados são gravados em um arquivo de texto de fácil leitura (bom para Excel).

Taxa de amostragem 1, 5, 30 ou 60 segundos.

Um ou dois sensores de temperatura (expansível até 8)

Alimentado pela porta COM, nenhuma fonte externa necessária.

Fácil de fazer, sem software ou peças de hardware exóticas.

Não requer calibração.

Fazer um termômetro para PC é fácil. Descreverei em detalhes a versão com elementos de montagem em superfície. Aqueles que não estão familiarizados com a soldagem de pequenos elementos SMT ficarão felizes em saber que uma placa de saída também está disponível.

Primeiro você precisa montar todos os elementos, exceto as placas. Aqui está a lista de elementos:

Número Tipo Descrição
U1, U2 DS1621 ou DS1631 Sensor digital de temperatura

Caixa de plástico SO8 (SMD) ou DIP (entrada)

U3 LM2936Z-5.0 Regulador de tensão de perda ultrabaixa, caixa TO92 (ambas as versões)
D1, D2 LL4148 Diodo de pulso pequeno (como 1N4148)
DZ1, DZ2 MMSZ5V1 Diodo Zener 5,1V 0,5W.
C1, C2 47 µF/16V Capacitor eletrolítico
C3, C4 100nF Capacitor cerâmico de baixa tensão (SMD 1206)
R1, R2 4700Ohm 5% Resistor 0,25W (SMD 1206)
COM DB9F Conector fêmea de 9 pinos, reto (SMD) ou angular (Leadout)

Esta é uma visão ampliada da placa SMT montada (a placa pequena é um sensor remoto de temperatura).

Depois de montar todos os elementos, imprimi o quadro em seu tamanho real para verificar as dimensões de todos os elementos relativos a ele. Se um elemento for muito grande ou pequeno, posso ajustar a placa ou procurar um elemento adequado antes de iniciar o trabalho.

Depois de verificados todos os elementos, faço o quadro. Como é unilateral, você mesmo pode gravá-lo facilmente. Demora menos de uma hora e não requer nenhum material especial usando o método descrito aqui.

A placa deve estar impecavelmente limpa (sem oxidação ou impressões digitais) para uma boa gravação e soldagem. Esfregue com um abrasivo macio até brilhar (esfregão de cozinha, palha de aço ou até mesmo borracha de escritório). Não se esqueça de espelhar o design do seu quadro antes de imprimir! Adoro placas SMT porque não há tantos furos tediosos para fazer antes de soldar.

A soldagem requer um ferro de solda com ponta fina, uma pinça afiada e mão firme. Eu seguro a placa na mesa enquanto soldo. Na verdade, anexei-o à impressão para facilitar a verificação durante a soldagem.

Para evitar misturar acidentalmente os itens, mantenha-os na embalagem original até que sejam necessários. Sugiro que você comece a soldar com elementos pequenos (resistores, diodos...) e termine com os grandes (capacitor eletrolítico), elementos altos podem dificultar o acesso aos pequenos.

Não aplique muita solda e tome cuidado para não superaquecer os componentes (especialmente diodos e CIs). Se necessário, deixe o elemento esfriar. A maioria dos elementos são polares, por isso tome cuidado para não misturá-los. O cátodo do diodo (K) está marcado com um anel preto, o terminal negativo dos capacitores eletrolíticos está marcado com uma faixa preta. Se preferir usar capacitores de tântalo, lembre-se que suas marcações estão invertidas, com uma tarja preta indicando o terminal positivo!

Fique de olho na foto e sempre verifique até ter certeza de que não há diferença.

Aqueles que não têm experiência em soldar componentes SMT podem estar preocupados em soldar o chip do sensor.

Eu limpo a ponta do ferro de solda antes de cada ponto de solda e uso uma solda muito fina para garantir que aplico o mínimo de solda possível. Aplico uma pequena quantidade de solda apenas no pad destinado ao pino 1.

Coloco o microcircuito na placa e, quando seus pinos coincidem com os pads, limpo a ponta e aqueço o pino 1 até que esteja soldado. Verifico se o chip ainda está alinhado corretamente (todos os pinos estão centralizados em seus respectivos pads). Se mudou, aqueço o pino 1 e movo, ou ainda soldo os pinos restantes, limpando a ponta e usando um pouco de solda. O último passo é soldar o pino 1, que inicialmente foi soldado com uma quantidade muito pequena de solda.

O regulador de tensão LM2936Z5 requer preparação especial para soldagem. Eu tinha furos passantes, mas queria soldá-los no lado SMT da placa. A figura mostra como dobrar e encurtar os contatos.

A placa de circuito impresso foi projetada para ser instalada entre os pinos do conector da porta serial. Esta é a última parte da soldagem. Não se esqueça de soldar os pinos 7 e 8 no lado oposto da placa de circuito impresso.

Normalmente limpo a placa de resíduos de fluxo usando um solvente como acetona e deixo a placa secar completamente antes de ligá-la. Depois que a placa estiver testada e funcionando, aplico uma camada de verniz transparente em spray para proteger o cobre da oxidação.

A última etapa é baixar e instalar o software. Se você estiver confuso com os prompts do Microsoft Installer (... em italiano), essas capturas de tela (primeira e segunda) irão ajudá-lo a fazer tudo certo.

Ao iniciar pela primeira vez, você precisa selecionar o número da porta serial à qual o circuito está conectado e estará pronto para receber a temperatura. Boa sorte!

Como funciona?

O circuito é derivado do programador Claudio Lanconelli PonyProg. O componente principal é o sensor de temperatura Dallas Semiconductor DS1621. Trata-se de um sensor digital de temperatura, o que significa que mede a temperatura e a transforma em valores digitais (números binários, ou seja, uma sequência de uns e zeros, como bytes em um computador).

Basta fornecer uma fonte regulada de 5 V e o DS1621 é capaz de transmitir temperaturas ambientes através do barramento serial IIC (barramento de circuito interintegrado, também escrito I2C). Este é um circuito de transmissão padrão desenvolvido pela Philips Semiconductors para conectar vários chips usando apenas duas linhas: clock (SCL) e dados (SDA).

Consulte a documentação para obter informações mais detalhadas sobre o funcionamento do barramento, mas por enquanto basta saber que qualquer chip I2C possui seu próprio endereço (um número na faixa de 0 a 127) e um conjunto de comandos. Desta forma você pode conectar vários chips em paralelo e ainda conseguir se comunicar com cada um individualmente, iniciando cada mensagem com o endereço apropriado.

Direto de fábrica, todos os DS1621s vêm com um endereço base (US$ 40), mas você pode personalizá-lo conectando os pinos de endereço (A0, A1, A2) a 5V ou GND respectivamente (ver tabela). Assim, você pode conectar até 8 chips de sensores em paralelo no barramento, embora o software fornecido suporte e tabule apenas dois (você pode adicionar mais sensores alterando o software).

Assim podemos alimentar o DS1621 com 5V DC e conectá-lo aos fios SCK e SDA da interface I2C do PC, certo? Infelizmente, os computadores não possuem conectores de 5V DC e portas I2C, então temos que hackeá-los!

Hack nº 1: alimentação fantasma para porta COM

Um sensor de temperatura não requer muita energia para funcionar, então por que não eliminar a necessidade de energia “roubando” energia dos sinais já disponíveis na porta RS232?

12V das linhas RS232 são transmitidos ao regulador através dos diodos D1, D2, filtrados por C1 e regulados para +5V no LM2936-Z5. Este é um regulador especial que pode operar com uma tensão de entrada mínima e economizar cada mA. O LM2936 é capaz de regular tensões de entrada tão baixas quanto 5,2 (a maioria das portas seriais são alimentadas apenas por 6V). Em comparação, os reguladores 78L05 convencionais requerem pelo menos 6,7 V de entrada e consomem 100 vezes a corrente exigida pelo LM2936-Z5.

Hack nº 2: Faça a porta COM fingir que é um barramento I2C.

O software do termômetro para PC emula os fios do barramento I2C com dois pinos da porta COM, disponível em todas as placas-mãe.

A linha SCL usa RTS (Request To Send, pino 7), e a linha SDA usa uma linha originalmente projetada para a porta serial DTR (Data Terminal Ready, pino 4). Esses sinais podem ser acessados ​​no Visual Basic definindo as propriedades DTR e RTS do objeto MSComm.

Você não pode alimentar o sinal da porta COM diretamente no DS1621, pois os níveis de tensão devem ser adaptados. De acordo com o padrão EIA-RS232, a tensão de saída da maioria dos computadores atinge +15VDC e cai para -15VDC no conector da porta COM, portanto devemos limitá-los a tensões mais convenientes de 0 a +5VDC antes de conectar aos fios DS1621 SDA e SCL. Um diodo zener de 5,1 V e um resistor limitador de 4700 são suficientes para essa finalidade.

Se você observar o circuito com atenção, notará que o pino SDA também está conectado ao pino CTS (Clear To Send, pino 8). Desta forma, o software do PC do termômetro pode controlar o nível lógico SDA para ler as respostas do chip, tornando esta linha bidirecional. Embora uma porta serial teoricamente exija um sinal negativo de sua entrada, os sinais na faixa de 0 a 5 Vcc funcionam bem em quase todos os computadores do planeta.

Programas

O software vem pré-compilado e com instalador (setup.exe), mas o código-fonte está incluído para interessados ​​em programação.

Eu escrevi o programa em Visual Basic. Fiz isso de maneira direta, evitando deliberadamente otimizações que tornariam o código menos legível.

As funções do barramento I2C são agrupadas em um arquivo que pode ser reutilizado para outras aplicações. Ele fornece funções para todas as operações básicas do barramento I2C: como iniciar e parar o barramento ou enviar e receber um único byte.

O programa principal fornece uma função de temperatura (chipaddress), que instrui o barramento I2C a obter a temperatura do chip.

Para ler a temperatura de um chip no Visual Basic, tudo o que você precisa fazer é consultar a temperatura ($&48), onde $&48 é o endereço do primeiro chip, $H49 é o endereço do segundo chip e assim por diante, de acordo com a tabela acima. Meu programa usa dois sensores, mas não é tão difícil modificá-lo para suportar até 8 chips.

Na primeira vez que você executar o programa, receberá um aviso de que não existe nenhum arquivo de configuração (ele será criado automaticamente ao final da sessão) e as configurações serão padrão. Selecione a porta serial (COM) que você usa se o seu dispositivo inclui U2 para ler a temperatura do ar externo, intervalo de medição, unidades de medida e se deseja registrar a temperatura no arquivo "pc_thermometer.txt" (arquivo de texto ASCII que você pode importar para Excel para processamento ou plotagem).

Marque o campo “iniciar minimizado”, se estiver habilitado, então nos lançamentos subsequentes o programa não abrirá uma janela na área de trabalho, mas será minimizado na barra de tarefas, fornecendo um “ícone de temperatura”. Esta é minha maneira preferida de usar o programa.

Ao clicar no ícone, uma janela é aberta.

Baixe os arquivos do projeto

Artigo original em inglês (tradução: Alexandre Kasyanov para o site cxem.net)