Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Долгое время я искал высотомер и температуру с помощью одного датчика и отображал их на 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 работает, а ваши соединения точны.