Высотомер Arduino с использованием BMP и SPI или I2C OLED: 5 шагов
Высотомер Arduino с использованием BMP и SPI или I2C OLED: 5 шагов
Anonim
Высотомер Arduino с использованием BMP и SPI или I2C OLED
Высотомер Arduino с использованием BMP и SPI или I2C OLED

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

Шаг 1. Первые дела в первую очередь

Перед тем, как приступить к этому проекту, я настоятельно рекомендую вам пройти обучение по SSD1306 / OLED для I2C или SPI (в зависимости от того, что вы хотите использовать). Это гарантирует, что вы знаете, как подключить / подключить дисплей, а также его работоспособность. Изучите учебник по adafruit и / или учебник по примерам u8glib. Здесь мы будем использовать u8glib, поэтому он рекомендуется для опытных пользователей.

Шаг 2: необходимое оборудование

Необходимое оборудование
Необходимое оборудование

1. Arduino UNO или Nano или аналогичный.

2. Датчик атмосферного давления BMP085 или BMP180.

3. SSD1306 I2C или шина SPI (настраивается в эскизе).

4. Перемычки и макетная или веро-плата для соединений.

Шаг 3. Библиотеки IDE Arduino для компиляции

1. Wire.h

2. Adafruit_BMP085.h (также будет работать с BMP180)

3. U8glib.h

Шаг 4: Подключения

Все подключения одинаковы как для I2C, так и для SPI OLED-дисплея. Только подключение к дисплею будет другим.

1. BMP для Arduino:

VCC> 3,3 В

GND> Земля

SCL> A5 / SCL

ПДД> А4 / ПДД

SCK = 12, MOSI = 11, CS = 10, A0 = 9, сброс = 13

2. SPI OLED для Arduino

VDD> 5 В

GND> Земля

SCK / D0> D12 (цифровой 12)

SDA / D1 / Mosi> D11

CS / Chip Select> D10

A0 / DC> D9

RES / сброс> D13

(Если на вашем SPI OLED нет контакта сброса, просто удалите контакт сброса и сброса с экрана эскиза, выберите параметры)

3. I2C OLED

Так же, как проводка BMP, они используют те же порты и тип шины.

Шаг 5. Загрузка эскиза

Довольно просто. Просто скачайте zip-файл и откройте его в Arduino IDE. Все настроено в скетче. Пользователи SPI OLED могут просто загрузить эскиз без какого-либо редактирования, и он будет работать. Для пользователей I2C OLED просто раскомментируйте свое отображаемое имя / параметр в параметре «Выбор отображения» эскиза, закомментируйте и закройте модель / параметр отображения SPI, чтобы отключить SPI OLED.

Параметр отображения SPI:

// U8GLIB_SSD1306_128X64 u8g (12, 11, 10, 9, 13); // SW SPI Com: SCK = 12, MOSI = 11, CS = 10, A0 = 9, Reset = 13

Параметр дисплея I2C:

// U8GLIB_SSD1306_128X64 u8g (U8G_I2C_OPT_NO_ACK); // Дисплей, который не отправляет AC

Чтобы включить параметр, просто удалите знак // в начале, чтобы не комментировать его. Убедитесь, что выбран / не прокомментирован только один дисплей.

Подсказки:

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

2. BMP обычно использует 3,3 В, если производитель не говорит иначе. OLED может работать от 3,3 В до 5,5 В (рекомендуется 4-5 В)

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

4. Если вы новичок в OLED, попробуйте сначала простые вещи, такие как текст и фиктивные буферы, чтобы убедиться, что дисплей ur работает, а ваши соединения точны.