Объявление!

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

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

Подключение SSD1306 OLED дисплея 0.96" 128*64 7 пин

Модератор: pinochet

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

Подключение SSD1306 OLED дисплея 0.96" 128*64 7 пин

Непрочитанное сообщение admin » 26 ноя 2016, 22:05

Из Китая поступила партия дисплеев SSD1306 для нужд Объединения размером 0,96 дюйма. Возникли вопросы по подключемнию к стандартным платам "Arduino UNO" и "Arduino MEGA". Публикуем распиновку.

MODULE.........ARDUINO UNO....MEGA
GND..............GND...............GND
VCC..............3.3V...............3.3
D0 (CLK).........D13................52
D1 (DATA).......D11................51
RST (RESET).....D8................D8
DC................D9.................D9
CS (SS).........D10................D10

Соответствия сигналов на пинах:
SCK = 13, MOSI = 11, CS = 10, A0 = 9

Изображение

Скачиваем библиотеку HCuOLED по ссылке: http://carduino.ru/media/products/HCuOLED-master.rar
Аватар пользователя
admin
Администратор
 
Сообщений: 880
Зарегистрирован: 20 фев 2016, 09:07

Re: Подключение SSD1306 OLED дисплея 0.96" 128*64 7 пин

Непрочитанное сообщение admin » 27 ноя 2016, 11:08

Наши отечественные Кулибины таки додумались как переделать стандартно распаяный на данном 7 pin OLED 128x64 дисплее интерфейса SPI в интерфейс IIC под 4 pin.

http://arduino.ru/forum/apparatnye-vopr ... x64-po-iic

Изначально дисплей работает со SPI и для переключения его в режим I2C, необходимо впаять перемычки R1 и R8. Далее, подключаем:
OLED Arduino Uno
GND GND
VCC +3,3v
D0 A5
D1 A4
RES через 10k к +3,3v и 1,0 mk на GND
DC на GND, адрес 0x3C; на +3,3v, адрес 0x3D
CS на GND
Подключаем дисплей, загружаем в Ардуино скетч для I2C и наслаждаемся результатом.

Изображение

Изображение

И видео тест скеча:

phpBB [video]


Да и не забывайте вот об этом:

Код: выделить все
DC            на GND, адрес 0x3C; на +3,3v, адрес 0x3D



в библиотеке от Adafruit по умолчанию 0x3D, в моем случае 0x3C.

Соответствие сигналов на пинах полученного таким образом интерфейс IIC:

Было:...GND.........VCC......DO......D1
Стало:..GND.........VCC......SCL.....SDA

Материал подготовлен лабораторией электронных разработок DATA-RU.RU (http://www.data-ru.ru) по запросу Комитета науки и техники Национального Объединения.
Аватар пользователя
admin
Администратор
 
Сообщений: 880
Зарегистрирован: 20 фев 2016, 09:07

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

Непрочитанное сообщение admin » 27 ноя 2016, 15:53

Для термометра отлично подходит датчик температуры 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
Администратор
 
Сообщений: 880
Зарегистрирован: 20 фев 2016, 09:07

Погодная станция. Барометр BMP180, термометр DS18B20, OLED.

Непрочитанное сообщение admin » 27 ноя 2016, 16:07

Нам понадобится:

Датчик температуры DS18B20.
Экран 0.96 128X64 OLED,
Breadboard
Набор проводов Папа-Папа
Микроконтроллер Arduino
Резистор
Барометр BMP180 GY-68

Для реализации проекта нам необходимо несколько библиотек:

OneWire Arduino Library
OLED I2C OLED_I2C с поддержкой Русского и Украинского языка.
Dallas Temperature
Adafruit BMP085 Библиотека для работы с датчиком давления BMP085

Сборка:

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


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

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

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


3) Барометр BMP180 GY-68 подключается к Arduino следующим образом:

Arduino UNO .....................Барометр BMP180
3.3V ! (строго!)....................Vin
GND ................................GND
A5 ..................................SCL
A4 ..................................SDA


В нашем случае, для удобства мы подключили все модули к питанию 3.3 Вольта. Более наглядную схемы подключения можно посмотреть на фотографии ниже.

Изображение

Код скетча:

Код: выделить все
#include <Wire.h>
#include <Adafruit_BMP085.h> // Библиотека для работы с барометром
float P; // В данную переменную мы будем пересчитывать давление в милиметры ртутного столба
Adafruit_BMP085 bmp;
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
char buffer[25];
char buffer1[25];
#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();
  bmp.begin();
  myOLED.setFont(RusFont);
}
void loop()
{
// Выводим на экран показания температуры
sensors.requestTemperatures();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(RusFont);
myOLED.print("Ntvgthfnehf", CENTER, 0); // вывод текста русскими буквами
myOLED.setFont(SmallFont);
myOLED.print("iarduino.ru", CENTER, 55); // вывод текста
myOLED.setFont(MegaNumbers);
myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 10);   // Отображение значения температуры, с точностью до десятых
myOLED.update();
delay(2000); // Пауза 2 секунды
// Выводим на экран показания атмосферного давления
myOLED.clrScr(); // очищаем экран
myOLED.setFont(RusFont);
myOLED.print("Lfdktybt", CENTER, 0); // вывод текста русскими буквами
myOLED.setFont(SmallFont);
myOLED.print("iarduino.ru", CENTER, 55); // вывод текста
P=bmp.readPressure();
P=(float)0.0075*P; // пересчитываем давления в привычные нам мм ртутного столба.
myOLED.setFont(MegaNumbers);
myOLED.print(String(P , 1), CENTER, 10);   // Отображение значения давления, с точностью до десятых
myOLED.update();
delay(2000);
}


В результате наше устройство отображает сперва температуру, которую фиксирует датчик DS18B20, а спустя 2 секунды он выводит на экран текущее давление, зафиксированное с помощью барометра BMP180.
Аватар пользователя
admin
Администратор
 
Сообщений: 880
Зарегистрирован: 20 фев 2016, 09:07


Вернуться в Электроника и электрика

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

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

cron
title=!-- ENDIF --