Оглавление:

Калибровка датчика DS18B20 с Arduino UNO: 3 шага (с изображениями)
Калибровка датчика DS18B20 с Arduino UNO: 3 шага (с изображениями)

Видео: Калибровка датчика DS18B20 с Arduino UNO: 3 шага (с изображениями)

Видео: Калибровка датчика DS18B20 с Arduino UNO: 3 шага (с изображениями)
Видео: Датчик температуры DS18B20. Распиновка, тестирование, подключение к Ардуино 2024, Ноябрь
Anonim
Калибровка датчика DS18B20 с помощью Arduino UNO
Калибровка датчика DS18B20 с помощью Arduino UNO
Калибровка датчика DS18B20 с помощью Arduino UNO
Калибровка датчика DS18B20 с помощью Arduino UNO
Калибровка датчика DS18B20 с помощью Arduino UNO
Калибровка датчика DS18B20 с помощью Arduino UNO

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:

Устройство, которое вы видите на фотографиях, используется в другом проекте в качестве термостата для процесса проявления пленки. Вы можете найти этот проект здесь. Чтобы откалибровать датчик или несколько датчиков, вам понадобится только то, что вы найдете в этом проекте, не более того, и это тоже довольно просто! Пойдем!

Шаг 1. Подготовьте устройство

Подготовьте свое устройство
Подготовьте свое устройство

Вот список того, что вам нужно:

  1. Arduino UNO (или MEGA)
  2. Датчик (и) DS18B20
  3. Сопротивление 4кОм - 5кОм (я использовал 5кОм)
  4. ЖК-экран для чтения значений (вы также можете использовать ноутбук и просто читать их на последовательном мониторе)
  5. Скетч, который использует датчик и каким-то образом показывает значения

Прежде всего, вы должны подключить ваши модули и датчик к вашему контроллеру. Я оставлю вам сложную часть ЖК-дисплея для поиска в Интернете, а я просто расскажу, как подключить датчик.

Обычно эти датчики идут с трехцветными проводами: черным, красным и желтым. Первые два предназначены для энергии, а третий - для данных. Подключите черный к GNN, красный к Vcc (5 В) и желтый к аналоговому входу, скажем, A0.

Теперь подключите сопротивление между желтым и красным, чтобы завершить соединения.

Подключите также ЖК-дисплей (я предлагаю простой ЖК-дисплей 16x2 с подключением i2c, чтобы использовать всего 4 провода), и все готово с проводами и кабелями.

Теперь очень простой набросок:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Датчик температуры Даллас1 (& ourWire1); #include "LiquidCrystal_I2C.h"

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

пустая настройка () {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); }

Как видите, мы используем библиотеку Dallas Temperature и ЖК-экран с подключением i2c.

В настройке мы инициируем ЖК-дисплей и датчик, а в цикле просто запрашиваем температуру и сохраняем значение внутри переменной RawValue, чтобы отобразить его на ЖК-дисплее.

Если вы хотите, чтобы это было проще, просто используйте серийный монитор со следующим эскизом

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Датчик температуры Даллас1 (& ourWire1);

float RawValue = 0;

void setup () {

задержка (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); }

А теперь следуйте за мной по сути проекта по калибровке сенсора.

Шаг 2: калибровка по двум точкам

Двухточечная калибровка
Двухточечная калибровка
Двухточечная калибровка
Двухточечная калибровка
Двухточечная калибровка
Двухточечная калибровка

Что нужно знать в первую очередь

Чтобы откалибровать термодатчик, вы должны измерить то, температуру которого вы знаете. Самый простой способ сделать это дома - использовать кипящую воду и ванну с тающим льдом, также называемую ванной «тройной точки». В таких случаях мы знаем, что вода кипит при температуре 100 ° C на уровне моря. Имейте в виду, что для точного измерения вы должны знать свою высоту и рассчитать на ней правильную температуру кипения.

Вы можете проверить это здесь!

Если честно, вам следует проверять атмосферное давление, а не высоту. Но этот способ достаточно точен.

Ванна тройной точки или ледяная баня - это температура, при которой вода находится в трех состояниях: твердом, жидком и газообразном, эта температура составляет 0,01 ° C. Мы будем использовать для упрощения 0 ° C.

Зная значение, которое считывает датчик, и значение, которое должно быть, мы можем изменить исходное значение DS18B20 на что-то более правильное.

ПРИМЕЧАНИЕ: вы также можете использовать более высокую температуру для калибровки датчика, просто поместив его в какое-либо другое вещество, точка кипения которого вам известна, например, эфир (35 ° C), пентан (36, 1 ° C), ацетон (56 ° C) или Этанол (78, 37 ° C), но эти кипящие вещества выделяют легковоспламеняющиеся газы! Так что не делайте этого!

Кипящая вода:

Налейте немного воды в кастрюлю и нагрейте до кипения (появляются пузырьки газа, и вода взбалтывается). Погрузите датчик туда, где он не касается ничего, кроме воды. Подождите пару минут и прочитайте ЖК-дисплей или серийный монитор

Температура должна оставаться неизменной не менее одной минуты. Если да, запишите это значение. Это ваша: RawHigh ценность.

Трехточечная ванна:

Теперь возьмите большой стакан (не нужно ничего огромного, ни горшок) и наполните его до края кубиками льда. Попробуйте использовать кубики льда небольшого размера. Теперь залейте 80% стакана холодной водой. Если рычаг пытается опуститься, залейте лед.

Теперь поместите датчик в емкость с водой / льдом и подождите полторы минуты. Считайте температуру, которая должна оставаться неизменной не менее 30 секунд. Если да, запишите, что это ваше значение RawLow.

Шаг 3. Используйте полученные ценности правильным образом

Итак, теперь у вас есть несколько важных ценностей:

  • RawHigh
  • RawLow
  • Ссылка Высокий
  • Ссылка Низкая

Контрольное значение, очевидно, составляет 99,9 ° C для кипящей воды (на моей высоте 22 м) и 0 ° C для ванны с тающим льдом. Теперь вычислите диапазоны этих значений:

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

Теперь вы готовы использовать этот датчик в любом другом проекте, будучи уверенными, что он даст вам правильные измерения. Как? Используя значение, которое вы получили здесь, в проекте, который вы создадите с помощью этого датчика.

В своем будущем проекте вам придется использовать значения, которые вы прочитали в этом, и я предлагаю сделать это, используя те же имена, которые я использовал здесь.

Объявите переменные перед разделом void setup () следующим образом:

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

Затем каждый раз, когда вы будете использовать датчик, вы можете использовать следующую формулу для вычисления CorrectedValue:

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

RawValue, очевидно, является показанием датчика.

Вот и все!

Теперь вы знаете, как откалибровать датчик DS18B20 или любой другой датчик, который вы будете использовать! Повеселись!

Рекомендуемые: