Объявление!

Национальное Объединение "Новая Россия - Великая Россия" создано 1 мая 2006 года. И является Национально-Социалистической Общественной организацией, защищающей интересы Русского народа.

1 мая 2021 года нам исполняется 15 лет.
http://russianew.ru/viewtopic.php?f=10&t=25

Населению России необходимо Объединяться! Кем бы вы ни были по национальности, все мы живущие на территории России представляем собой единую нацию России. Если вы уже поняли что настоящее правительство не способно привести Отечество к прогрессу и процветанию, мы все должны Объединиться и принять общее решение о дальнейшей судьбе России. Иного пути выхода из тупика нет.

http://russianew.ru/viewtopic.php?f=120&t=4503

Подключение 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
Администратор
 
Сообщений: 939
Зарегистрирован: 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
Администратор
 
Сообщений: 939
Зарегистрирован: 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
Администратор
 
Сообщений: 939
Зарегистрирован: 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
Администратор
 
Сообщений: 939
Зарегистрирован: 20 фев 2016, 09:07


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

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

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

cron
title=!-- ENDIF --