====== OLED-дисплей (Troyka-модуль) ====== [[amp>product/troyka-oled?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|OLED-дисплей]] пригодится для отображения показаний сенсоров и модулей в виде текста, графиков и диаграмм. {{ :продукты:troyka-oled:troyka-oled.5.jpg |}} ===== Видеообзор ===== {{youtube>Ah3hS_8-eKg?large}} ===== Примеры для Arduino ===== ==== Схема устройства ==== Подключите дисплей к [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|Arduino Uno]] к пинам шины I²C — ''SDA'' и ''SCL''. Для быстрой сборки используйте [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|Troyka Shield]]. {{ :продукты:troyka-oled:troyka-oled_arduino_troyka-shield.png |}} С [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|Troyka Slot Shield]] провода не понадобятся вовсе. {{ :продукты:troyka-oled:troyka-oled_arduino_troyka-slot-shield.png |}} Для упрощения работы с OLED-дисплеем скачайте и установите библиотеку [[https://github.com/amperka/TroykaOLED|TroykaOLED]]. Библиотека подходит для всех платформ Arduino — как с AVR-контроллерами, так и с ARM. ==== Вывод текста ==== Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого: // библиотека для работы с OLED-дисплеем #include // создаём объект для работы с дисплеем // и передаём I²C адрес дисплея TroykaOLED myOLED(0x3C); void setup() { // инициализируем дисплей myOLED.begin(); // выбираем шрифт 6×8 myOLED.setFont(font6x8); // печатаем строку myOLED.print("Hello world!", 25, 0); // выбираем шрифт 12×10 myOLED.setFont(font12x10); // печатаем строку myOLED.print("Amperka", 20, 20); // инвертируем последующий текст myOLED.invertText("true"); myOLED.print("OLED", 40, 40); } void loop() { } {{ :продукты:troyka-oled:troyka-oled_arduino_print-text.png |}} ==== Вывод кириллицы ==== Для вывода кириллицы используйте соответствующий шрифт с поддержкой русского языка. В зависимости от версии операционной системы, среды программирования и даже сохранён ли был скетч — может использоваться разная кодировка. Если вместо кириллический символов вы видите не читаемый текст — попробуйте изменить кодировку функцией ''setCoding''. // библиотека для работы с OLED-дисплеем #include // создаём объект для работы с дисплеем // и передаём I²C адрес дисплея TroykaOLED myOLED(0x3C); void setup() { // инициализируем дисплей myOLED.begin(); // выбираем кодировку символов: CP866, TXT_UTF8 или WIN1251 myOLED.setCoding(TXT_UTF8); //myOLED.setCoding(TXT_CP866); //myOLED.setCoding(TXT_WIN1251); // выбираем шрифт 6×8 с поддержкой кириллицы myOLED.setFont(fontRus6x8); // печатаем строку с координатами начала текста myOLED.print("Привет мир!", OLED_CENTER, 10); // выбираем шрифт 12×10 с поддержкой кириллицы myOLED.setFont(fontRus12x10); // печатаем строку с координатами начала текста myOLED.print("Амперка", OLED_CENTER, 20); } void loop() { } {{ :продукты:troyka-oled:troyka-oled_arduino_print-text-rus.png |}} ==== Вывод геометрических фигур ==== Методы библиотеки также позволяют выводить геометрические фигуры. // библиотека для работы с OLED-дисплеем #include // создаём объект для работы с дисплеем // и передаём I²C адрес дисплея TroykaOLED myOLED(0x3C); void setup() { // инициализируем дисплей myOLED.begin(); // получаем ширину и высоту дисплея int width = myOLED.getWidth(); int height = myOLED.getHeigth(); // рисуем две диагонали myOLED.drawLine(0, 0, width - 1, height - 1); myOLED.drawLine(0, height - 1, width - 1, 0); // рисуем окружность в центре дисплея и радиусом 30 myOLED.drawCircle(width / 2, height / 2, 30); // рисуем диск (закрашенную окружность) в центре дисплея и радиусом 20 myOLED.drawCircle(width / 2, height / 2, 20, true); } void loop() { } {{ :продукты:troyka-oled:troyka-oled_arduino_geometric-figures.png |}} ==== Вывод встроенных изображений ==== // библиотека для работы с OLED-дисплеем #include // создаём объект для работы с дисплеем // и передаём I²C адрес дисплея TroykaOLED myOLED(0x3C); void setup() { // инициализируем дисплей myOLED.begin(); // выводим изображение сигнала связи myOLED.drawImage(signal4, OLED_LEFT, OLED_TOP); // выводим изображение антенны myOLED.drawImage(antenna, 12, OLED_TOP); // выводим изображение bluetooth myOLED.drawImage(bluetooth, 24, OLED_TOP); // выводим изображение батарейки myOLED.drawImage(battery3, OLED_RIGHT, OLED_TOP); // выводим изображение письма myOLED.drawImage(mesege, OLED_CENTER, OLED_CENTER); } void loop() { } {{ :продукты:troyka-oled:troyka-oled_arduino_draw-default-images.png |}} ==== Вывод собственных изображений ==== Для начала подготовьте картинку для вывода её на экран — преобразуйте в массив чисел. Для этого понадобится графический редактор [[http://gimp.org|GIMP]] и программа для создание массива символов из изображения {{:продукты:troyka-oled:lcdassistant.zip|LCDAssistant}}. === Подготовка изображения === - В графическом редакторе «GIMP» откройте интересующую картинку. - Преобразуйте изображение в разрешение дисплея, не более 128×64. Высота картинки должна быть кратна восьми. - В настойках цветов переконвертируйте из цветного изображения в чёрно-белое. - Возьмите карандаш и подредактируйте изображение. Должно остаться только два цвета: никаких 50 оттенков серого, только чёрное и белое. - Экспортируйте изображение в формате ''.bmp''. - В программе «LCDAssistant» откройте битовое изображение. - В настройке ориентация байтов выставьте по вертикали, а размер изображения должен автоматически выставиться при загрузке картинки. - Нажмите File Save output и сохраните файл с расширением ''.h''. - Откройте полученный файл текстовым редактором. Если вы всё сделали верно в файле должен содержаться массив шестнадцатеричных чисел. - Добавьте в начала массива два элемента: ширина и высота изображения. - Скопируйте весь массив и вставьте в начала кода программы «Arduino IDE». Повторимся ещё раз, каждый символ в массиве это байт, в котором храниться информация о том, какие пиксели (биты) закрашивать в данном байте. И так по очереди все байты на каждой странице. === Код программы === // библиотека для работы с OLED-дисплеем #include // создаём объект для работы с дисплеем // и передаём I²C адрес дисплея TroykaOLED myOLED(0x3C); // массив изображения const unsigned char alina [] PROGMEM = { 128, 64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFC, 0xFC, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x8F, 0x8F, 0xCF, 0x8F, 0xCB, 0x8F, 0x9B, 0x8B, 0x1B, 0x13, 0x03, 0x01, 0x01, 0x01, 0x00, 0x01, 0xC3, 0xE5, 0xDF, 0xDF, 0xDF, 0xEF, 0xCF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x07, 0x03, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x27, 0x6B, 0x83, 0x00, 0x03, 0x03, 0x03, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x1C, 0xA4, 0x88, 0x00, 0x80, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xA0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x14, 0x0E, 0x0E, 0x1E, 0x0E, 0x1E, 0x0F, 0x2A, 0x81, 0xE0, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2A, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x20, 0x30, 0x3E, 0x3F, 0x7F, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x3F, 0x3F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; void setup() { // инициализируем дисплей myOLED.begin(); // инвертируем экран для наглядности изображение myOLED.invertDisplay(true); // выводи изображение с координатами верхнего левого угла myOLED.drawImage(alina, 0, 0); } void loop() { } {{ :продукты:troyka-oled:troyka-oled_arduino_draw-images.png |}} ===== Примеры для Espruino ===== ==== Схема устройства ==== Подключите дисплей к [[amp>product/iskra-js?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|Iskra JS]] к пинам шины I²C — ''SDA'' и ''SCL''. Для быстрой сборки используйте [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|Troyka Shield]]. {{ :продукты:troyka-oled:troyka-oled_espruino_troyka-shield.png |}} С [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|Troyka Slot Shield]] провода не понадобятся вовсе. {{ :продукты:troyka-oled:troyka-oled_espruino_troyka-slot-shield.png |}} ==== Вывод текста ==== Для вывода первой программы приветствия, воспользуйтесь скриптом вроде этого: // настраиваем шину I²C PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000}); // подключаем библиотеку для работы с графическим дисплеем var screen = require("SSD1306").connect(PrimaryI2C); // выбираем размер шрифта screen.setFontVector(15); // записываем строку в буфер дисплея screen.drawString("Hello world!", 18, 0); // отображаем содержимое буфера на экране screen.flip(); {{ :продукты:troyka-oled:troyka-oled_espruino_print-text.png |}} ==== Вывод геометрических фигур ==== Методы библиотеки также позволяют выводить геометрические фигуры. // настраиваем шину I²C PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000}); // подключаем библиотеку для работы с графическим дисплеем var screen = require("SSD1306").connect(PrimaryI2C); // получаем ширину и высоту дисплея var width = screen.getWidth(); var height = screen.getHeight(); // рисуем две диагонали screen.drawLine(0, 0, width - 1, height - 1); screen.drawLine(0, height - 1, width - 1, 0); // рисуем окружность в центре дисплея и радиусом 30 screen.drawCircle(width / 2, height / 2, 30); // рисуем диск (закрашенную окружность) в центре дисплея и радиусом 20 screen.fillCircle(width / 2, height / 2, 20); // отображаем содержимое буфера на экране screen.flip(); {{ :продукты:troyka-oled:troyka-oled_espruino_geometric-figures.png |}} ===== Примеры для WiFi Slot ===== ==== Схема устройства ==== Подключите дисплей к платформе [[amp>product/wifi-slot?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|WiFi Slot]] к пинам шины I²C — ''SDA'' и ''SCL''. Для этого установите модуль в соответствующий слот. {{ :продукты:troyka-oled:troyka-oled_scheme_wifi-slot.png |}} Платформа WiFi Slot программируется двумя способами: * [[products:wifi-slot#программирование_на_c|На языке C++ при помощи Arduino IDE.]] * [[products:wifi-slot#программирование_на_javascript|На языке Javascript через Espruino IDE.]] Соответственно после настройки платформы выберите [[#примеры_для_arduino|код из примера Arduino]] или [[#примеры_для_espruino|код для JavaScript]]. ===== Элементы платы ===== {{ :продукты:troyka-oled:troyka-oled_annotation.png |}} ==== OLED-дисплей ==== Дисплей модуля выполнен по технологии OLED с разрешением 128×64. Методика OLED (organic light-emitting diode) — это матрица точек, где каждый пиксель является отдельным светодиодом. Благодаря таким светящимся пикселям — OLED-дисплей обладает высокой контратсностью, углом обзора более 160° и не нуждается в подсветке. ==== Пользовательские кнопки ==== На модуле по бокам расположены две тактовых кнопки ''S1'' и ''S2''. Пока кнопка отпущена — на сигнальном пине ''S'' присутствует логическая единица, а при нажатии на кнопку — логический ноль. ==== Troyka-контакты ==== На модуле выведено две пары Troyka-контактов. //Нижняя группа// * Питание (V) — соедините с рабочим напряжением микроконтроллера. * Земля (G) — Соедините с землёй микроконтроллера. //Верхняя группа// * Сигнальный (D) — пин данных шины I²C. Подключите к ''SDA'' пину микроконтроллера. * Сигнальный (C) — пин тактирования шины I²C. Подключите к ''SCL'' пину микроконтроллера. ==== Смена адреса модуля ==== Иногда в проекте необходимо использовать несколько дисплеев. Для смена адреса капните каплей припоя на отведённую контактную площадку на обратной стороне модуля. После чего адрес дисплея сменится с ''0x3C'' на ''0x3D''. {{ :продукты:troyka-oled:troyka-oled_change_address.gif |}} ==== Понижающий регулятор напряжения ==== Линейный понижающий регулятор напряжения {{:продукты:troyka-oled:ncp582_datasheet.pdf|NCP582}} с выходом 3,3 вольта, обеспечивает питание дисплейного модуля. Максимальный выходной ток составляет 150 мА. На плате так же присутствует необходимая обвязка для сопряжения устройств с разными питающими напряжениями. В нашем случае это может быть управляющая плата Arduino с 5 вольтовой логикой и OLED-дисплей с 3,3 вольтовой логикой. ===== Принципиальная и монтажная схемы ===== {{:продукты:troyka-oled:troyka-oled_schematic.png?direct&430 |}} {{:продукты:troyka-oled:troyka-oled_layout_top.png?direct&230 |}} {{:продукты:troyka-oled:troyka-oled_layout_bottom.png?direct&230 |}} ===== Характеристики ===== * Диагональ: 0,96 дюйма * Разрешение: 128×64 * Технология: OLED (Organic Light Emitting Diode) * Драйвера матрицы: SSD1306 * Цвет: монохромный * Угол обзора: более 160° * Напряжение питания: 3.3–5 В * Интерфейс: I²C * Адрес модуля: 0x3C (по умолчанию) / 0x3D * Дополнительно: две пользовательских кнопки * Габариты: 50,8×25,4 мм ===== Ресурсы ===== * [[amp>product/troyka-oled?utm_source=man&utm_campaign=troyka-oled&utm_medium=wiki|OLED-дисплей]] в магазине * [[https://github.com/amperka/TroykaOLED|Библиотека для Arduino]] * [[https://github.com/amperka/hardware-drawings/blob/master/troyka-oled_top.svg|Векторное изображение модуля (TOP)]] * [[https://github.com/amperka/hardware-drawings/blob/master/troyka-oled_bottom.svg|Векторное изображение модуля (BOTTOM)]] * {{:продукты:troyka-oled:ssd1306_datasheet.pdf|Datasheet на драйвер матрицы SSD1306}} * {{:продукты:troyka-oled:ncp582_datasheet.pdf|Datasheet на понижающий регулятор напряжения}}