Рубрики
Схемы на Arduino

Подключение датчика измерения давления BMP180 к Arduino Uno

В этой статье мы рассмотрим создание системы измерения атмосферного давления на основе датчика BMP180 и платы Arduino Uno. В первую очередь для того, чтобы иметь возможность подключения датчика BMP180 к плате Arduino, необходимо скачать библиотеку, предназначенную для работу с датчиком BMP180. Сделать это можно по следующему адресу: https://github.com/adafruit/Adafruit-BMP085-Library. После прикрепления этой библиотеки мы получим доступ к специальным функциям, которые значительно упростят взаимодействие платы Arduino с датчиком BMP180.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Датчик барометрического давления BMP180 (купить на AliExpress).
  4. Резистор 220 кОм (купить на AliExpress).
  5. Соединительные провода.
  6. Макетная плата.

Работа схемы

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

Схема устройства представлена на следующем рисунке.

В ЖК дисплее 16×2 мы имеем 16 контактов, без использования черного цвета можно использовать 14 контактов. Контакты черного цвета можно запитать или оставить «пустыми». То есть из 14 контактов мы имеем 8 контактов данных (7-14 или D0-D7), 2 контакта питания (1&2 или VSS&VDD или GND&+5v), 3-й контакт для управления контрастностью (VEE-controls определяет насколько толстыми будут выглядеть символы на экране дисплея) и 3 контакта управления (RS&RW&E).

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

В схеме необходимо будет сделать следующие соединения платы Arduino с ЖК дисплеем:
PIN1 или VSS на землю
PIN2 или VDD или VCC к источнику питания +5 В
PIN3 или VEE на землю (обеспечивает ЖК дисплею максимальную контрастность – удобно для начинающих)
PIN4 или RS (Register Selection – выбор регистра) к контакту PIN8 платы ARDUINO UNO
PIN5 или RW (Read/Write) на землю (переводит ЖК дисплей в режим чтения что упрощает взаимодействие с ним для начинающих)
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.

То есть, в результате мы подсоединили 6 контактов ЖК дисплея к плате Arduino, из которых 4 контакта данных и 2 контакта управления.

Исходный код программы

Для подключения датчика BMP180 к плате Arduino Uno мы должны сделать следующие вещи:

1. #include <Adafruit_BMP085.h>
2. #include <Wire.h>
3. #include <LiquidCrystal.h>
4. Serial.begin(9600);
5. String PRESSUREVALUE = String(bmp.readPressure());
6. String TEMPARATUREVALUE = String(bmp.readTemperature());

Первым делом нам необходимо подключить заголовочный файл скачанной нами библиотеки (#include <Adafruit_BMP085.h>) чтобы получить доступ к специальным функциям для работы с датчиком BMP180. После подключения этого файла мы без всяких трудностей сможем считывать значения с датчика BMP180.
Далее мы должны разрешить последовательное соединение (C communication) с помощью подключения заголовочного файла “#include <Wire.h>”.

После этого мы сможем считывать значение давления с датчика с помощью вызова функции ”String PRESSUREVALUE = String(bmp.readPressure());”. В результате этой команды считанное значение давления будет сохранено в строке “PRESSUREVALUE”.

Также мы можем считать с датчика значение температуры с помощью вызова функции ”String TEMPARATUREVALUE = String(bmp.readTemperature());”. В результате этой команды считанное значение температуры будет сохранено в строке “TEMPARATUREVALUE”.

Также в программе мы должны подключить заголовочный файл для работы с ЖК дисплеем — #include <LiquidCrystal.h>. По умолчанию ЖК дисплей будет работать в 4-битном режиме.

Далее мы должны указать плате Arduino тип ЖК дисплея, с которым мы будем работать. Поскольку мы задействовали ЖК дисплей 16х2, то в нашем случае эта команда будет выглядеть следующим образом: ‘lcd.begin(16,2);‘.

После этого мы должны сообщить плате Arduino номера ее контактов, к которым мы подключили ЖК дисплей. В нашем случае это будет команда “LiquidCrystallcd(8, 9, 10, 11, 12, 13);”.

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

Видео, демонстрирующее работу схемы

На эту тему также можно посмотреть следующее познавательное видео:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *