Оглавление:
- Шаг 1. Подготовьте устройство
- Шаг 2: калибровка по двум точкам
- Шаг 3. Используйте полученные ценности правильным образом
Видео: Калибровка датчика DS18B20 с Arduino UNO: 3 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:
Устройство, которое вы видите на фотографиях, используется в другом проекте в качестве термостата для процесса проявления пленки. Вы можете найти этот проект здесь. Чтобы откалибровать датчик или несколько датчиков, вам понадобится только то, что вы найдете в этом проекте, не более того, и это тоже довольно просто! Пойдем!
Шаг 1. Подготовьте устройство
Вот список того, что вам нужно:
- Arduino UNO (или MEGA)
- Датчик (и) DS18B20
- Сопротивление 4кОм - 5кОм (я использовал 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 или любой другой датчик, который вы будете использовать! Повеселись!
Рекомендуемые:
КАЛИБРОВКА ДАТЧИКА PH ARDUINO: 7 шагов
КАЛИБРОВКА ДАТЧИКА PH ARDUINO: в этом руководстве мы будем калибровать датчик pH Atlas Scientific EZO с помощью Arduino Uno. ТЕОРИЯ КАЛИБРОВКИ Самая важная часть калибровки - это наблюдение за показаниями во время процесса калибровки. Калибровать прибор проще всего в
КАЛИБРОВКА ДАТЧИКА ОВП ARDUINO: 3 шага
КАЛИБРОВКА ДАТЧИКА ОВП ARDUINO: в этом руководстве мы будем откалибровать датчик ОВП (окислительно-восстановительный потенциал) Atlas Scientific с помощью Arduino Uno ТЕОРИЯ КАЛИБРОВКИ Самая важная часть калибровки - это наблюдение за показаниями в процессе калибровки. Это просто
КАЛИБРОВКА ДАТЧИКА РАСТВОРЕННОГО КИСЛОРОДА ARDUINO: 4 шага
КАЛИБРОВКА ДАТЧИКА РАСТВОРЕННОГО КИСЛОРОДА ARDUINO: В этом руководстве мы будем калибровать датчик растворенного кислорода (D.O) Atlas Scientific с помощью Arduino Uno. ТЕОРИЯ КАЛИБРОВКИ Самая важная часть калибровки - это наблюдение за показаниями во время процесса калибровки. Калибровать проще всего
КАЛИБРОВКА ДАТЧИКА СОЛИЧНОСТИ ARDUINO: 9 шагов
КАЛИБРОВКА ДАТЧИКА СОЛИЧНОСТИ ARDUINO: в этом руководстве мы будем калибровать датчик солености / проводимости K1.0 Atlas Scientific EZO с помощью Arduino Uno. ТЕОРИЯ КАЛИБРОВКИ Самая важная часть калибровки - это наблюдение за показаниями во время процесса калибровки. Проще всего
Калибровка датчика дождя Arduino: 7 шагов
Калибровка датчика дождя Arduino: Введение: в этом руководстве мы «конструируем» датчик дождя с помощью Arduino и калибруем его, чтобы сообщать о ежедневных и ежечасных осадках. Дождевик, который я использую, представляет собой измененный датчик дождя типа опрокидывающегося ведра. Это произошло из-за травмы личного, мы