Sensor de temperatura I2C LM75

Sensor de temperatura I2C LM75

Sensor de temperatura I2C LM75

Sensor de temperatura LM75 I2C Termômetro I2C barramento

Tabela de conteúdos

    Principio de funcionamento

    El IC LM75 é um sensor de temperatura bandgap de semicondutor de silício.

    Em semicondutores, o banda proibida É a zona de energia dos elétrons que não pode ser aumentada com o aumento do campo elétrico, pois não há estados disponíveis para se mover mais rapidamente. Está banda proibida está incluído entre os banda de valência (menor energia) e o banda de condução (maior energia). A excitação térmica (o aumento da temperatura, para os propósitos que nos interessam) pode fazer com que alguns elétrons adquiram energia suficiente para passar para o banda de condução.

    Como explicado no artigo anterior sobre o medição eletrônica de temperatura, nos metais, embora o número de portadores não dependa da temperatura (todos os elétrons estão sempre disponíveis), sua mobilidade é afetada pela temperatura, de modo que a resistência nos metais aumenta com a temperatura devido à diminuição da velocidade dos elétrons devido a o aumento da sua agitação térmica e o espalhamento de elétrons que ele produz.

    No caso dos semicondutores, devido à presença deste banda proibida O número de transportadores depende da temperatura (dependendo do Distribuição Fermi-Dirac) fazendo com que a condutividade aumente com a temperatura. Nos semicondutores, o aumento da temperatura produz um aumento na resistência, mas também produz um (ainda) aumento na condutividade.

    Os sensores de temperatura bandgap de semicondutores de silício, como é o caso do LM75, funcionam segundo este princípio, permitindo determinar a temperatura quantificando sua influência na tensão em um diodo de silício.

    Componentes de hardware LM75

    O LM75 também possui um conversor analógico-digital por modulação Sigma-Delta que é responsável por obter o valor numérico (digital) da temperatura, valor que posteriormente é armazenado (a cada 100 ms) em um de seus registros de onde pode ser lido via barramento I2C.

    Sensor de temperatura LM75 I2C. Diagrama simplificado dos blocos operacionais

    Além do registro que contém a temperatura medida, o LM75 possui um registro no qual pode ser armazenada uma temperatura máxima e também um comparador que é capaz de gerar um sinal caso a temperatura medida ultrapasse a armazenada neste segundo registro. Para não lançar novamente o aviso até que a temperatura medida desça abaixo de um determinado nível, um terceiro registo permite armazenar um valor para a temperatura do histerese.

    A configuração do funcionamento do LM75 é armazenada em um quarto registro com o qual são determinadas as condições sob as quais o aviso é gerado, a forma de lançamento deste sinal de aviso (modo de interrupção ou modo de comparação), bem como a ativação do dispositivo (modo). (funcionamento normal ou baixo consumo) entre outros parâmetros.

    Especificações técnicas e implementação do LM75

    A faixa de temperaturas que o LM75 é capaz de medir varia de −55 °C a +125 °C e a resolução numérica é de 0.125 °C, embora a precisão seja de apenas ±2 °C no melhor caso, quando a temperatura está entre - 25 °C e +100 °C e uma precisão de ±3 °C com as temperaturas mais extremas, entre −55 °C e +125 °C.

    LM75. Sensor de temperatura I2C. Pinagem

    A implementação (hardware) do LM75 em um circuito é muito simples, não necessita de mais componentes além dos resistores puxar para cima De ônibus I2C e pode ser alimentado com tensão entre 2,8 V e 5,5 V. No mesmo ônibus I2C Podem ser dispostos até oito termômetros LM75 configurando seu endereço com os três pinos A0, A1 e A2 em nível alto ou baixo, como é usual nestes casos.

    LM75. Sensor de temperatura I2C. Circuito de aplicação

    Por outro lado, o uso do LM75 como sonda é incômodo devido às embalagens em que é apresentado, TSSOP (TSOP8) Ou SEC (SO8) e é normalmente usado para medir a temperatura ambiente ou para medir a temperatura de componentes dispostos no ambiente do PCB onde está localizado o termômetro LM75.

    Na inicialização, o LM75 é configurado para detectar uma temperatura máxima de +80°C, uma temperatura de histerese de +75 °C e o modo de funcionamento comparador, ou seja, o modo que emula o funcionamento de um termostato: ativa o aviso quando a temperatura máxima é atingida e somente se cair abaixo do histerese Regenera o aviso.

    Exploração do LM75 a partir de um microcontrolador via barramento I2C

    Graças ao uso de ônibus I2C O funcionamento do LM75 é muito simples, bastando acessar o endereço que ele ocupa no barramento para armazenar ou ler a configuração e obter o valor da temperatura medida.

    A direção I2C A base do LM75 é 0B01001XXX e é complementada, conforme explicado acima, pelos últimos três bits de endereço que são configurados pelo hardware com os pinos A0, A1 e A2 alto (valor um) ou baixo (valor zero).

    O LM75 como termômetro

    O registro que armazena a última temperatura medida (TEMP) está localizado no endereço 0x00, o registro de configuração (CONF) está no endereço 0x01, o registro que armazena a temperatura de histerese no endereço 0x02 e a temperatura máxima ou excessiva (TOS) tem endereço 0x03. Exceto a temperatura atual (TEMP), todos funcionam como leitura e gravação.

    Usando alguns exemplos de código desenvolvidos para Arduino (que se tornou uma referência quase universal) o funcionamento do LM75 pode ser ainda mais esclarecido. O exemplo útil mais básico é usar o LM75 como termômetro lendo o registro da última temperatura medida.

    O processo é normal ao trabalhar com um dispositivo I2C:

    1. Adicione a biblioteca I2C para o código com #include <Wire.h>
    2. Inicialize a biblioteca I2C uso Wire.begin();
    3. Acesse o sensor de temperatura LM75 via Wire.beginTransmission(DIRECCION_LM75)
    4. Envie o endereço do registro acessado usando Wire.write(REGISTRO)
    5. Liberte o ônibus I2C com Wire.endTransmission()
    6. Acesse novamente o LM75
    7. Solicite o valor do registro com Wire.requestFrom(DIRECCION,CANTIDAD)
    8. Verifique se os dados foram recebidos usando Wire.available()
    9. Leia o valor solicitado Wire.read() (quantas vezes quantos bytes o compõem)
    10. Embora não seja essencial, quando terminar, solte o ônibus I2C

    Além do protocolo usual para obtenção ou armazenamento de informações nos logs do dispositivo utilizando o ônibus I2C, para explorar os dados que o LM75 fornece é necessário considerar o formato em que ele representa internamente a temperatura.

    Obtenção do valor armazenado nos registros de temperatura do LM75

    Na linha 22 do código do exemplo anterior você pode ver como carregar as informações armazenadas pelos três registradores de temperatura do LM75. Ele usa dois bytes (16 bits), dos quais apenas os 11 bits mais significativos são válidos. Para ler a temperatura como um número inteiro (com o sinal codificado em complemento de dois) o byte mais significativo é carregado primeiro em uma variável int de Arduino e é girado 8 bits para a esquerda, deixando-o na parte mais significativa do int. O segundo byte é então lido e adicionado à variável. int com uma operação OR

    Interpretação do valor da temperatura carregada do LM75

    Na linha 24 você pode ver como interpretar o valor da temperatura. Em primeiro lugar, é necessário dividir por 32 como um número inteiro (girar os 11 bits relevantes sem perder o sinal) e dividir por 8, que é o número de “passos” com que a temperatura é representada (oitavas de grau) para obter um valor do tipo float com as casas decimais correspondentes. Como os compiladores (incluindo o toolchain de Arduino) otimizar a divisão inteira por 32, não é necessário preservar o sinal e girar "manualmente" os bits, pois a operação não é (sensivelmente) mais rápida.

    Verifique a recepção de dados do barramento I2C

    Embora o código anterior funcione sem problemas apesar de não verificar se os dados solicitados pelo dispositivo chegaram. ônibus I2C, o mais ortodoxo (e aconselhável) é esperar que os dados cheguem no número adequado. Como a velocidade de transmissão e a resistência a erros são mais que suficientes, é comum encontrar códigos nos quais os dados são simplesmente solicitados e lidos sem espera. Para os exemplos é útil fazê-lo desta forma, pois não desviam a atenção da intenção principal, mas para o código de produção é aconselhável fazê-lo conforme sugerido no sétimo ponto da lista do processo de comunicação I2C. O código no exemplo a seguir destaca as alterações recomendadas para usar o LM75 na fase de exploração.

    Configure a operação do LM75

    A configuração mais básica do LM75 consiste em estabelecer a temperatura máxima para gerar o aviso e o histerese, que determinará quando será desativado e poderá ser repetido. Para configurar estes valores basta armazená-los nos registros correspondentes.

    Assim como o registro de temperatura atual, a temperatura máxima (de advertência) e histerese Utilizam dois bytes mas ao contrário do primeiro não consideram 11 bits (um oitavo de grau) mas sim 9 (meio grau) de forma que, mesmo que fosse armazenado um valor menor, apenas intervalos desta resolução seriam considerados.

    Como no código anterior apenas é alterada a configuração das temperaturas relacionadas ao aviso, o resto da operação corresponde à configuração padrão.

    Nesta configuração padrão existem duas características que são relevantes, em primeiro lugar o modo de aviso, por padrão o que é chamado de "modo termostato" que consiste em ativar o aviso quando a temperatura máxima (ou aviso) é atingida e não desativá-lo até que seja inferior ao temperatura de histerese. A alternativa é o “modo interrupção”, em que o sinal é acionado quando ultrapassa o máximo ou quando atinge um valor inferior ao do histerese e é zerado lendo qualquer registro, normalmente a temperatura atual.

    A segunda característica é que o sinal de alerta é ativado em nível baixo, ou seja, o pino do SO fica em nível alto até que a temperatura máxima de alerta seja atingida. Como a polaridade do sinal de alerta (o nível em que é ativado) é configurável, em algumas instalações simples será suficiente utilizar este sinal (hardware) para explorar o LM75, por exemplo, conectando ou desconectando um ventilador quando o sistema atinge uma determinada temperatura.

    Também é possível configurar o funcionamento do LM75 para que ele não avise imediatamente após atingir a temperatura de alerta, mas sim após vários incidentes. Este comportamento é muito útil quando se trabalha no limite de temperatura ou quando esta varia muito rapidamente. O LM75 pode ser configurado para avisar após ultrapassar a temperatura máxima uma, duas, quatro ou seis vezes.

    No registro de configuração também existe um bit para desativar (“desligar”) o LM75 e entrar em modo de baixo consumo, do qual se sai alterando novamente este bit ou simplesmente na leitura do próximo registro.

    Postar Comentário

    Você pode ter perdido