Подключаем датчики давления, движения и температуры к ардуино

Подключение BMP180 датчик давления и температуры к Arduino

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

Характеристики :

  • Диапазон измерения давления: 300 – 1100 hPa.
  • Напряжение питания: от 1.8 — 3.3 и 5V(если на плате стоит стабилизатор напряжения).
  • Низкое энергопотребление: 3 мкА (режим ультра-низкого энергопотребления)
  • Точность: режим пониженного энергопотребления, разрешение 0.06hPa (0,5 м).
  • Высокий линейный режим с разрешением 0.02hPa (0,17 м).
  • Подключение: интерфейс I2C.
  • Возможность измерения температуры в диапазоне  -40 … +85 ° C.
  • Время отклика: 5ms — 7.5ms (standart mode).
  • Ток в режиме ожидания: 0,1 мкA

Более подробно модно прочитать в Datasheet.

Принцип действия датчика BMP180:

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

Так же имеется термодатчик, сопротивление которого меняется пропорционально температуре. АЦП (аналого-цифровой преобразователь) переводит результаты изменений датчиков в цифровые данные «некомпенсированные результаты», которые доступны для чтения из регистров датчика: «Out MSB», «Out LSB» и «Out xLSB».

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

) каждый датчик калибруется на заводе, и в EEPROM записываются индивидуальные для каждого датчика 11 калибровочных коэффициентов
(176 бит), которые доступны для чтения из регистров датчика: «AC1», «AC2», «AC3», «AC4», «AC5», «AC6», «B1», «B2», «MB», «MC», «MD».

Не допускайте попадания на датчик влаги и прямых солнечных лучей.

Алгоритм получения данных:

  • Чтение калибровочных коэффициентов:

Чтение значений из одноименных регистров:
short                      AC1, AC2, AC3, B1, B2, MB, MC, MD;
unsigned short    AC4, AC5, AC6;

  • Чтение температуры: (некомпенсированное значение)

Записываем в регистр «Measurement Control» значение: 0x2E; Ожидаем спад флага состояния «CSO» в «0»;

Читаем результат из регистров «Out MSB» и «Out LSB»;

Источник: https://xn--90aeniddllys.xn--p1ai/podklyuchenie-bmp180-datchik-davleniya-i-temperatury-k-arduino/

Датчики давления Arduino bmp280, bmp180, bme280

Датчики атмосферного давления bmp180, bmp280, bme280 — частые гости в инженерных проектах. С их помощью можно предсказать погоду или измерить высоту над уровнем моря.

Сегодня именно эту линейку можно назвать самыми популярными и недорогими сенсорами для ардуино.

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

Принцип действия барометра на BMP280, BMP180, BME280

Барометр – устройство, измеряющее атмосферное давление. Электронные барометры используются в робототехнике и различных электронных устройствах. Наиболее распространенными и доступными являются датчики давления от фирмы BOSH: это BMP085, BMP180, BMP280 и другие. Первые два очень похожи между собой, BMP280 – это более новый и усовершенствованный датчик.

Датчики давления работают на преобразовании давления в движение механической части. Состоит датчик давления из преобразователя с чувствительным элементом, корпуса, механических элементов (мембран, пружин) и электронной схемы.

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

  • Габариты 2 х 2,5 х 0,95 мм.
  • Давление 300-1100гПа;
  • Температуры от 0С до 65 С;
  • Поддержка интерфейсов I2C и SPI;
  • Напряжение питания 1,7В – 3,6В;
  • Средний ток 2,7мкА;
  • 3 режима работы – режим сна, режим FORCED (проведение измерения, считывание значения, переход в спящий режим), режим NORMAL (перевод датчика в циклическую работу – то есть устройство самостоятельно через установленное время выходит из режима сна, проводит измерения, считывает показания, сохраняет измеренные значения и переходит снова в режим сна).

Датчик BMP180 – это дешевый и простой в применении сенсорный датчик, который измеряет атмосферное давление и температуру. Используется обычно для определения высоты и в метеостанциях. Состоит устройство из пьезо-резистивного датчика, термодатчика, АЦП, энергонезависимой памяти, ОЗУ и микроконтроллера.

Технические характеристики датчика BMP180:

  • Пределы измеряемого давления 225-825 мм рт. ст.
  • Напряжение питания 3,3 – 5В;
  • Ток 0,5мА;
  • Поддержка интерфейса I2C;
  • Время срабатывания 4,5мс;
  • Размеры 15 х 14 мм.

Датчик bme280 содержит в себе 3 устройства – для измерения давления, влажности и температуры. Разрабатывался для малого потребления тока, высокой надежности и долгосрочной стабильной работы.

Технические характеристики датчика bme280:

  • Размеры 2,5 х 2,5 х 0,93 мм;
  • Металлический LGA-корпус, оснащенный 8-ю выходами;
  • Напряжение питания 1,7 – 3,6В;
  • Наличие интерфейсов I2C и SPI;
  • Потребляемый ток в режиме ожидания 0,1 мкА.

Если сравнивать все устройства между собой, то датчики очень похожи. По сравнению со своим предшественником, к которым относится BMP180, более новый датчик BMP280 заметно меньше по размерам.

Его восьмиконтактный миниатюрный корпус требует аккуратности во время монтажа. Также устройство поддерживает интерфейсы I2C и SPI, в отличие от предшественников, которые поддерживали только I2C.

По логике работы датчика изменений практически нет, была только усовершенствована температурная стабильность и увеличено разрешение АЦП.  Датчик BME280, измеряющий температуру, влажность и давление, также похож на BMP280.

Отличие между ними заключается в размерах корпуса, так как BME280 имеет датчик влажности, который немного увеличивает габариты. Количество контактов и их расположение на корпусе совпадают.

Варианты подключения к Arduino

Подключение датчика BMP180 к Ардуино. Для подключения понадобятся сам датчик BMP180, плата Ардуино UNO, соединительные провода. Схема подключения показана на рисунке ниже.

Землю с Ардуино нужно соединить с землей на датчике, напряжение – на 3,3 В, SDA – к пину А4, SCL – к А5. Контакты А4 и А5 выбираются с учетом их поддержки интерфейса I2C.  Сам датчик работает от напряжения 3,3 В, а Ардуино – от 5 В, поэтому на модуле с датчиком установлен стабилизатор напряжения.

Подключение BMP 280 к Ардуино. Распиновка и вид сверху платы изображены на рисунке.

Сам модуль датчика давления выглядит следующим образом:

Для соединения с Ардуино нужно подключить выходы следующим образом: соединить землю с Ардуино и на датчике, VCC – на 3,3В, SCL / SCK – к аналоговому контакту А5, SDA / SDI – к А4.

Подключение датчика BME280. Расположение контактов и распиновка у датчика BME280 такая же, как у BMP280.

Так как датчик может работать по I2C и SPI, подключение можно реализовать двумя методами.

При подключении по I2C нужно соединить контакты SDA и SCL.

При подключении по SPI нужно соединить SCL с модуля и SCK (13й контакт на Ардуино), SDO с модуля к 12 выводу Ардуино, SDA – к 11 контакту, CSB (CS) – к любому цифровому пину, в данном случае к 10 контакту на Ардуино. В обоих случаях напряжение подключается к 3,3В на Ардуино.

Описание библиотеки для работы с датчиком. Пример скетча

Для работы с датчиком BMP180 существуют различные библиотеки, упрощающие работу. К ним относятся SFE_BMP180, Adafruit_BMP085. Эти же библиотеки подходят для работы с датчиком BMP080.  Для датчика bmp280 используется похожая библиотека Adafruit_BMP280.

Первый пробный скетч будет заставлять датчик считывать показания давления и температуры.

Код подойдет как для датчика BMP180 , так и для BMP280, нужно только подключить правильную библиотеку и указать верные контакты, к которым подключен модуль.

В первую очередь в коде нужно подключить все библиотеки и инициализировать работу датчика. Для определения давления нужно сначала узнать температуру. Для этого используется следующий элемент кода.

status = pressure.startTemperature();// Считываются данные с датчика о температуре if(status!=0){ delay(status); // Ожидание status = pressure.getTemperature(T); // Сохранение полученных данных о температуре if(status!=0){ Serial.print(«Temperature: «); // Выведение на экран слова «Температура» Serial.print(T,2); // Вывод на экран значения температуры. Serial.println(«deg C, «); //Печать символа градуса Цельсия.

Затем нужно получить информацию об атмосферном давлении.

status = pressure.startPressure(3); // происходит считывание давления if(status!=0){ delay(status); // Ожидание status = pressure.getPressure(P,T); // получение давления, сохранение if(status!=0){ Serial.print(«Absolute pressure: «); // Вывод на экран слов «Атмосферное давление» Serial.print(P,2); // Вывод на экран значения переменной mBar Serial.print(» mbar, «); // Вывод на экран текста «mBar» Serial.print(P*0.7500637554192,2); // вывод на экран значения в mmHg (мм.рт.ст.) Serial.println(» mmHg»);} // вывод на экран единицы измерения давления «mmHg» (мм. Рт.ст.).

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

Датчик BME280 также показывает давление и температуру, дополнительно он может считывать показания о влажности, который по умолчанию выключен. При необходимости можно произвести настройки датчика и начать считывать показания о влажности. Диапазон измерения от 0 до 100%. Библиотека, которая нужна для работы с датчиком, называется Adafruit_BME280.

Код похож на тот, что описан выше, только к нему еще добавляются строки для определения влажности.

void printValues() { Serial.print(«Temperature = «); Serial.print(bme.readTemperature()); Serial.println(» C»); //определение температуры, вывод ее на экран в градусах Цельсия. Serial.print(«Pressure = «); Serial.print(bme.readPressure() / 100.0F); Serial.println(» hPa»); //определение давления, вывод его на экран Serial.print(«Humidity = «); Serial.print(bme.readHumidity()); Serial.println(» %»); //определение влажности в процентах, вывод измеренного значения на экран. Serial.println(); }

Возможные ошибки при подключении и устранение их

Наиболее часто встречающаяся ошибка – неправильные данные о давлении и температуре, которые отличаются на несколько порядков от реального значения. Причиной этого чаще всего становится неправильное подключение – например, в библиотеке указано, что нужно подключать по I2C, а датчик подключен по SPI.

Также при использовании «китайских» датчиков можно столкнуться с нестандартными I2C или SPI адресами. В этом случае рекомендуется просканировать все присоединенные устройства с помощью одного из популярных скетчей и выяснить, по какому адресу откликается ваш датчик давления.

Еще одной проблемой может стать несоответствие рабочего напряжения питания модуля базовому напряжению используемого контроллера. Так, для работы с датчиком на 3,3 В вам потребуется создать делитель напряжения или использовать один из существующих готовых модулей согласования уровней. Кстати, такие модули достаточно дешевы и начинающим рекомендуется использовать их.

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

Заключение

Датчики атмосферного давления bmp180, bmp280- не самые дешевые виды сенсоров, но во многих случаев альтернативы таким сенсорам практически нет.

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

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

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

Источник: https://ArduinoMaster.ru/datchiki-arduino/datchiki-atmosfernogo-davleniya-bmp280-bmp180-bme280/

Датчик давления топлива на Arduino — бортжурнал Mitsubishi Legnum VR-4 Swap Time 1997 года на DRIVE2

Давно ничего не писал. Всё потому, что за зиму не происходило ничего значительного. Легнум исправно бегает, гараж пустует, на покатушки ни разу не выбрался. За отсутствием каких-либо серьёзных доработок решил заняться «тюнингом» в несколько новом направлении.

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

Читайте также:  Лазерный гравер на arduino: делаем своими руками

Для полноты картины нужны: давление топлива, давление и температура масла, A/FR, буст, EGT. Буст у меня показывает турботаймер, решил начать с самого простого — давления топлива. В качестве датчика давления берём датчик давления масла от ВАЗ-2106, его маркировка ММ393А.

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

Я никому не советую резать шланг, лучше рассмотреть вариант с изготовлением штуцера, прикручивающегося к рейке, или вварить его в неё. Просто в связи со свапом у меня шланг был уже порезан и соединён трубкой на силовых хомутах.
Собирается всё на фум-ленту. Крепится датчик к одному из болтов корпуса воздушного фильтра на самопальный кронштейн. Провод от датчика тянем в салон.

Роль «юнита» для датчика будет выполнять Arduino UNO R3. Впоследствии, когда количество датчиков будет увеличиваться, Уно придётся заменить на что-то посерьёзнее вроде Меги, так как тут всего 6 аналоговых входов, два из которых заняты жк-экраном LCD2004, подключённым через I2C адаптер.

Теперь задача состоит в том, чтобы подать на один из входов сигнал с датчика, но там допустимо напряжение до 5В. Можно было бы обойтись простым делителем, но, так как напряжение бортсети плавает, показания бы тоже плавали. Поэтому используем следующую схему на операционном усилителе.

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

Для простоты берём её как две линейные функции. Калибруем прибор с помощью подстроечного резистора. Выводим всё на экран.

На этом этапе речь об установке в машину не идёт, всё собрано на бредборде. У девайса есть модуль часов, он может передавать измерения по bluetooth, писать лог на micro sd флешку. С увеличением количества данных экран будет заменён на какой-нибудь компактный TFT.
Что касается результатов измерений, то нахожусь в некоем замешательстве.

Вроде как давление топлива должно быть равно 3 бара+относительное давление в коллекторе. На бусте прибор показывает всё как и надо, но на холостых у меня всегда 3 бара, вместо положенных 2,3. С разрежением всё в порядке, резистор и реле бензонасоса исправны, на насос приходит порядка 9 вольт.

Возможно, я чего-то недопонимаю? Какой алгоритм работы у топливного соленоида?

Источник: https://www.drive2.ru/l/467896624518005004/

Замена механического реле давления на цифровое (обладателям скважин)

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

Прошу под кат, там интересней 😉 Я как бы разобрался и у меня даже получилось отрегулировать, но на это я затратил время и нервы. Тогда то я и понял, что цифровое реле было бы здорово, просто нажал на кнопки и выставил нужное. Конечно меня могут многие осудить по нескольким статьям: — ты дурак, что не можешь разобраться с простейшим реле давления и двумя пружинками.

— механика рулит, она будет работать вечно.

— зачем там что то регулировать: один раз выставил сантехник за XX*(курс страны) рублей и все Без проблем, можно список продолжать долго, но по натуре своей инженерской, хотелось бы развиваться и улучшать все вокруг себя, а не крутить пружинки и думать, когда там подгорят контакты механического реле и начнет срабатывать тепловое реле защиты насоса, когда вы весь в мыле :D, а ещё лучше Ваша жена 🙂 Надо отдать должное, механическое реле у меня работает уже 4-ый год и с ним (тьфу тьфу тьфу) Серьёзного пока ничего не случалось, только приходилось перестраивать, очищать контакты, начало искрить и эти “ЩЕЛК!” в гараже немного напрягали и… пугали моего мышонка, так, что ему пришлось убежать. Так как я увлекаюсь автоматизацией и прошел путь от 1-wire до arduino через esp, могу и делаю разные поделки в доме, точнее устройства, для облегчения быта. Круг друзей знает о списке проектов, которые я стараюсь завершить и реализовать, но времени на то совсем нет. То стройка баня подвернется на целое лето (750 часов), то снег навалит :), а тут уже и Новый Год на носу!Меня так же многие “любят” потролить, особенно из ИТ сферы. Но это только веселит, жизнь штука интересная и без этого никак. Так же огромное спасибо всем тем, кто меня поддерживает — без Ваших добрых слов, драйв был бы не тот. Спасибо жене за понимание любви к моим платам ) Из лирики, прыгаем в реальность. Я обратился в поиски цифрового реле и понял, что весьма сложно в этом направлении, либо забугорное под 100$ и совсем не так, как хотелось бы… либо механика за 15$. Привожу в $, так как давно известно, если бы мы перешли на $ — то даже бабушки не парились, как с монетами. А я ж такой негодяй — дом подключил к интернету, а реле давления нет — сумасшедший! Тема для тролей: Я начал работать с Arduino китайского происхождения, не оригинальные, а китайские, работают так же, где то есть мелкие погрешности, но они меня не задевают так, чтобы извергать лаву негатива и трясти esp8266, которая от статики умирает быстрее, чем вы воткнете её в Ваш компьютер, да ещё с питанием 3.3, которое надо пойти и найти), если это только не NodeMCU, которые я обожаю. Я люблю и esp8266 и Arduino и людей, но чтобы вот так сесть быстро собрать рабочее и СТАБИЛЬНОЕ устройство для автоматизации — arduino незаменимая штука + Wiring C-шный язык очень помогает быстро реализовать то, что требуется. (тут никто и не упрекнет, что ты написал на тормозном Lua скриптовом языке). esp8266 (моё мнение) — хороша там, где не надо АЦП мерять и интернет нужен. Хотя её “сгораниесырость” очень разочаровывает. Возвращаемся к нашим баранам, то-есть реле 🙂 По итогу нашел в Китае датчик за 5$, с АЦП 0-5V и решил попробовать. Даже не так, я тупо загорелся его применить и собрать устройство. Сразу пошли бурные эротические фантазии, как будут мигать светодиодики ) и нажиматься кнопки для регулировки, а на китайском иконическом синем экране будут гореть заветные циферки и все это будет работать с реальным давлением в нашей гребенке. Обдумал, обрисовал, начертил, спланировал, заказал и начал код писать, пока эротика не прошла с мыслей. Когда прилетел датчик, я понял — что датчик очень качественно выполнен.Далее, я понял что он начинает показывать данные не с нуля, а с 0.5В и до 4.5В. от 0 до 12Bar. Я очень обрадовался, так как мне было приятно осознавать сингулярность данного девайса, можно отслеживать, когда датчик умрет и не будет показывать заветные 0.5 на выходе. Врезка датчика в текущую систему с оставлением механики “на всякий случай”.Одно печально, не было никаких данных по датчику, как обсчитывать его показания, но так как была линейная прямая на графике, пришлось (стыдно, но я признаюсь) — открывать учебник АЛГЕБРА и учиться заново, вспоминать, как же там строят прямую линейную зависимость в уравнении 🙂 по двум точкам и о чуда, я быстренько получил (можете постыдить меня) заветную простую формулу, в которой после преобразования АЦП сигнала в ВОЛЬТЫ, я понимал, сколько у меня давление в Bar. Так как датчик сам выдавал от 0 до 1.2Mpa — то не сложно перевести в Bar — зная что: 1 Pa = 1.0E-5 bar тоесть 1200000Pa = 12Bar Так как у нас давление от насоса не превышает и 4Bar — этого датчика хватит за глаза! Дальше я взял Arduino Uno — она у меня лишняя валялась, я обычно её использую для быстрого навесного проектирования, проверки, а потом применяю Arduino Nano, так как она лишена левого обвеса и её размеры в 3 раза меньше! И да простят меня ардуинщики китайского происхождения, мне жалко было смотреть, как она валяется без дела, надо пустить её в девайс! Подумал я и купил пластиковую IP55 коробку небольших размеров, выпили отверстие под экран, который я купил 4 года назад! Карл! И тогда не догадывался, что этот LCD 16*2 пойдет в такое полезно дело. Взял на авторынке 2 авто кнопки, спаял провода, даже плату не проектировал отдельно, как я делаю для Nano — так как Uno тупо большая и совсем не для таких целей.

Алгоритм достаточно простой и ещё проходит полевые испытания, код проекта для более тесного ознакомления расположен тут.

Мне не стыдно его выложить, если будет конструктивная критика, я готов внести изменения, так как open для любых обсуждений.

В алгоритм я постарался заложить следующие принципы: — Инициализация данных: при старте, проверяются и инициируются все переменные для работы — Первичный опрос датчика: проверяется, если датчик не вышел из строя (в случае выхода, на всякий случай вырубается насос-реле) данные рассчитываются и переводятся в текущее давление в гребенке (распределительная гребенка, к которой подключены соседи+приход от насоса+гидроаккумулятор), если все в пределах нижнего и верхнего установленного давления, тогда продолжаем слушать и рассчитывать данные — Данные выводятся визуально на экран ввиде: нижнее давление — текущее давление — высокое давление индекс падения давления — [ блоки, показывают давление в системе ] Это позволяет быстро оценить ситуёвину, что происходит.— Если текущее давление ниже НИЖНЕГО: врубается твердотельное реле на 15A(проверенное годами) и насос тихо, быстро, без искр и щелчков, включается и подает воду. ВЕРХНЕЕ давление отключает реле. Насос никогда не включится и обязательно выключится, если что то с показаниями датчика, которые выходят за пределы разумного. Это безопасность. — Индекс падения давления я рассчитываю тогда, когда в гребенке остается половина давления и каждые 10 секунд проверяется предыдущее и текущее, если разница составит меньше установленного по дефолту 0.05 — тогда меняется текущий индекс и включается насос на ОПЕРЕЖЕНИЕ, тоесть по логике идет быстрое водопотребление и что бы предугадать включение насоса, я такой логикой и пользуюсь. Логика не срабатывает пока на 100%, так как я ещё тестирую этот момент, есть огрехи связанные с millis() таймингом самой ардуины, тут меня это немного напрягает, но я найду решение по четкому подсчету. Логика срабатывает в начале, а потом индекс падает в 0.01 и логика больше не работает, но это никак не влияет на вкл и выкл насоса. Тут можно холиварить на тему “насос должен включаться определенное количество раз в час и не больше” — у Вас есть на это право ), спорить не буду — данная тема анализируется. — есть кнопки боковые, которые позволяют устанавливать НИЗКИЙ и ВЫСОКИЙ порог включения и выключения насоса ДИНАМИЧЕСКИ, без перезагрузки, просто тупо на лету — смотрите на экран и нажимаете кнопочки боковые…. удобно-на! данные сразу пишутся в EEPPROM и при включении блока загружаются оттуда (это такая постоянная память на запись чисел от 0 до 255 byte type, мало но хватает на мелкие прихоти). При этом есть момент, заключается в том, что числа с плавающей точкой записать настолько трудно и геморно, что просто было решено с моей стороны так: зная, что число x.x0 это давление float типа, его можно легко конвертировать в byte если умножить на 10 и записать в память, тоесть: example: 1.80 * 10 = 18 — после умножения число float отбрасывает последний ноль автоматически и мы получается число, которое укладывается в byte типа, при чтении, мы его делим на 10.0 и получаем обратную форму для работы в нашей система и типа float. — Все добро будет доступно для «только чтение» вне дома, что позволит понимать ситуацию с давлением не только артериальным, но и в трубах!Ну вот вроде бы и все, простите, кого напрягают подробности кода, дурацких ТИПОВ данных и интимных подробностей загрузки данных из памяти, пропускайте это, так как, зная, что есть люди из ИТ сферы, они будут задавать всякого рода вопросы или наоборот, посмеются с моих простых алгоритмов, которые не применяют модные ИИ ML и прочие мега крутые и big data алгоритмы. Надеюсь так же инженеры поймут другие части, связанные с механической часть. Вообщем, вывод такой: можно делать все, можно делать легко, делать это в интерес и как сказал когда-то один мой любимый комментатор: можно быть взрослым и “играться с детскими игрушками”.
Ваш кэп, автоматизатор, capable guy и хорошего дня Вам! Косяки: — Продолжаю тестировать индекс падения давления для преждевременного включения — Arduino uno (Китай) — выявились проблемы с таймером millis() — буду проверять на arduino nano (раньше такого не было, предполагаю кривая модель) (не оргинал, поэтому не ною )) — Погрешность заявлена 1.5% — от 1.2Bar — это 0.18Bar — пофакту — у меня где то 0.3 относительно моего манометра, но я не знаю сколько он врет… поэтому 2% допускаю погрешость max — можно заложить в алгоритм (как я делаю) погрешность и бдет более менее похоже на правду. Не спутники же запускать — сойдет )

Читайте также:  Arduino uno цифровые часы без резистора и потенциометра

upd: ценник в районе 15-18$ вышел по итогу за изделие.

С наступающим Новым Годом! Пусть у Вас сбудутся все Ваши планы, будут построены БАНИ, в доме будет ТЕПЛО и вся Ваша дружная семья будет с Вами! Пусть в новом году будет только хорошие новости.

Источник: https://habr.com/post/408933/

Урок 8. Arduino погодная станция на базе барометра BMP180 термометра DS18B20

В прошлом уроке Мы научились делать термометр, используя для этого цифровой датчик температуры DS18B20, и выводить данные на OLED дисплей.

В этом уроке мы расширим возможности и добавим к проекту еще барометр BMP180, это даст нам возможность следить не только за температурой, но и за атмосферным давлением.

В этом уроке нам понадобится:

Для реализации проекта нам необходимо установить сразу несколько библиотек:

Сборка:

1) OLED дисплей подключаем к arduino следующим образом:

Arduino UnoЭкран 0.96 128X64 OLED
5V или 3.3V VCC
GND GND
Pin 9 SCL
Pin 8 SDA

Для удобства подключения можно использовать макетную плату.

2) Датчик температуры DS18B20 подключается к arduino следующим образом:

Распиновка для влагозащитного датчика DS18B20 с метровым проводом:

Arduino UNOВлагозащитный датчикаDS18B20
5V или 3.3V Красный провод ( 5V)
GND Черный провод (GND)
Pin 10 Желтый провод (Сигнальный) (Необходимо подтянуть резистором 4,7кОм к 5V

3) Барометр BMP180 GY-68 подключается к Arduino следующим образом:

Arduino UNOБарометр BMP180
3.3V ! Vin
GND GND
A5 SCL
A4 SDA

В нашем случае, для удобства мы подключили все модули к питанию 3.3 Вольта. Более наглядную схемы подключения можно посмотреть на фотографии ниже.

Теперь, когда мы подключили все модули, можно приступить к написанию скетча для Arduino. Предварительно необходимо установить библиотеки указанные выше.

#include
#include // Библиотека для работы с барометром
float P; // В данную переменную мы будем пересчитывать давление в милиметры ртутного столба
Adafruit_BMP085 bmp;
#include
#include
#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
char buffer[25];
char buffer1[25];
#include
OLED myOLED(8, 9, 8); // Подключение дисплея, 8pin — SDA , 9pin — SCL
extern uint8_t RusFont[]; // Русский шрифт
extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
extern uint8_t SmallFont[]; // Базовый шрифт без поддержки русскийх символов.
void setup()
{ sensors.begin(); myOLED.begin(); bmp.begin(); myOLED.setFont(RusFont);
}
void loop()
{
// Выводим на экран показания температуры
sensors.requestTemperatures();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(RusFont);
myOLED.print(«Ntvgthfnehf», CENTER, 0); // вывод текста русскими буквами
myOLED.setFont(SmallFont);
myOLED.print(«iarduino.ru», CENTER, 55); // вывод текста myOLED.setFont(MegaNumbers);
myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 10); // Отображение значения температуры, с точностью до десятых
myOLED.update();
delay(2000); // Пауза 2 секунды
// Выводим на экран показания атмосферного давления
myOLED.clrScr(); // очищаем экран myOLED.setFont(RusFont);
myOLED.print(«Lfdktybt», CENTER, 0); // вывод текста русскими буквами
myOLED.setFont(SmallFont);
myOLED.print(«iarduino.ru», CENTER, 55); // вывод текста
P=bmp.readPressure();
P=(float)0.0075*P; // пересчитываем давления в привычные нам мм ртутного столба.
myOLED.setFont(MegaNumbers);
myOLED.print(String(P , 1), CENTER, 10); // Отображение значения давления, с точностью до десятых
myOLED.update();
delay(2000);
}

Данный скетч можно скачать по следующей ссылке: Скетч урока №8.

В результате наше устройство отображает сперва температуру, которую фиксирует датчик DS18B20, а спустя 2 секунды он выводит на экран текущее давление, зафиксированное с помощью барометра BMP180.

Источник: https://lesson.iarduino.ru/page/urok-7-arduino-pogodnaya-stanciya-na-baze-barometra-bmp180-termometra-ds18b20/

Arduino Uno и датчик давления BMP180

В этом уроке мы будем разрабатывать барометрическую систему измерения давления с использованием BMP180 и ARDUINO.

Прежде всего для взаимодействия BMP180 с ARDUINO, нам необходимо загрузить библиотеку, специально разработанную для BMP180. Эта библиотека доступна по адресу: https://github.

com/adafruit/Adafruit-BMP085-Library После присоединения этой библиотеки мы можем вызвать специальные функции, которые облегчат работу с датчиком BMP180.

Необходимые компоненты
Плата Arduino Uno, соединительные проводники, резистор 220Ω, датчик BMP180, 16×2 LCD, макетная плата.

Схема подключения и принцип работы
После вызова заголовка (“include”) нам не нужно беспокоиться об установлении связи между Arduino Uno и датчиком BMP180. Мы можем просто вызвать специальные функции, которые сделают это для нас. Нам нужно только инициализировать ЖК-дисплей и отобразить вызываемые значения из SENSOR на нем.

https://www.youtube.com/watch?v=5O2kzUmaD70

В 16×2 ЖК-дисплеях есть 16 контактов, если есть подсветка и 14 контактов, если подсветки нет. Можно включить или выключить подсветку по желанию.

Теперь в 14 выводах имеется 8 контактов данных (7-14 или D0-D7), 2 контакта питания (1 и 2 или VSS и VDD или GND и + 5v), 3-й контакт для управления контрастом (VEE – определяет, насколько толстые символы должны отображаться) и 3 управляющих контакта (RS, RW, E).

В схеме вы можно заметить, что я взял только два контрольных контакта, бит контраста и READ/WRITE не часто используются, поэтому их можно закоротить на землю. Это делает ЖК-дисплей максимально контрастным и читаемым. Нам просто нужно управлять контактами ENABLE и RS для отправки символов и данных соответственно.

Соединения, которые выполняются для ЖК-дисплея, приведены ниже:
PIN1 или VSS к ground PIN2 или VDD или VCC к +5v питания PIN3 или VEE к ground (дает максимальный контраст, лучше всего для новичка) PIN4 или RS (Register Selection) к PIN8 ARDUINO UNO PIN5 или RW (Read/Write) к ground (ставит ЖК-дисплей в режим чтения, облегчает связь для пользователя) PIN6 или E (Enable) к PIN9 ARDUINO UNO PIN11 или D4 к PIN10 ARDUINO UNO PIN12 или D5 к PIN11 ARDUINO UNO PIN13 или D6 к PIN12 ARDUINO UNO

PIN14 или D7 к PIN13 ARDUINO UNO

ARDUINO IDE позволяет пользователю использовать ЖК-дисплей в 4-битном режиме. Этот тип связи позволяет пользователю уменьшать использование выводов на ARDUINO, в отличие от других, ARDUINO не нужно программировать отдельно для использования в режиме 4, потому что по умолчанию ARDUINO настроен для связи в 4-битном режиме. В схеме вы можете видеть, что мы использовали 4-битную связь (D4-D7).

Источник: http://academicfox.com/arduino-uno-y-datchyk-davlenyya-bmp180/

Как подключить датчик температуры и влажности DHT11 к Arduino

Датчик температуры и влажности DHT11 – популярный и дешёвый датчик, который можно использовать в довольно широком диапазоне температур и относительной влажности. Давайте посмотрим, как подключить его к Arduino и как считывать с него данные.

Нам понадобится:

1Технические характеристики датчика температуры и влажности DHT11

Итак, датчик DHT11 имеет следующие характеристики:

  • диапазон измеряемой относительной влажности – 20..90% с погрешностью до 5%,
  • диапазон измеряемых температур – 0..50°C с погрешностью до 2°C;
  • время реакции на изменения влажности – до 15 секунд, температуры – до 30 секунд;
  • минимальный период опроса – 1 секунда.

Габаритные размеры и внешний вид датчика температуры и влажности DHT11

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

2Схема подключения датчика температуры и влажности DHT11

Рассмотрим схему подключения датчика температуры и влажности DHT11 к микроконтроллеру, в частности, к Arduino.

Схема подключения датчика температуры и влажности DHT11

Давайте посмотрим, что показано на рисунке.

Обозначение на рисункеОписаниеПримечание
MCU Микроконтроллер или одноплатный компьютер Arduino / Raspberry Pi и др.
DHT11 Датчик температуры и влажности Выводы 1Pin, 2Pin и 4Pin задействованы в схеме, один из выводов датчика – 3-ий пин 3Pin – ни к чему не подключается.
DATA Шина данных Если длина соединительного кабеля от датчика к микроконтроллеру не превышает 20 метров, то эту шину рекомендуется подтянуть к питанию резистором 5,1 кОм; если больше 20 метров – то другой подходящий номинал (меньший).
VDD Питание датчика Допустимы напряжения от ~3,0 до ~5,5 вольт постоянного тока; если используется питание ~3,3 В, то желательно использовать питающий провод не длиннее 20 см.

Соберём рассмотренную схему. Я также по традиции включу в цепь логический анализатор, чтобы можно было изучить временную диаграмму информационного обмена с датчиком.

Сенсор температуры и влажности DHT11 подключён к Arduino UNO

Сенсор DHT11 часто продаётся в виде готовой сборки с необходимой обвязкой – подтягивающими резистором и фильтрующим конденсатором (как на предыдущей фотографии). Для экспериментов с Arduino я рекомендую покупать именно такой.

3Считывание данных с сенсора DHT11 при помощи Arduino

Давайте пойдём таким путём: скачаем библиотеку для датчика DHT11, установим её стандартным способом (распаковав в директорию libraries среды разработки для Arduino).

Напишем вот такой простенький скетч. Он будет выводить в последовательный порт компьютера каждые 2 секунды сообщения об относительной влажности и температуре, считанные с датчика DHT11.

Читайте также:  Урок по созданию игрушки "божья коровка" с помощью ардуино

#include // подключаем библиотеку dht11 sensor; // инициализация экземпляра датчика #define DHT11PIN 8 // вывод 8 будет шиной DATA void setup() { Serial.begin(9600); } void loop() { int chk = sensor.read(DHT11PIN); Serial.print(«h=»); Serial.print(sensor.humidity); Serial.print(«% «); Serial.print(«t=»); Serial.print(sensor.temperature); Serial.println(«C»); delay(2000); }

Загрузим этот скетч в Arduino. Подключимся к Arduino с помощью монитора COM-порта и увидим следующее:

Данные о температуре и влажности, полученные с датчика DHT11

Видно, что данные и о влажности, и о температуре считываются и выводятся в терминалку.

4Временная диаграмма информационного обмена датчика температуры и влажности DHT11 с микроконтроллером

С помощью временной диаграммы, полученной с логического анализатора, разберёмся, как осуществляется информационный обмен.

Для связи с микроконтроллером датчик температуры и влажности DHT11 использует однопроводный последовательный пакетный интерфейс.

Один информационный пакет длительностью около 4 мс содержит: 1 бит запроса от микроконтроллера, 1 бит ответа датчика и 40 битов данных от датчика (16 битов информации о влажности, 16 битов информации о температуре и 8 проверочных битов). Давайте подробнее рассмотрим временную диаграмму информационного обмена Arduino с датчиком DHT11.

Временная диаграмма информационного обмена сенсора DHT11 с микроконтроллером

Из рисунка видно, что есть два типа импульсов: короткие и длинные. Короткие в данном протоколе обмена обозначают нули, длинные импульсы – единицы.

Итак, первые два импульса – это запрос Arduino к DHT11 и, соответственно, ответ датчика. Далее идут 16 бит влажности. Причём они разделены на байты, старший и младший, старший слева. То есть на нашем рисунке данные о влажности такие: 0001000000000000 = 00000000 00010000 = 0x10 = 16% относительной влажности.

Данные о температуре, аналогично: 0001011100000000 = 00000000 00010111 = 0x17 = 23 градуса Цельсия.

Контрольная сумма – это всего-навсего арифметическое суммирование 4-х полученных байтов данных: 00000000 + 00010000 + 00000000 + 00010111 =

00100111 в двоичной системе или 0 + 16 + 0 + 23 = 39 в десятичной.

5Работа с датчиком DHT11 без библиотеки

Теперь мы знаем достаточно для того чтобы написать собственную программу для работы с сенсором температуры и влажности DHT11 без использования сторонних библиотек.

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

На 13-ую ножку Arduino выведем контрольный сигнал и, подключившись в ней логическим анализатором, проверим, что мы верно считываем информацию от датчика.

Источник: https://soltau.ru/index.php/arduino/item/463-kak-podklyuchit-datchik-temperatury-i-vlazhnosti-dht11-k-arduino

Подключение различных устройств и дополнений к Arduino

В этой статье вы научитесь подключать LCD Keypad Shield к Arduino, узнаете все тонкости программирования, а также сделаете полноценный таймер, который сможете управлять кнопками на шилде.

Это очень интересно и познавательно, переходи поскорее, чтобы узнать, как это сделать!
Тратьте минимум времени на знания с HelpDuino.

Читать

Интересная статья

Если вы мечтаете научиться управлять электромоторами, то это статья создана именно для вас, здесь вы научитесь подключать до четырех электромоторов к Arduino с помощью платы motor shield L293D

Это очень интересно и познавательно, переходи поскорее, чтобы узнать, как это сделать!
Тратьте минимум времени на знания с HelpDuino.

Читать

Интересная статья

В данной статье мы Вам расскажем и покажем, как связать угол поворота сервопривода от расстояния, измеренного дальномером HC-SR04.

Это очень интересно и познавательно, переходи поскорее, чтобы узнать, как это сделать!
Тратьте минимум времени на знания с HelpDuino.

Читать

Интересная статья

В данной статье мы Вам покажем, как сделать климат контроль с помощью реле, датчика влажности и температуры DHT11 и вентилятора. Также мы покажем как можно уменьшить размеры проекта, сделав его компактнее и удобнее для использования.
Тратьте минимум времени на знания с HelpDuino.

Читать

Интересная статья

В данной статье мы создадим web-сервер, с помощью которого сможем управлять светодиодом и будем считывать информацию с датчика влажности и температуры DHT11. Это в дальнейшем нам позволит управлять электроникой дома с абсолютно любой точки мира.
Тратьте минимум времени на знания с HelpDuino.

Читать

Интересная статья

Не знаете как вывести информацию с датчика температуры и влажности dht11 на lcd дисплей с помощью Arduino ? Вы попали на правильную страницу! Здесь вы узнаете как правильно подключить это соединение и научитесь программировать ваш «ардуино» сами! Заходите, делитесь информацией с друзьями!
Тратьте меньше времени на знания с HelpDuino.

Читать

Интересная статья

В данной статье рассмотрим подключение и работу LCD экрана с Arduino. Данный экран служит началом изучения основ Arduino, он очень удобен в использовании и имеет много способов применения. В нашей статье вы сможете взять новые знания и правильный скетч для эксперимента.
Тратьте минимум времени на знания с HelpDuino.

Читать

Интересная статья

В данной статье рассмотрим подключение и работу датчика температуры и давления DHT11 ( в серии DHT существует его родственник DHT22,но мы берем в пример DHT11 т.к. он дешевле и доступнее. ) Мы научимся правильно подключать датчик к Arduino и сможем вывести показания на экран монитора.
Тратьте меньше времени на знания с HelpDuino.

Читать

Интересная статья

Источник: http://helpduino.ru/kak-podklychit.html

Подключение датчика BMP085 к Arduino

Датчика BMP085 дает нам возможность не только измерять атмосферное давление но и температуру воздуха а так же отображать высоту над уровнем моря.

BMP085 является своего рода высокоточным датчиком давления с ультра-низким энергопотреблением. Отличная производительность BMP085 и точность достигает минимального значения измерения давления 0.03hPa, и это с очень низким энергопотреблением, только 3μA.

Блок схема датчика BMP085 :

Основные характеристики датчика BMP085 :

  • Диапазон давления: 300 – 1100hPa
  • Напряжение питания: от 3 до 5V
  • LCC8 пакет: керамическом корпус (LCC)
  • Размер: 2 см × 1.57cm
  • Низкое энергопотребление: 5 мкА в стандартном режиме
  • Точность: режим пониженного энергопотребления, разрешение 0.06hPa (0,5 м)
  • Высокий линейный режим с разрешением 0.03hPa (0,25 м)
  • Подключение: протокол связи I2C
  • Возможность измерения температуры
  • Время отклика: 7.5ms
  • Ток в режиме ожидания: 0,1 мкA
  •  Устраняет необходимость использования внешней тактовой цепи
  • Температурная компенсация

Контакты датчика BMP085 :

Датчик имеет 6 контактов для подключения к разным устройствам

Подключение датчика BMP085 :

Для подключения датчика BMP085 к arduino нам понадобится только 4 контакта:

  • Vcc – подключаем к питанию +5в
  • SDA – SDA на плате  arduino (A4)
  • SCL –  SCL на плате  arduino (A5)
  • GND – подключаем к питанию -5в

После успешного подключения датчика, требуется установить библиотеку для работы с датчиком.

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

Библиотека для работы с датчиком атмосферного давления BMP085 от Adafruit

Библиотека для работы с датчиком давления BMP085

Для начала рассмотрим библиотеку Adafruit BMP085, после установки которой открываем тестовый скетч BMP085test

#include #include   // Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!) // Connect GND to Ground // Connect SCL to i2c clock — on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5 // Connect SDA to i2c data — on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4 // EOC is not used, it signifies an end of conversion // XCLR is a reset pin, also not used here   Adafruit_BMP085 bmp;   void setup() {   Serial.begin(9600);   if (!bmp.begin()) {     Serial.println(«Could not find a valid BMP085 sensor, check wiring!»);     while (1) {}   } }   void loop() {     Serial.print(«Temperature = «);     Serial.print(bmp.readTemperature());     Serial.println(» *C»);       Serial.print(«Pressure = «);     Serial.print(bmp.readPressure());     Serial.println(» Pa»);       // Calculate altitude assuming 'standard' barometric     // pressure of 1013.25 millibar = 101325 Pascal     Serial.print(«Altitude = «);     Serial.print(bmp.readAltitude());     Serial.println(» meters»);     // you can get a more precise measurement of altitude   // if you know the current sea level pressure which will   // vary with weather and such. If it is 1015 millibars   // that is equal to 101500 Pascals.     Serial.print(«Real altitude = «);     Serial.print(bmp.readAltitude(101500));     Serial.println(» meters»);       Serial.println();     delay(500);

}

и загружаем его в нашу плату arduino uno , потом открываем монитор порта и смотрим показания датчика

Temperature = 23.93 *C                   температура в градусах Цельсия Pressure = 98918 Pa                           атмосферное давление в Паскаля Altitude = 201.76 meters                 высота над уровнем моря в метрах при стандартном давлении 1013.25  миллибар = 101325 Па (автоматически  определенная высота )

Real altitude = 215.91 meters        высота над уровнем моря в метрах при установленном давлении 1015  миллибар = 101500 Па ( значение можно установить вручную в миллибарах для более точного отображения высоты)

С показаниями датчика мы разобрались, а теперь можно переходить к второй библиотеке BMP085

у которой есть три тестовых скетча для демонстрации работы датчика давления.

Для начала откроем первый скетч BMP085_output

// BMP085_output // by Filipe Vieira // Simple example of library usage with almost every BMP085 and lib features being used.   #include #include   BMP085 dps = BMP085(); long Temperature = 0, Pressure = 0, Altitude = 0;   void setup(void) {   Serial.begin(9600);   Wire.begin();   delay(1000);     dps.init();        showall();     Serial.println(«Registers dump»);   Serial.println(«==========================================================»);   dumpRegisters();   Serial.println(«Calibration data»);   Serial.println(«==========================================================»);   dps.dumpCalData();     delay(5000); }   void loop(void) {   dps.getTemperature(&Temperature);    dps.getPressure(&Pressure);   dps.getAltitude(&Altitude);     Serial.print(«Temp(C):»);   Serial.print(Temperature);   Serial.print(»  Alt(cm):»);   Serial.print(Altitude);   Serial.print(»  Pressure(Pa):»);   Serial.println(Pressure); }   void showall(void) {    Serial.println(«Current BMP085 settings»);   Serial.println(«==========================================================»);   Serial.print(«device address                  = 0x»);   Serial.println(dps.getDevAddr(), HEX);   Serial.print(«Mode                            = «);   switch (dps.getMode()) {     case MODE_ULTRA_LOW_POWER:        Serial.println(«MODE_ULTRA_LOW_POWER»);       break;     case MODE_STANDARD:        Serial.println(«MODE_STANDARD»);       break;         case MODE_HIGHRES:        Serial.println(«MODE_HIGHRES»);       break;         case MODE_ULTRA_HIGHRES:            Serial.println(«MODE_ULTRA_HIGHRES»);       break;    }   }   void dumpRegisters() {

  byte ValidRegisterAddr[]={0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,

0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xF6,0xF7,0xF8,0xF9};    byte _b, i, totregisters = sizeof(ValidRegisterAddr);   Serial.println(«—dump start—«);   Serial.println(«Register address|Register data»);   Serial.println(«Reg.address(hex,dec) Reg.data(bin,hex,dec)»);   for (i=0;i=0; i—)      Serial.print(val >> i & 1, BIN); } /* void print_unit16(uint16_t val){   int i;   for(i=15; i>=0; i—)      Serial.print(val >> i & 1, BIN); } 

*/

После заливки скетча в arduino uno открываем монитор порта и смотрим

Скетч определил адрес устройства  device address = 0x77  ( может нам потребоваться при подключении нескольких датчиков одновременно ) и сделал калибровку всех параметров , а потом отобразил значения температуры Temp(C):239,  высоты  Alt(cm):-188 и давления Pressure(Pa):98901     —-  в основном этот скетч служит для общего тестирования датчика BMP085.

Далее мы откроем тестовый скетч BMP085_test1

Источник: http://easymcu.ucoz.ru/publ/12-1-0-158

Ссылка на основную публикацию