В этом уроке мы собираемся разработать систему измерения атмосферного давления с использованием BMP180 и ARDUINO. Прежде всего, для взаимодействия BMP180 с ARDUINO нам необходимо загрузить библиотеку, специально разработанную для BMP180. Эта библиотека доступна по адресу: https://github.com/adafruit/Adafruit-BMP085-Library. После подключения этой библиотеки мы можем вызывать специальные функции, которые облегчат работу с датчиком BMP180.
Необходимые компоненты
Оборудование: плата Arduino uno, соединительные контакты, резистор 220 Ом, датчик барометрического давления BMP180, ЖК-дисплей 16x2, макетная плата.
Программное обеспечение: Arduino nightly
Принципиальная схема и объяснение работы
После вызова заголовка нам не нужно беспокоиться об установлении связи между Arduino Uno и датчиком BMP180. Мы можем просто вызвать специальные функции, которые сделают это за нас. Нам нужно только инициализировать ЖК-дисплей и показать на нем вызванные значения от SENSOR.
В ЖК-дисплее 16x2 всего 16 контактов, если есть подсветка, если нет подсветки, всего будет 14 контактов. Можно включить или оставить контакты подсветки. Теперь на 14 контактах 8 контактов данных (7-14 или D0-D7), 2 контакта источника питания (1 и 2 или VSS и VDD или GND и + 5 В), 3- й контакт для контроля контрастности (VEE-контролирует толщину символов. показаны) и 3 контрольных штифта (RS, RW и E).
В схеме вы можете заметить, что я взял только два управляющих контакта, бит контрастности и READ / WRITE не часто используются, поэтому их можно замкнуть на землю. Это переводит ЖК-дисплей в режим максимальной контрастности и чтения. Нам просто нужно управлять контактами ENABLE и RS, чтобы отправлять символы и данные соответственно.
Подключения, которые выполняются для ЖК-дисплея, приведены ниже:
PIN1 или VSS на землю
PIN2 или VDD или VCC на питание +5 В
PIN3 или VEE на землю (дает максимальный контраст для новичков)
PIN4 или RS (выбор регистра) на PIN8 ARDUINO UNO
PIN5 или RW (чтение / запись) на землю (перевод ЖК-дисплея в режим чтения упрощает взаимодействие для пользователя)
PIN6 или E (включить) к 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).
Таким образом, исходя из простого наблюдения из приведенной выше таблицы, мы подключаем 6 контактов ЖК-дисплея к контроллеру, в котором 4 контакта являются контактами данных и 2 контакта для управления.
Для подключения BMP180 к Arduino Uno нам необходимо сделать следующее:
|
Сначала нам нужно вызвать заголовочный файл для включения специальных функций «#include».
С помощью этого файла заголовка мы можем вызывать функции, которые могут считывать значения из Sensor напрямую, без каких-либо проблем.
Теперь нам нужно включить связь C, это делается с помощью вызова «#include
Мы можем считать давление, вызвав «String PRESSUREVALUE = String (bmp.readPressure ());». Здесь значение давления будет считано с датчика и сохранено в строке «PRESSUREVALUE».
Мы можем прочитать температуру, вызвав «String TEMPARATUREVALUE = String (bmp.readTemperature ());». Здесь значение давления будет считано с датчика и сохранено в строке «TEMPARATUREVALUE».
Сначала нам нужно включить файл заголовка ('#include
Во-вторых, нам нужно сообщить плате, какой тип ЖК-дисплея мы здесь используем. Поскольку у нас очень много разных типов ЖК-дисплеев (например, 20 * 4, 16 * 2, 16 * 1 и т. Д.). Здесь мы собираемся подключить ЖК-дисплей 16 * 2 к UNO, чтобы получить lcd.begin (16,2);. Для 16 * 1 получаем 'lcd.begin (16,1);'.
В этой инструкции мы собираемся сообщить плате, куда мы подключили контакты. Подключенные контакты должны быть представлены в порядке «RS, En, D4, D5, D6, D7». Эти булавки должны быть представлены правильно. Поскольку мы подключили RS к PIN0 и так далее, как показано на принципиальной схеме, мы представляем номер контакта на плате как «LiquidCrystallcd (0,1,8,9,10,11);».
После этого все, что осталось, это отправить данные, данные, которые необходимо отобразить на ЖК-дисплее, должны быть записаны как «cd.print (" hello, world! ");». С помощью этой команды на ЖК-дисплее отображается «привет, мир!».
Как видите, нам не нужно беспокоиться ни о чем другом, нам просто нужно инициализировать, и UNO будет готов к отображению данных. Здесь нам не нужно писать программный цикл для отправки БАЙТА данных по БАЙТУ. После считывания значения с датчика мы собираемся отобразить их на ЖК-дисплее 16x2.