Графические Дисплеи

Использование дисплеев и обсуждение пользовательских блоков к ним
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#1

Сообщение Слимпер » 08.10.2017{, 20:49}

Предыстория.
СпойлерПоказать
Перебирал модули для Ардуины и нашел купленный еще 3 года назад экран Nokia 5110.
Поискал на форуме есть вроде готовые блоки нашел Вот эти, посмотрел их не понравилось что русский не заработал.
Решил сделать свои.
Блок для работы с монохромными дисплеями Nokia 5110, и OLED I2C на SSD1306 и цветным на ILI9341

Может выводить:
- текст, Латинский, Русский, нескольких размеров.
- маленькие картинки заданные массивом HEX (в блоки описано как)
- картинки с SD Карты
- рисовать геометрические приметив (круги, прямоугольники, линии и т.д.)

Блоки и примеры Ссылка

За основу взяты следующие библиотеки:
Adafruit-GFX-Library

Adafruit-PCD8544-Nokia-5110-LCD-library

Adafruit_SSD1306

Adafruit_ILI9341

Но такк как некоторые из них правил, то лучше удалить все похожие, а при компиляции проекта нужные сами добавятся

Перед использование лучше проверить папки *\FLProg\ideV2\libraries\ и C:\Users\*Имя пользователя*\AppData\Local\Arduino15 и удалить все паки в названии которых есть

Adafruit-GFX , Adafruit-PCD8544 , Adafruit_SSD1306
Это необходимо так как разные бывают разные версии и они не совместимы между собой.

Статейка про подключение Графический LCD дисплей 84x48 - Nokia 5110 и Arduin

Просьба ко всем, кто пробовал, отписываться заработало или нет.
Последний раз редактировалось Слимпер 13.10.2017{, 16:50}, всего редактировалось 1 раз.

bav123
Рядовой
Сообщения: 50
Зарегистрирован: 05.03.2016{, 09:22}
Репутация: 0

Графические Дисплеи

#2

Сообщение bav123 » 09.10.2017{, 17:26}

Слимпер, к сожалению сейчас времени нет, хотя несколько 5110 лежат без делл. Аа на будущее хотел спросить какие еще десплеи?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Графические Дисплеи

#3

Сообщение pan » 09.10.2017{, 17:52}

прикупил себе дисплей на чипе  ILI9341 такой . планировал прикрутить его к PICу, теперь думаю может к дуньке...,  но пока нет времени

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#4

Сообщение Слимпер » 09.10.2017{, 17:59}

bav123 писал(а):Аа на будущее хотел спросить какие еще десплеи?
Ну закала  OLED I2C на SSD1306 128x32  и 128X64, с ними проблем не должно быть много.
Еще 128*64 на ST7920, но тут не знаю информации меньше может так сразу и не выйдет.
Еще до кучи заказал TFT I2C 128 * 64 но там даже чип не указан.

Так что надеюсь OLED на SSD1306 сделать, а остальное по экспериментировать, может что и выйдет.

Добавлено (09.10.2017, 17:59)
---------------------------------------------
pan писал(а):прикупил себе дисплей на чипе  ILI9341 такой . планировал прикрутить его к PICу, теперь думаю может к дуньке...,  но пока нет времени
Ну для него вот библиотека совместима с Adafruit-GFX-Library.
Так что думаю не так сложно. Но там еще сенсорный экран есть и sd картридер, это уже другая песня.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#5

Сообщение Слимпер » 09.10.2017{, 18:03}

Кстати у меня где то тоже дисплей на  ILI9341 лежит, но так и не придумал куда его прикрутить.
Да и по подключению он кучу пинов должен занять. Еще файл с описание прикрепил.
Вложения
2-4_TFT_LCD_240.pdf
(963.2 КБ) 274 скачивания

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Графические Дисплеи

#6

Сообщение pan » 09.10.2017{, 18:57}

Слимпер писал(а):Да и по подключению он кучу пинов должен занять
 столько же как и 5110

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#7

Сообщение Слимпер » 09.10.2017{, 19:03}

pan писал(а):столько же как и 5110
Ну если только экран то 6 пин, а если сенсор и карта  еще 9, хотя может я и не прав.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Графические Дисплеи

#8

Сообщение pan » 09.10.2017{, 19:37}

ну сенсор и карта это уже как бы дополнительные плюшки. их наличие/отсутствие на дисплей не влияет). речь шла о самом дисплее. а дисплей по моему хорош при своих размерах , характеристиках и цене

Аватара пользователя
RedSky
Лейтенант
Сообщения: 531
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 64
Откуда: Днепропетровск
Имя: Алексей

Графические Дисплеи

#9

Сообщение RedSky » 10.10.2017{, 10:31}

Проверил  V0.7- при компиляции ошибка
СпойлерПоказать
In file included from pr3.ino:3:0:
z:\Ардуино\IDE\arduino-1.6.3\libraries\Adafruit-PCD8544-Nokia-5110-LCD-library/Adafruit_PCD8544.h:28:17: fatal error: SPI.h: No such file or directory
#include <SPI.h>
^
compilation terminated.
Ошибка компиляции.
Решается добавлением в блок 5110 #include<SPI.h>
А ещё из библиотеки можно цветочек убрать - освободится немного места.
Последний раз редактировалось RedSky 10.10.2017{, 11:54}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#10

Сообщение Слимпер » 10.10.2017{, 12:39}

RedSky писал(а):Проверил  V0.7- при компиляции ошибка
Странно у меня нет такой ошибки может библиотеки разные, в моей уже в файле
Adafruit_PCD8544.h есть объявление:
#include <SPI.h>;
По этому в первом сообщении писал 
Слимпер писал(а):Adafruit-GFX или Adafruit-PCD8544Это необходимо так как разные бывают разные версии и они не совместимы между собой.
RedSky писал(а):А ещё из библиотеки можно цветочек убрать - освободится немного места.
Вот тут вопрос, что и где, а то я не понял?
Последний раз редактировалось Слимпер 10.10.2017{, 12:46}, всего редактировалось 1 раз.

Аватара пользователя
RedSky
Лейтенант
Сообщения: 531
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 64
Откуда: Днепропетровск
Имя: Алексей

Графические Дисплеи

#11

Сообщение RedSky » 10.10.2017{, 13:02}

Библиотеки удалял, проверял в 1.6.3. В версии 1.8.1 действительно компилирует нормально.
При старте симуляции в протеусе мелькает эмблема Adafruit, что-то вроде цветка, в железе похоже мы просто не успеваем заметить.
Насколько я понял, это массив в файле Adafruit_PCD8544.cpp.
А нельзя ли сделать что-бы очерёдность #include <Adafruit_GFX.h>
                                                              #include <Adafruit_PCD8544.h>
всегда получалась такой?
Последний раз редактировалось RedSky 10.10.2017{, 13:20}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#12

Сообщение Слимпер » 10.10.2017{, 14:31}

RedSky писал(а):А нельзя ли сделать что-бы очерёдность
#include <Adafruit_GFX.h>
  #include <Adafruit_PCD8544.h>всегда получалась такой?
Тут прикол смотря в какой последовательности вставлять блоки, если сперва Главный затем Nokia 5100, то все правильно, если на оборот, то коряво.
RedSky писал(а):Насколько я понял, это массив в файле Adafruit_PCD8544.cpp
Не этот массив буфер экрана, его можно своей картинкой заменить, но удалять нельзя работать не будет. Ну это я так понял.

Добавлено (10.10.2017, 14:31)
---------------------------------------------
Слимпер писал(а):Ну для него вот библиотека совместима с Adafruit-GFX-Library.
Копнул внутрь библиотеки  Adafruit-GFX-Library. там недавно появился Adafruit_SPITFT

This is our library for generic SPI TFT Displays with address windows and 16 bit color (e.g. ILI9341, HX8357D, ST7735...)
Типа универсальный вариант для TFT SPI дисплеев. 
Если это так, то можно сделать универсальные блоки для таких дисплеев.

Аватара пользователя
RedSky
Лейтенант
Сообщения: 531
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 64
Откуда: Днепропетровск
Имя: Алексей

Графические Дисплеи

#13

Сообщение RedSky » 10.10.2017{, 15:12}

Так в том то и дело, что скетч собирается по разному.
Проверил - если закомментировать одни только данные работает нормально и флэша занимает на 504 байта меньше.
Раз мы уже взялись за эти дисплеи, есть предложение сделать график отдельным блоком. У меня что то похожее на график получается, только не могу понять, почему в блоке переменная adres не обнуляется. Кажется не разобрался с массивами.
В архиве проект, блок и модель.
Вложения
trend.zip
(420.1 КБ) 112 скачиваний

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#14

Сообщение Слимпер » 10.10.2017{, 16:55}

RedSky писал(а):У меня что то похожее на график получается, только не могу понять, почему в блоке переменная adres не обнуляется.
Ошибка тут
if(adres>75){adres==0;}
надо 
if(adres>75){adres=0;}

Ну насчет того как лучше делать график  не знаю надо думать.

Аватара пользователя
RedSky
Лейтенант
Сообщения: 531
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 64
Откуда: Днепропетровск
Имя: Алексей

Графические Дисплеи

#15

Сообщение RedSky » 10.10.2017{, 18:14}

Точно, if(adres>75){adres=0;} Так уже можно дальше работать.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#16

Сообщение Слимпер » 11.10.2017{, 18:13}

Версия 0.9 Ссылка та же в первом сообщении, т.к. выкладываю на яндекс диск.

Новое:
-Оптимизация расхода памяти поправив библиотеку Adafruit-PCD8544-Nokia-5110-LCD-library. Реализовал 
RedSky писал(а):Проверил - если закомментировать одни только данные работает нормально и флэша занимает на 504 байта меньше.
Для вступления в силу необходимо
СпойлерПоказать
Перед использование лучше проверить папки *\FLProg\ideV2\libraries\ и C:\Users\*Имя пользователя*\AppData\Local\Arduino15 и удалить все паки в названии которых есть

Adafruit-GFX или Adafruit-PCD8544
-Добавил вариант блоков геометрии Статические, т.е. убрал все входы перенес настройки в параметры. Это нужно для уменьшения расхода памяти.
Т.к.  удалил и вход En, то для выборочного вывода можно использовать  выполнения плат  
по условию.
Но все равно сложные фоны лучше делать картинкой.

Для того чтобы меньше весила сам библиотека и проекты с использованием блоков, в библиотеки Adafruit-GFX-Library удалил папку Fonts, все равно те шрифты не использовались в блоках, а библиотека из-за них весила больше 3 Мб.

Добавлено (11.10.2017, 18:13)
---------------------------------------------
Версия 0,10 Ссылка та же в первом сообщении, т.к. выкладываю на яндекс диск.

Добавил поддержку Экранов на SSD1306 по интерфейсу I2C.
Но так как нет дисплея в наличии, не тестировал.

Так как использовал не стандартную библиотеку Adafruit_SSD1306
СпойлерПоказать
Перед использование лучше проверить папки *\FLProg\ideV2\libraries\ и C:\Users\*Имя пользователя*\AppData\Local\Arduino15 и удалить все паки в названии которых есть

Adafruit_SSD1306

bav123
Рядовой
Сообщения: 50
Зарегистрирован: 05.03.2016{, 09:22}
Репутация: 0

Графические Дисплеи

#17

Сообщение bav123 » 12.10.2017{, 20:02}

Слимпер
у меня такой *узенький* oled 
https://ru.aliexpress.com/item....98.html

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#18

Сообщение Слимпер » 13.10.2017{, 11:48}

у меня такой *узенький* oled https://ru.aliexpress.com/item....98.html
Ну тогда можете попробовать ssd1306 I2C, по идеи в настройках надо указать ширину 128 высоту 32, в RST указать -1 (так как у вас нет такого вывода на плате).

bav123
Рядовой
Сообщения: 50
Зарегистрирован: 05.03.2016{, 09:22}
Репутация: 0

Графические Дисплеи

#19

Сообщение bav123 » 14.10.2017{, 17:18}

Слимпер
Flprog 2.5.1  Arduiono 1.8.1 
экран 5110 - кириллица выходит кракозябрами
oled (168 на 64) вообще не завелся, хотя от другого блока работает (ранее на форуме выкладывал кто то)
рекомендации из первого поста выполнил

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 26
Откуда: Новосибирск

Графические Дисплеи

#20

Сообщение Слимпер » 14.10.2017{, 17:28}

bav123 писал(а):экран 5110 - кириллица выходит кракозябрами
Это я сам проверял и все работает проблем нет.
Латиница нормально?
bav123 писал(а):oled (168 на 64) вообще не завелся, хотя от другого блока работает (ранее на форуме выкладывал кто то)
Ну тут все возможно, не проверял, а с каким работает?

Ответить

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