Índice:

Calibração do sensor DS18B20 com Arduino UNO: 3 etapas (com imagens)
Calibração do sensor DS18B20 com Arduino UNO: 3 etapas (com imagens)

Vídeo: Calibração do sensor DS18B20 com Arduino UNO: 3 etapas (com imagens)

Vídeo: Calibração do sensor DS18B20 com Arduino UNO: 3 etapas (com imagens)
Vídeo: O Arduino funciona como uma balança? Sim! Ele é capaz! - Módulo HX711 2024, Novembro
Anonim
Calibração do sensor DS18B20 com Arduino UNO
Calibração do sensor DS18B20 com Arduino UNO
Calibração do sensor DS18B20 com Arduino UNO
Calibração do sensor DS18B20 com Arduino UNO
Calibração do sensor DS18B20 com Arduino UNO
Calibração do sensor DS18B20 com Arduino UNO

AVISO LEGAL:

O aparelho que você vê nas fotos é usado em outro projeto como Termostato para processo de revelação de filmes. Você pode encontrar esse projeto aqui. Para calibrar um sensor, ou mais de um, você precisará exatamente do que encontrará neste projeto, nada mais, e é muito básico também! Vamos lá!

Etapa 1: Prepare seu dispositivo

Prepare seu dispositivo
Prepare seu dispositivo

Aqui está uma lista do que você precisa:

  1. Arduino UNO (ou MEGA)
  2. Sensor (es) DS18B20
  3. 4kOhm - resistência de 5kOhm (usei um 5k1Ohm)
  4. Tela LCD para ler valores (você também pode usar um laptop e apenas lê-los em um monitor serial)
  5. Um esboço que usa o sensor e mostra de alguma forma os valores

Em primeiro lugar, você deve conectar seus módulos e sensores ao controlador. Vou deixar a parte complicada do LCD para você pesquisar na web, e vou apenas dizer como conectar o sensor.

Normalmente, esses sensores vêm com três fios coloridos: Preto, Vermelho, Amarelo. Os dois primeiros são para energia e o terceiro é para os dados. Conecte o preto ao GNN, o vermelho ao Vcc (5V) e o amarelo na entrada analógica, digamos A0.

Agora conecte a resistência entre o amarelo e o vermelho para completar as conexões.

Conecte também o LCD (sugiro um LCD 16x2 simples com conexão i2c para usar apenas 4 fios no total) e pronto com fios e cabos.

Agora, o esboço que é super simples:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& nossoWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;

void setup () {lcd.init (); lcd.backlight (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Como você pode ver, usamos a biblioteca Dallas Temperature e uma tela LCD com conexão i2c.

Na configuração inicializamos o LCD e o sensor e no loop simplesmente solicitamos a temperatura e armazenamos o valor dentro da variável RawValue para mostrá-la no LCD.

Se você quiser mantê-lo mais simples, basta usar o monitor serial com o seguinte esboço

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& nossoWire1);

float RawValue = 0;

void setup () {

atraso (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }

Agora me acompanhe no núcleo do projeto para calibrar o sensor.

Etapa 2: Calibração de dois pontos

Calibração de dois pontos
Calibração de dois pontos
Calibração de dois pontos
Calibração de dois pontos
Calibração de dois pontos
Calibração de dois pontos

Algo para saber primeiro

Para calibrar um sensor térmico, você tem que medir algo cuja temperatura você conheça. A maneira mais simples de fazer em casa é por meio de água fervente e banho de gelo derretido, também chamado de banho de "ponto triplo". Nesses casos, sabemos que a água ferve a 100 ° C no nível do mar. Lembre-se de que, para fazer uma medição precisa, você deve saber sua altitude e calcular a temperatura de ebulição adequada ali.

Você pode checar aqui!

Para ser honesto, você deve verificar a pressão atmosférica e não a altitude. Mas essa forma é precisa o suficiente.

O banho de ponto triplo, ou banho de gelo, é a temperatura na qual existe água nos três estados sólido, líquido e gasoso, essa temperatura é de 0,01 ° C. Usaremos, para simplificar, 0 ° C.

Sabendo o valor que o sensor leu e o valor que deveria ser, podemos modificar o valor bruto do DS18B20 para algo mais correto.

NOTA: você também pode usar mais temperatura para calibrar o sensor apenas colocando-o em alguma outra substância cujo ponto de ebulição você conheça como éter (35 ° C), pentano (36, 1 ° C), acetona (56 ° C) ou Etanol (78, 37 ° C), mas essas substâncias em ebulição produzem gases altamente inflamáveis! Portanto, não faça isso!

Água fervente:

Coloque um pouco de água em uma panela e aqueça até ferver (bolhas de gás estão se formando e a água está se agitando). Mergulhe seu sensor onde ele não toque em nada além de água. Espere alguns minutos e leia o LCD ou o monitor serial

A temperatura deve permanecer a mesma por pelo menos um minuto. Em caso afirmativo, anote esse valor. Esse é o seu valor: RawHigh.

Banho de ponto triplo:

Agora pegue um copo grande (você não precisa de nada grande nem de uma panela) e encha-o até a borda com cubos de gelo. Tente usar cubos de gelo de tamanho pequeno. Agora preencha 80% do copo com água fria. Reabasteça com gelo se a alavanca tentar descer.

Agora coloque seu sensor dentro da coisa água / gelo e espere um minuto e meio. Leia a temperatura que deve permanecer a mesma por pelo menos 30 segundos. Em caso afirmativo, anote-o como seu valor RawLow.

Etapa 3: Use os valores que você obteve da maneira certa

Então, agora você tem alguns valores importantes:

  • RawHigh
  • RawLow
  • ReferenceHigh
  • ReferenceLow

Os valores de referência são obviamente 99,9 ° C para a água fervente (na minha altitude de 22m) e 0 ° C para o banho de gelo derretido. Agora calcule os intervalos para esses valores:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Agora você está pronto para usar esse sensor em qualquer outro projeto, certificando-se de que ele fornecerá uma medição correta. Como? Usando o valor que você obteve aqui no projeto, você criará com aquele sensor.

Em seu projeto futuro, você terá que usar os valores que leu neste e sugiro fazê-lo usando os mesmos nomes que usei aqui.

Declare as variáveis antes da seção void setup () assim:

flutuante RawHigh = 99,6; flutuante RawLow = 0,5; flutuante ReferenceHigh = 99,9; flutuante ReferenceLow = 0; flutuante RawRange = RawHigh - RawLow; flutuante ReferenceRange = ReferenceHigh - ReferenceLow;

Então, toda vez que você usar o sensor, você pode usar a seguinte fórmula para calcular o CorrectedValue:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue é obviamente a leitura do sensor.

É isso!

Agora você sabe calibrar seu sensor DS18B20 ou qualquer outro sensor que usar! Divirta-se!

Recomendado: