Объявление

США начнут предпринимать меры экономического и военного характера, если Россия не прекратит нарушать Договор о ракетах средней и меньшей дальности (ДРСМД)

Решение главы Национального Объединения "Новая Россия - Великая Россия" Rommstaina: http://russianew.ru/viewtopic.php?f=120&t=4039

Термометр на DS18B20 и OLED 128X64

Правила форума
Внимание! Любой спам на нашем форуме запрещён!
Коммерческая реклама сайтов, ссылки, спам запрещены. Так же запрещены ссылки на сайты в профилях новичков.
Бан без предупреждений.

Термометр на DS18B20 и OLED 128X64

Сообщение admin » 27 ноя 2016, 19:12

Для термометра отлично подходит датчик температуры DS18B20. Он позволяет измерять температуру в домашних, так и в уличных условиях, потому что исполнен с водонепроницаемом корпусе. В качестве дисплея будем использовать матрицу 0.96 128X64 OLED.

Для создания термометра нам понадобятся следующие компоненты:
Датчик температуры DS18B20 1 метр. (Герметичный)
Экран 0.96 128X64 OLED,
Breadboard
Набор проводов Папа-Папа
Микроконтроллер Arduino

Для реализации проекта нам необходимо установить сразу несколько библиотек:
OneWire Arduino Library
OLED I2C OLED_I2C с поддержкой Русского и Украинского языка.
Dallas Temperature

Сборка:

1) OLED дисплей подключаем к arduino следующим образом:
Arduino Uno ..............Экран 0.96 128X64 OLED IIC (4SPI)
5V .................................VCC
GND ..............................GND
Pin 9 .............................SCL (D0)
Pin 8 .............................SDA (D1)


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

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

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

Изображение

Теперь необходимо записать скетч в arduino:

Код: выделить все
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#include <OLED_I2C.h>
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();
}
void loop()
{
sensors.requestTemperatures();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(RusFont); // Устанавливаем русский шрифт
myOLED.print("Ntvgthfnehf", CENTER, 0); // Выводим надпись "Температура"
myOLED.setFont(SmallFont);
myOLED.print("data-ru.ru", CENTER, 55); // вывод текста
myOLED.setFont(MegaNumbers);
myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 9);   // Отображение температуры
myOLED.update();
delay(100);
}


Изображение
admin
Администратор
 
Сообщений: 65
Зарегистрирован: 27 ноя 2016, 18:21

Вернуться в Для новичков. Азы.

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron
/