BMP085
«Калибровка» термодатчиков
Для основной и дополнительной миссий в нашем спутнике CanSat будет использоваться несколько термодатчиков. А именно:
- DS18b20 — находится внутри спутника, входит в базовый набор и обязательную миссию;
- DS18b20 — будет находится снаружи спутника, входит в дополнительную миссию;
- BMP085 — термодатчик в составе датчика давления, будет находится внутри спутника, входит в дополнительную миссию.
В процессе предварительной работы с датчиками у нас закралось подозрение в точности их настройки, мы решили провести их калибровку.
В качестве идеального термометра мы использовали лабораторный ртутный термометр, с ценой деления 0.2 градуса Цельсия:
Спутник с подключенными термодатчиками, а также ртутный термометр были помещены в «термокамеру», туда же поместили вентилятор для усиления конвекции:
Для понижения температуры в «термокамеру» поместили замороженные овощи. После того как температура опустилась ниже 16-ти градусов по Цельсию, овощи убрали, дождались стабилизации температуры. Затем начали постепенное нагревание с помощью лампы накаливания, яркость которой регулируется реостатом.
Спутник передавал данные по радиоканалу, прием велся на компьютере через терминал. Данные с ртутного термометра снимали вручную. Результаты измерений:
Как видно, разница в измерения небольшая есть, причиной ее может быть как разная инерционность датчиков, так и равномерное нагревание/охлаждение термокамеры. Для целей нашего эксперимента, вводить какие-то дополнительные поправки в измерения не нужно.
Испытания датчиков для CanSat 2016
Наша команда ТОК. Продолжает подготовку к чемпионату CanSat 2016. Мы участвуем в регулярной лиге чемпионата, поэтому обязательно должны использовать конструктор, который предоставляют организаторы.
Поскольку конструктора у нас пока нет, а есть только на половину работающая( об этом дальше) плата с датчиками, было решено для экспериментов использовать имеющийся микроконтроллер Atmega8:
Из датчиков у нас есть
- цифровой термосенсор DS18B20 (интерфейс 1-wire)
- еще один термосенсор DS18B20 в защищенном исполнении для наружного применения
- аналоговый датчик давления MPX5100 (на выходе измеряется напряжение)
- и цифровой датчик давления, со встроенным датчиком температуры BMP085 (интерфейс I2C)
Идея такая: один термосенсор находится внутри корпуса спутника и используется для основной миссии проекта — измерение зависимости температуры от высоты, второй термосенсор находится снаружи спутника и измеряет температуру воздуха там, затем сравниваем результаты. Точность измерения датчиков, заявленная производителем — 0,0625 С. Аналоговый датчик давления находится внутри спутника. Оба датчика (MPX5100 и DS18B20) смонтированы на одной плате.
Для вывода информации использовали небольшой ЖК дисплей (16х2), который тоже подключили к микроконтроллеру.
Вот схема соединения элементов:
Собрано все было на макетке, так что выглядит не очень презентабельно.
Показания датчиков t1 — «внешний термометр», t2 — «внутренний», t3 — встроенный в BMP085 (он меряет температуру с точностью до десятых градуса). Как видно, показания первого и третьего термометра примерно похожи, а вот второй (который с платы) как-то выбивается из общей массы.
Аналогично с аналоговым датчиком давления, как-то его показания не сходятся с цифровым, откалиброванным на заводе. По показаниям датчика BMP085 с помощью барометрической формулы была рассчитана высота «над уровнем моря». Как видно на первом этаже высота примерно 185 метров, на третьем — 192 метра, что и ожидалось увидеть (разница примерно 7 метров).
Все исходные тексты программы и проект в CodeVisionAVR здесь .