Датчик атмосферного давления и температуры BMP-180
Датчик атмосферного давления, температуры, высоты над уровнем моря
Датчик BMP 180
Здравствуйте. Год назад приобрел на ебэй датчики BMP 180, способные измерять и выводить данные о температуре, атмосферном давлении и о высоте расположения объекта с датчиком над уровнем моря. Год назад они стоили порядка 65 рублей, сейчас 06.09.2015г стоят в соответствии с данными на скриншоте 1.
Сперва купил два, но один, почему-то скоропостижно откинул клеммы, боясь потерять и второй, купил еще три. Пока все работают нормально.
Датчики разработаны специалистами фирмы Bosh. Напряжение питания датчиков находится в пределах 3,3… 3,5 вольт. Вообще, исходя из пределов напряжения питания, для согласования данных датчиков с микроконтроллерами, напряжение питания которых равно пяти вольтам, необходимы специальные схемы согласования, так называемые преобразователи уровня.
Но это намного усложняет схему всего устройства, поэтому пришлось подвергнуть этих малюток жестким испытаниям применительно к повышенному напряжению питания. Схема включения датчиков согласно документации показана на рисунке 1.
В принципе, было испытано несколько вариантов питания датчиков, и для их реализации я исходил из следующего: Напряжение переключения триггеров Шмитта, стоящих на входе микроконтроллера равно примерно половине напряжения питания, т.е. 2,5 вольта. А напряжение логической единицы на выходе датчика, при его напряжении питания 3,3 вольта, в любом случае будет больше 2,5 В. Этот вариант был опробован, все прекрасно работало. Следующей идеей, пришедшей в голову, бала идея попробовать питать датчик напряжением логической единицы с одного из выводов микроконтроллера, сконфигурированного на выход, через резистор 100 Ом и фильтрующим конденсатором на 0,01.
Все датчики работали нормально, хотя напряжение питания через резистор было близко к пяти вольтам. И наконец, я просто подключил их к питанию микроконтроллера. Кстати один из датчиков сдох до моих экспериментов. По всей вероятности его смерть была спровоцирована моей пайкой контактной гребенки с последующей мойкой. Вообще подробную информацию о датчиках можно без проблем скачать из Сети, что я и советую, правда, все самое интересное там изложено на английском языке. Общение датчика с друзьями по схеме осуществляется по I2C протоколу. Информация о контролируемых параметрах датчик выдает в виде чисел, значение которых для нормального человека, как сейчас выражается молодежь: «Ни о чем». Для преобразования этой информации в привычные для нас величины в каждом датчике, в его флешь памяти, записаны конкретные именно для его одиннадцать поправочных коэффициентов и куча математических формул, вычислять которые должен микроконтроллер. Но для начала эти числовые значения (находятся в двух регистрах по восемь бит) коэффициентов надо считать из памяти датчика.
Каждому регистру значения присвоен адрес в памяти датчика. Адреса расположения коэффициентов показаны в таблице 4 в соответствии с документацией. В крайнем левом столбце находятся названия коэффициентов, в среднем — адреса старших регистров коэффициентов. В правом – адреса младших регистров. Алгоритм программы общения с датчиком и все необходимые формулы для расчета величин контролируемых параметров вы также найдете в документации. Нет необходимости дублировать информацию. В данной статье я хотел бы привести для начинающих пример программы считывания корректирующих коэффициентов. В программе используется косвенная адресация при обращении к используемым регистрам, так что не забывайте об этом и скорректируйте программу, если адреса для ваших регистров будут изменены. Программа написана применительно к микроконтроллеру PIC16F628A. Файл «Barometr+T.asm» не является проектом среды разработки MPLAB IDE. Это просто часть рабочей программы для домашнего барометра-термометра, о котором расскажу попозже. Помимо программы считывания коэффициентов в файле находятся макросы и элементы программы реализации протокола I2C.
Для упрощения чтения и понимания программы, выполнение инструкций программы сопровождается соответствующими комментариями.
6 комментариев к “Датчик атмосферного давления и температуры BMP-180”
Здравствуйте! Меня заинтересовала Ваша разработка, в частности измерение высоты над уровнем моря. Хотел поинтересоваться переводили ли Вы это всё выше написанное в полноценную схему с готовой прошивкой? Спасибо.
Расчет высоты над уровнем моря не производил. Не хватает объема памяти программ 628-го. Нужен 873 пик. У меня его нет.
Здравствуйте. Это не в качестве рекламы, но я постоянно приобретаю все необходимые радиокомпоненты здесь:
«http://ru.aliexpress.com/item/New-PIC16F873A-I-SO-PIC16F873-8-bit-PIC-controller/32452891684.html»
«http://ru.aliexpress.com/item/5pcs-lot-PIC16F873-04-SP-PIC16F873-04I-SP-PIC16F873-DIP/32400307096.html?spm=2114.031020208.3.29.ff5Izv&ws_ab_test=201556_10,201527_2_71_72_73_74_61_75,0_0»
Пока нареканий не было, всё что заказывал всё рабочее приходило. Ждать правда долговато.
Да, мне тоже нравится этот магазин, иногда пользуюсь им.
Дал другу посмотреть программу, ошибки в расчетах... врать будет. несколько ошибок уже нашел, например, при отрицательных температурах корректирует давление исходя из модуля температуры, т.е. считает температуру положительной...
Возможно, я для дома изначально его замышлял. Не ошибается тот, кто ни чего не делает.