Índice:

Sensor de temperatura faça você mesmo usando um diodo: 3 etapas
Sensor de temperatura faça você mesmo usando um diodo: 3 etapas

Vídeo: Sensor de temperatura faça você mesmo usando um diodo: 3 etapas

Vídeo: Sensor de temperatura faça você mesmo usando um diodo: 3 etapas
Vídeo: Make a Temperature sensor using diode, diy ptc thermistor resistor 2024, Julho
Anonim
Sensor de temperatura faça você mesmo usando um diodo
Sensor de temperatura faça você mesmo usando um diodo
Sensor de temperatura faça você mesmo usando um diodo
Sensor de temperatura faça você mesmo usando um diodo

Então, como um dos fatos sobre as junções PN é que sua queda de tensão direta muda de acordo com a corrente que passa e também com a temperatura da junção, vamos usar isso para fazer um sensor de temperatura simples e barato.

Esta configuração é comumente usada em muitos Circuitos Integrados para medir sua temperatura interna e em muitos sensores de temperatura como o famoso LM35 que é baseado nesta propriedade.

Simplesmente a queda de tensão direta de um diodo (que é uma única junção PN) muda conforme a quantidade de corrente que passa por ele muda, e também conforme a temperatura do diodo muda, a queda de tensão vai mudar (conforme a temperatura aumenta, o avanço a queda diminui em um valor de (1,0 miliVolts a 2,0 miliVolts para diodos de silício e 2,5 miliVolts para diodos de germânio).

Então, ao passar uma corrente constante através do diodo, a queda de tensão direta agora deve variar apenas de acordo com a temperatura do diodo. Agora só precisamos medir a tensão direta do diodo, aplique algumas equações simples e voilà aqui está seu sensor de temperatura !!!

Suprimentos

1 - 1n4007 diodo # 12 - 1 resistor Kohm # 13 - placa Arduino

Etapa 1: Diagrama de Circuito

Diagrama de circuito
Diagrama de circuito

Como você pode ver no esquema, é muito simples. conectando o diodo em série com um resistor limitador de corrente e uma fonte de tensão estável, podemos obter uma fonte de corrente constante bruta, de modo que a tensão medida através do diodo irá variar apenas devido à mudança de temperatura. Certifique-se de que o valor do resistor não seja muito baixo que muita corrente passa pelo diodo e faz um autoaquecimento perceptível no diodo, também não é um resistor muito alto, então a passagem de corrente não é suficiente para manter uma relação linear entre a tensão direta e a temperatura.

um resistor de 1 quilo Ohm com alimentação de 5 V deve resultar em uma corrente de diodo de 4 miliampere, que é um valor suficiente para este propósito. I (diodo) = VCC / (Rseries + Rdiodo)

Etapa 2: codificação

Precisamos ter em mente que existem alguns valores a serem ajustados no código para obter os melhores resultados, como:

1 - VCC_Voltage: como o valor de analogRead () depende do VCC do chip ATmega, precisamos adicioná-lo à equação após medi-lo na placa arduino.

2 - V_OLD_0_C: a queda de tensão direta do diodo usado na corrente de 4 mA e temperatura de 0 Celsius

3 - Eficiente_temperatura: o gradiente de temperatura do seu diodo (melhor obter na folha de dados) ou você pode medi-lo usando esta equação: Vnew - Vold = K (Tnew - Told)

Onde:

Vnew = queda de tensão recentemente medida após o aquecimento do diodo

Vold = queda de tensão medida em alguma temperatura ambiente

Tnew = a temperatura onde o diodo foi aquecido para

Disse = a temperatura ambiente antiga em que Vold foi medido

K = Temperatura_Coeficiente (um valor negativo variando entre -1,0 a -2,5 miliVolts) Finalmente, agora você pode fazer o upload do código e obter os resultados de temperatura.

# define Sens_Pin A0 // PA0 para placa STM32F103C8

duplo V_OLD_0_C = 690,0; // Tensão direta de 690 mV a 0 Celsius e corrente de teste de 4 mA

duplo V_NEW = 0; // Nova tensão direta em temperatura ambiente com corrente de teste de 4 mA double Temperature = 0.0; // Temperatura calculada da sala double Temperature_Coefficient = -1.6; // alteração de 1,6 mV por grau Celsius (-2,5 para diodos de germânio), melhor obter na ficha de dados do diodo double VCC_Voltage = 5010.0; // Tensão presente no trilho 5V do Arduino em miliVolts (necessária para melhor precisão) (3300.0 para stm32)

void setup () {

// coloque seu código de configuração aqui, para executar uma vez: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

void loop () {

// coloque seu código principal aqui, para executar repetidamente: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // divida por 4,0 se você estiver usando um ADC de 12 bits. Temperature = ((V_NEW - V_OLD_0_C) / Temperature_Coefficient);

Serial.print ("Temp =");

Serial.print (temperatura); Serial.println ("C");

atraso (500);

}

Etapa 3: Obtendo Valores Melhores

Obtendo melhores valores
Obtendo melhores valores
Obtendo melhores valores
Obtendo melhores valores

Acho que é aconselhável ter um dispositivo de medição de temperatura confiável ao seu lado ao fazer este projeto.

você pode ver que há um erro perceptível nas leituras que podem chegar a 3 ou 4 graus Celsius, então de onde vem esse erro?

1 - você pode precisar ajustar as variáveis mencionadas na etapa anterior

2 - a resolução ADC do arduino é menor do que o que precisamos para detectar a pequena diferença de tensão

3 - a referência de tensão do arduino (5V) é muito alta para esta pequena mudança de tensão no diodo

Então, se você vai usar esta configuração como um sensor de temperatura, você deve estar ciente de que embora seja barato e prático, não é preciso, mas pode lhe dar uma boa ideia sobre a temperatura do seu sistema ou está em um PCB ou montado no motor em funcionamento, etc …

Este instrutível destina-se a usar a menor quantidade possível de componentes. Mas, se quiser obter os resultados mais precisos dessa ideia, você pode fazer algumas alterações:

1 - adicione algumas amplificações e estágios de filtragem usando amplificadores operacionais como neste link 2 - use um controlador de referência analógico interno inferior como as placas STM32F103C8 com tensão de referência analógica de 3,3 Volts (consulte o ponto 4) 3 - use a referência analógica de 1,1 V interna no arduino, mas esteja ciente de que você não pode conectar mais de 1,1 Volt a qualquer um dos pinos analógicos do arduino.

você pode adicionar esta linha na função de configuração:

analogReference (INTERNAL);

4 - Use um microcontrolador que tenha ADC de resolução mais alta como STM32F103C8 que tem uma resolução de ADC de 12 bits Então, em poucas palavras, esta configuração baseada em Arduino pode dar uma boa visão geral sobre a temperatura do seu sistema, mas resultados não tão precisos (aproximadamente 4,88 mV / Leitura)

a configuração STM32F103C8 daria a você um resultado bastante preciso, pois tem um ADC de 12 bits superior e um valor de referência analógico de 3,3 V inferior (aproximadamente 0,8 mV / Leitura)

Bem, é isso !!: D

Recomendado: