Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Набор блоков для вывода текста на дисплей Oled с интерфейсом I2C. Есть кириллица. Поддерживается только дисплей с разрешением 128х64 и контроллером SSD 1306.
Адреc дисплея на шине должен быть 0х3C (для изменения нужно редактировать блок).
В отличии от блоков с поддержкой графики для работы требует незначительный объём RAM.
Возможности блоков: вывод текста отдельными блоками (аналогично штатным блокам для HD44780),
инвертирование текста для одного блока и/или всего экрана.
Доступно два шрифта: мелкий 5х7 пикселей - всего 8 строк по 21 знаку,
крупный 10х14 пикселей - всего 4 строки по 10 знаков.
Возможно располагать текст на экране произвольным образом, в том числе комбинировать
блоки с мелким и крупным шрифтом, делать вывод строки из нескольких частей, инвертировать часть строки, росполагать разные блоки в одном и том же месте экрана (при условии что они отображаются НЕ одновременно).
Для расположения строк большого шрифта есть особенность: хотя символы во сравнению с малым шрифтом имеют двойной размер, расположение строк аналогично малому шрифту, таким образом один символ занимает две строки со сдвигом вверх.
Поэтому счёт строк начинается со второй с шагом 1/2.
Таким образом:
1-я строка будет под номером 2
2-я под номером 4
3-я под номером 6
4-я под номером 8
Описание входов и параметров пользователя внутри блоков.
В архиве блоки и библиотека.
Адреc дисплея на шине должен быть 0х3C (для изменения нужно редактировать блок).
В отличии от блоков с поддержкой графики для работы требует незначительный объём RAM.
Возможности блоков: вывод текста отдельными блоками (аналогично штатным блокам для HD44780),
инвертирование текста для одного блока и/или всего экрана.
Доступно два шрифта: мелкий 5х7 пикселей - всего 8 строк по 21 знаку,
крупный 10х14 пикселей - всего 4 строки по 10 знаков.
Возможно располагать текст на экране произвольным образом, в том числе комбинировать
блоки с мелким и крупным шрифтом, делать вывод строки из нескольких частей, инвертировать часть строки, росполагать разные блоки в одном и том же месте экрана (при условии что они отображаются НЕ одновременно).
Для расположения строк большого шрифта есть особенность: хотя символы во сравнению с малым шрифтом имеют двойной размер, расположение строк аналогично малому шрифту, таким образом один символ занимает две строки со сдвигом вверх.
Поэтому счёт строк начинается со второй с шагом 1/2.
Таким образом:
1-я строка будет под номером 2
2-я под номером 4
3-я под номером 6
4-я под номером 8
Описание входов и параметров пользователя внутри блоков.
В архиве блоки и библиотека.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось RedSky 14 сен 2018, 18:55, всего редактировалось 1 раз.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
С U8g2 пока не очень разобрался. В том примере, что нашёл "Привет мир" требует 29% ОЗУ, и как менять шрифт не разобрался.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
c NodeMCU работает? а то сколько не пробовал пользовательских блоков - все только с ардуинами работают..
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
[ref]Sergo[/ref], посмотрите в этой теме viewtopic.php?f=133&t=4117, там работает с модифицированной библиотекой от Adafruit, если у Вас уже установлена стандартная нужно заменить.
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
[ref]RedSky[/ref], спасибо, попробую.
Отправлено спустя 10 минут 46 секунд:
[ref]RedSky[/ref], но вот только не понял где там нужная библиотека, тема-то про "MQTT Брокера на ESP8266 NodeMCU"...
Отправлено спустя 10 минут 46 секунд:
[ref]RedSky[/ref], но вот только не понял где там нужная библиотека, тема-то про "MQTT Брокера на ESP8266 NodeMCU"...
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Библиотеки в проекте Test_MQTT_SUB_OLED внутри пользовательского блока SSD1306 I2C main NodeMCU, установятся автоматически, когда добавите блок в проект. Только нужно предварительно удалить имеющиеся стандартные (если есть).
-
- Полковник
- Сообщения: 3357
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 12 раз
- Поблагодарили: 100 раз
- Контактная информация:
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Я разбирался, даже сделал ПБ. Пока некогда проверить и выложить.
- ivanpost
- Сержант
- Сообщения: 203
- Зарегистрирован: 24 сен 2016, 22:26
- Откуда: Тольятти
- Имя: Иван
- Благодарил (а): 3 раза
- Поблагодарили: 8 раз
- Контактная информация:
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
[ref]RedSky[/ref], Может что то не вижу в настройках, на 2-х разных камнях блоки конфликтуют с библиотекой Wire.h (Нужна для часов) - засыпают мусором почти весь экран, правда места вывода букв - остаются... Без библиотеки - работают отлично... Не сталкивались?
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Вместе с часами не испытывал, ничего подсказать не могу. А попробуйте в собраном проекте убрать строчку с Wire.h - будут ли работать часы?
- ivanpost
- Сержант
- Сообщения: 203
- Зарегистрирован: 24 сен 2016, 22:26
- Откуда: Тольятти
- Имя: Иван
- Благодарил (а): 3 раза
- Поблагодарили: 8 раз
- Контактная информация:
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
[ref]RedSky[/ref], Нет, так не компилируется - ругань на функции... Жаль... Очень мало памяти жрут блоки и достаточно шустры...
- diman27
- Сержант
- Сообщения: 291
- Зарегистрирован: 06 сен 2015, 07:33
- Откуда: Белово
- Благодарил (а): 4 раза
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Привет всем. А может кто сделать еще один размер шрифта "самый большой" в два раза больше большого?
- ivanpost
- Сержант
- Сообщения: 203
- Зарегистрирован: 24 сен 2016, 22:26
- Откуда: Тольятти
- Имя: Иван
- Благодарил (а): 3 раза
- Поблагодарили: 8 раз
- Контактная информация:
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
[ref]RedSky[/ref], Почему то myOLED не хочет работать с макросом F() - начинает менять символы. Нет мыслей почему?
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Не могу ответить, не очень хорошо разбираюсь в С++ и архитектуре AVR. Делал блоки на основе примеров автора библиотеки.
- ivanpost
- Сержант
- Сообщения: 203
- Зарегистрирован: 24 сен 2016, 22:26
- Откуда: Тольятти
- Имя: Иван
- Благодарил (а): 3 раза
- Поблагодарили: 8 раз
- Контактная информация:
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
[ref]ivanpost[/ref], Для работы с часами придется заменить библиотеку Wire.h на iarduinoRTC.h. Все в сумме работает очень быстро и ест мало RAM (жалкие 300 байт
). флэш -прилично . Так что библиотеки легко можно использовать для 328p. Вот рабочий блок для часов

У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сержант
- Сообщения: 152
- Зарегистрирован: 07 янв 2019, 16:02
- Имя: Сергей
- Благодарил (а): 5 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
c:\Program Files (x86)\FLProg\ideV2\libraries\iarduino_OLED_txt\src\DefaultFonts.c:1:124: fatal error: avr/pgmspace.h: No such file or directory
#include <avr/pgmspace.h> // Номер байта п/п: 0 1 2 3 4 5 Номер байта п/п: 0 1 2 3 4 5 ^
compilation terminated.
exit status 1
Ошибка компиляции для платы NodeMCU 0.9 (ESP-12 Module).
при использовании библиотеки из первого поста
как это исправить?
#include <avr/pgmspace.h> // Номер байта п/п: 0 1 2 3 4 5 Номер байта п/п: 0 1 2 3 4 5 ^
compilation terminated.
exit status 1
Ошибка компиляции для платы NodeMCU 0.9 (ESP-12 Module).
при использовании библиотеки из первого поста
как это исправить?
- kulibinsvv
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 18 сен 2015, 10:04
- Откуда: Омск
- Благодарил (а): 3 раза
- Поблагодарили: 5 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
Начнём:
1.
Компилятор на чистом английском вам сообщает, что не может найти avr/pgmspace.h. Ошибку вызывает файл:
строка 1, позиция 124.sergii2012 писал(а): 09 янв 2019, 21:54c:\Program Files (x86)\FLProg\ideV2\libraries\iarduino_OLED_txt\src\DefaultFonts.
Всё это можно было узнать, запихнув вывод компилятора в гугл/яндекс переводчик.
2. Наберитесь терпения и прочтите полностью всю ветку.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
-
- Сержант
- Сообщения: 152
- Зарегистрирован: 07 янв 2019, 16:02
- Имя: Сергей
- Благодарил (а): 5 раз
Вывод текста на дисплеи OLED c интерфейсом I2C и контроллером SSD1306
спасибо что помогаете мне.

#include <avr\pgmspace.h>
на
#if (defined(__AVR__))
#include <avr\pgmspace.h>
#else
#include <pgmspace.h>
#endif
олед запустился. вывожу время. на экране пару цифр и точки

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей