Датчик атмосферного давления и температуры BMP-180 • Все своими руками






Датчик атмосферного давления и температуры BMP-180

Датчик атмосферного давления, температуры, высоты над уровнем моря

Датчик BMP 180

     Здравствуйте. Год назад приобрел на ебэй датчики BMP 180, способные измерять и выводить данные о температуре, атмосферном давлении и о высоте расположения объекта с датчиком над уровнем моря. Год назад они стоили порядка 65 рублей, сейчас 06.09.2015г стоят в соответствии с данными на скриншоте 1.


Датчик BMP 180,screenshot-1

     Сперва купил два, но один, почему-то скоропостижно откинул клеммы, боясь потерять и второй, купил еще три. Пока все работают нормально.
     Датчики разработаны специалистами фирмы Bosh. Напряжение питания датчиков находится в пределах 3,3… 3,5 вольт. Вообще, исходя из пределов напряжения питания, для согласования данных датчиков с микроконтроллерами, напряжение питания которых равно пяти вольтам, необходимы специальные схемы согласования, так называемые преобразователи уровня.

Аналоги BMP 085, датчик BMP 180,dathik

     Но это намного усложняет схему всего устройства, поэтому пришлось подвергнуть этих малюток жестким испытаниям применительно к повышенному напряжению питания. Схема включения датчиков согласно документации показана на рисунке 1.

Схема включения датчика BMP 180, shema-dathica

     В принципе, было испытано несколько вариантов питания датчиков, и для их реализации я исходил из следующего: Напряжение переключения триггеров Шмитта, стоящих на входе микроконтроллера равно примерно половине напряжения питания, т.е. 2,5 вольта. А напряжение логической единицы на выходе датчика, при его напряжении питания 3,3 вольта, в любом случае будет больше 2,5 В. Этот вариант был опробован, все прекрасно работало. Следующей идеей, пришедшей в голову, бала идея попробовать питать датчик напряжением логической единицы с одного из выводов микроконтроллера, сконфигурированного на выход, через резистор 100 Ом и фильтрующим конденсатором на 0,01.

Все датчики работали нормально, хотя напряжение питания через резистор было близко к пяти вольтам. И наконец, я просто подключил их к питанию микроконтроллера. Кстати один из датчиков сдох до моих экспериментов. По всей вероятности его смерть была спровоцирована моей пайкой контактной гребенки с последующей мойкой. Вообще подробную информацию о датчиках можно без проблем скачать из Сети, что я и советую, правда, все самое интересное там изложено на английском языке. Общение датчика с друзьями по схеме осуществляется по I2C протоколу. Информация о контролируемых параметрах датчик выдает в виде чисел, значение которых для нормального человека, как сейчас выражается молодежь: «Ни о чем». Для преобразования этой информации в привычные для нас величины в каждом датчике, в его флешь памяти, записаны конкретные именно для его одиннадцать поправочных коэффициентов и куча математических формул, вычислять которые должен микроконтроллер. Но для начала эти числовые значения (находятся в двух регистрах по восемь бит) коэффициентов надо считать из памяти датчика.

Таблица адресов поправочных коэффициентов датчика BMP 180,

Таблица адресов поправочных коэффициентов датчика BMP 180,

     Каждому регистру значения присвоен адрес в памяти датчика. Адреса расположения коэффициентов показаны в таблице 4 в соответствии с документацией. В крайнем левом столбце находятся названия коэффициентов, в среднем — адреса старших регистров коэффициентов. В правом – адреса младших регистров. Алгоритм программы общения с датчиком и все необходимые формулы для расчета величин контролируемых параметров вы также найдете в документации. Нет необходимости дублировать информацию. В данной статье я хотел бы привести для начинающих пример программы считывания корректирующих коэффициентов. В программе используется косвенная адресация при обращении к используемым регистрам, так что не забывайте об этом и скорректируйте программу, если адреса для ваших регистров будут изменены. Программа написана применительно к микроконтроллеру PIC16F628A. Файл «Barometr+T.asm» не является проектом среды разработки MPLAB IDE. Это просто часть рабочей программы для домашнего барометра-термометра, о котором расскажу попозже. Помимо программы считывания коэффициентов в файле находятся макросы и элементы программы реализации протокола I2C.

Программа считывания коэффициентов датчика BMP180,program

Для упрощения чтения и понимания программы, выполнение инструкций программы сопровождается соответствующими комментариями.

Скачать проект


Просмотров:4 536
6 комментариев




6 комментариев к “Датчик атмосферного давления и температуры BMP-180”

  • Тимофей
    2 октября, 2015, 23:31

    Здравствуйте! Меня заинтересовала Ваша разработка, в частности измерение высоты над уровнем моря. Хотел поинтересоваться переводили ли Вы это всё выше написанное в полноценную схему с готовой прошивкой? Спасибо.

  • admin
    4 октября, 2015, 13:26

    Расчет высоты над уровнем моря не производил. Не хватает объема памяти программ 628-го. Нужен 873 пик. У меня его нет.

  • Тимофей
    4 октября, 2015, 21:55

    Здравствуйте. Это не в качестве рекламы, но я постоянно приобретаю все необходимые радиокомпоненты здесь: 

    «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» 

    Пока нареканий не было, всё что заказывал всё рабочее приходило. Ждать правда долговато.

  • admin
    4 октября, 2015, 22:38

    Да, мне тоже нравится этот магазин, иногда пользуюсь им.

  • Владимир
    21 июня, 2016, 4:51

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

  • admin
    21 июня, 2016, 9:59

    Возможно, я для дома изначально его замышлял. Не ошибается тот, кто ни чего не делает.

Оставить комментарий