OLED дисплей 128х64 SPI - пользовательский блок на Си

Использование дисплеев и обсуждение пользовательских блоков к ним
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение Сергей »

slavas писал(а):Вы не пробовали сделать блок для вывода иконок?
Пока нет.
Установил сегодня этот блочек в обогреватель, подключил нагрузку и началось... Спустя 5-20 мин после включения на экране появляются светящиеся пиксели. В хаотичном порядке по всему экрану, зажигаются по несколько штук и горят, пока с розетки не выдернешь. В строке флоат, с показанием температуры, бывает добавляются еще какие то символы и видно перенос текста на другую строку. В общем программа работает, но на экран иногда выводится непонятно что. Похоже в экран проходят команды функций отрисовки пикселей, со случайными координатами XY.
Буду с этим разбираться, на столе то все работало две недели. Может помехи какие то  .
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 34 раза
Поблагодарили: 6 раз

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение vovka1973 »

Сергей писал(а):Вот видео рабочего проекта
а блок можете выложить?
Изображение
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение Сергей »

Еще не доделан.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
robocraft
Рядовой
Сообщения: 74
Зарегистрирован: 22 ноя 2016, 09:10
Откуда: Москва

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение robocraft »

Сделал блок очистки экрана, что бы помигать можно было экраном или избавится от накладки слов.
Перед блоком рекомендую ставить триггер RTrig.

Блоки для вывода I2C и на русском Взял отсюда
С этими блоками глючит генератор. Думаю может от часов реального времени генер прикрутить.
Ещё эти блоки 52% памяти отжирают.
Попробую теперь всё это дело к меню прикрутить, с часами, установкой времени и будильником.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось robocraft 12 дек 2016, 11:29, всего редактировалось 1 раз.
☃ Loading... ██████████████] 99%
robocraft
Рядовой
Сообщения: 74
Зарегистрирован: 22 ноя 2016, 09:10
Откуда: Москва

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение robocraft »

Вот пример, меняет на экране слово Привет на слово Пока.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
☃ Loading... ██████████████] 99%
Аватара пользователя
slavas
Лейтенант
Сообщения: 596
Зарегистрирован: 14 сен 2015, 22:29
Откуда: Санкт-Петербург

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение slavas »

Сергей, это помехи. В коде у Вас нет команды clear, попробуйте привязать её к if (text != text_)
тогда если на входе изменится строка пройдёт очистка экрана далее display.println(text_); только мне кажется эта строка выводит на экран с переводом строки.

Добавлено (12.12.2016, 12:13)
---------------------------------------------
robocraft, Это я рисовал этот блок, там вместо delay использован таймер вот и конфликтует. Я пробовал без задержки и тоже нормально.
robocraft
Рядовой
Сообщения: 74
Зарегистрирован: 22 ноя 2016, 09:10
Откуда: Москва

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение robocraft »

slavas, как сделать без задержки?
☃ Loading... ██████████████] 99%
Аватара пользователя
Dev1
Майор
Сообщения: 1045
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас
Поблагодарили: 3 раза

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение Dev1 »

robocraft писал(а):Вот пример, меняет на экране слово Привет на слово Пока.
В библиотеке OLED I2C данные загружаются в буфер лсд. Для вывода на экран используется функция Update. Ставиться в конце выполняемых блоков. Не стоит ставить Update дополнительно в других местах, начинает мигать экран. Функция Clear совсем очищает дисплей с буфером.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x :shok:
Аватара пользователя
slavas
Лейтенант
Сообщения: 596
Зарегистрирован: 14 сен 2015, 22:29
Откуда: Санкт-Петербург

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение slavas »

robocraft, в главном блоке потрите всё что относится к таймеру.
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение Сергей »

slavas
slavas писал(а):В коде у Вас нет команды clear
в том то и дело что я не хочу очищать весь экран. Он с каждым проходом программы мигает.
В моем случае надо с помехами бороться. Наверно очистку сделаю раз в пару минут, но как помехи побороть пока не знаю.
Аватара пользователя
slavas
Лейтенант
Сообщения: 596
Зарегистрирован: 14 сен 2015, 22:29
Откуда: Санкт-Петербург

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение slavas »

точки это мусор в памяти экрана я бы попробовал экран заэкранировать.
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение Сергей »

slavas, а как этот мусор в памяти экрана может туда попасть? Без подключенной нагрузки работал нормально. Когда подключил тэн на 1500 Вт, через родную 12В реле, а родную коммутирую ардуиновской 5В, тогда начались проблемы. В дальнейшем поставлю твердотельную, она еще в пути, напишу результат.
Аватара пользователя
slavas
Лейтенант
Сообщения: 596
Зарегистрирован: 14 сен 2015, 22:29
Откуда: Санкт-Петербург

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение slavas »

У меня такая же фигня с акваконтроллером, экран nokia5110 дубовый и ему помехи пофиг зато неудачно сделал переключение, сначала изменение состояния выхода и далее запись состояния в переменную, похоже это происходит одновременно с помехой от реле и в память пишется бред. На экране нагрузка включается свет мигает и выключается. Правда есть ещё один косяк у меня переключается состояние  по достижению времени и если время прошло то всё.

Добавлено (13.12.2016, 14:20)
---------------------------------------------
Вот схема твёрдотельного реле
Изображение
golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20 фев 2016, 00:05

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение golowa70 »

Сергей, удалось ли добиться приемлемого результата с блоками дисплея?
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение Сергей »

golowa70, по блокам ничего нового не делал. Жду твердотельное реле. Должна быть уже на подъезде. 
По помехам, заметил их увеличение при длительном включении нагрузки. Возможно за это время прогревается весь обогреватель с отсеком электроники, возможно все же помехи от наводок. Однозначно что глючить контроллер начинает спустя какое то время после включения нагрузки. При отключенной нагрузке (заданная темп. минимальна) глюков нет вообще никаких.
bav123
Рядовой
Сообщения: 52
Зарегистрирован: 05 мар 2016, 09:22

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение bav123 »

slavas, в ваших блоке при подачи стринг вместо точки выводится буква *ю*
т.е. при просмотре температуры или влажности от датчика десятые доли отделены не точкой а ю
Аватара пользователя
slavas
Лейтенант
Сообщения: 596
Зарегистрирован: 14 сен 2015, 22:29
Откуда: Санкт-Петербург

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение slavas »

Это проблема русификации я только блок делал.
bav123
Рядовой
Сообщения: 52
Зарегистрирован: 05 мар 2016, 09:22

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение bav123 »

Понятно, а можно сделать вывод только английкого языка?
golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20 фев 2016, 00:05

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение golowa70 »

При использовании блоков таймеры начинают считать не корректно, с большой задержкой , даже если выводить раз в секунду.
Похоже используемая библиотека работает на прерываниях и тем самым мешает функции millis считать время корректно. Кто то сталкивался с такой проблемой ?

Добавлено (16.02.2017, 22:59)
---------------------------------------------
Может кому пригодится. Выяснил причину задержки таймеров при использовании библиотеки OLED_I2C. Функция update(); запрещает прерывания и соответственно функция millis() не правильно считает время.
Поправить можно в папке с библиотекой в файле HW_AVR.h в строке 24 закоментировать noInterrupts() ;
zikkgaz24
Сержант
Сообщения: 132
Зарегистрирован: 26 авг 2016, 22:53
Откуда: Красноярск

OLED дисплей 128х64 SPI - пользовательский блок на Си

Сообщение zikkgaz24 »

ребята сыр бор получаеться !!!
предлогаю обьединить силы и и разробатывать и доробатывать блоки и на SPI и  I2C
и в одном форуме а то я собирал все по кусочкам в итоге вообще ничего не работает и что для чего толком непонятно
описания в блоках вообще нету никаких !!!!! огромный минус
возмите в пример слимпера у него все четко и описание и функционал и обьяснение форумчанам очень хорошее
Ответить

Вернуться в «Дисплеи и индикаторы»

Кто сейчас на конференции

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