В этой статье рассмотрим датчик MS5611 на модуле GY-63 и его подключение к ардуино по I2C протоколу. Датчик сертифицирован для работы в устройствах по определению высоты и имеет заявленную точность 10 см. Такая точность достигается путем заводской калибровки, каждый датчик проверяют на стенде и вычисляют значение компенсации отклонений.
Модуль имеет свой стабилизатор питания и его можно подключить как к 3,3 В, так и к 5 В ардуино. Более подробные характеристики можно посмотреть в datasheet. Подключение по I2C достаточно простое и в таблице ниже представлено для разных плат.
Обратите внимание, что у модуля есть подтяжка шины I2C к питанию и она осуществляется сопротивлением всего лишь 2,2 кОм, при подключении других модулей с собственной подтяжкой можно легко пройти порог минимальной подтяжки.
Загрузим в ардуино сканер I2C шины и определим адрес модуля.
- Для работы модуля необходима библиотека Arduino-MS5611 скачать
Чтобы понять как работает библиотека откроем один из примеров.
В этом примере показана основная работа с датчиком, а именно как снять показания атмосферного давления и температуры, а также высчитать высоту над уровнем моря используя эти данные. Также к этом скетче есть пара моментов на которые нужно обратить внимание:
Настройка точности (чем точнее, тем дольше считывание показаний, от 9 мс до 1мс).
Считывание показаний без компенсации и с компенсацией.
Загружаем скетч из этого примера в ардуино, открываем монитор порта и видим результат:
Если убрать из вывода все лишнее и оставить только два этих значения давления разделенных пробелом, то можно открыть плоттер по последовательному значению и сравнить результат на графике:
При переводе значений давления с компенсацией в мм ртутного столба показания идеально сошлись с данными погодных сайтов.
Для большей наглядности сравним показания высоты для этих двух значений давлений, причем будем рассчитывать ее не относительно давления на уровне моря, а относительно первого показания.
Датчик лежал неподвижно на столе, а скачки оказались намного больше, чем заявленные 10см. Возможно обработав значения фильтром, как мы делали когда собирали высотомер на основе датчика BMP180, можно добиться более точных результатов, но это уже тема отдельной статьи.
Если статья была вам полезна ставьте лайк, подписывайтесь на мой канал, ведь впереди еще много интересного!
#diy #arduino #ардуино #сделай сам #своими руками #электроника #электроника для начинающих #технологии #микроконтроллеры #программирование