Nokia 5110 LCD 1.44" + arduino
- Войдите на сайт для отправки комментариев
Чт, 17/04/2014 - 23:35
Доброго времени суток, Господа Форумчане!
Недавно приобрел на ебее вот такой экранчик: http://www.ebay.com/itm/141196897388?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
немного по-гуглил, и не нашел как его можно подключить к ардуино. Может кто сталкивался, можно ли его "скрестить" с ардуинкой? В наличии есть мега, нано, и микро-про.
на форуме есть же поиск, да и в гугле немало статей. совсем обленились
на форуме есть же поиск, да и в гугле немало статей. совсем обленились
И...?
воспользовался поиском... Везде используют монохромный экран от нокиа 5110.
Я же выложил ссылку на мой экран. У меня экран цветной! И хоть там и написано "Nokia 5110", к нему он отношения не имеет, по крайней мере я не встречал телефон с таким экраном....
По своему экрану нашел это: http://www.elecrow.com/display-c-77/lcds-oleds-c-77_88/144-128x-128-tft-lcd-with-spi-interface-p-855.html
Там есть ссылки на описание, библиотеки и схему! Но не могу найти схему, как его подключить к ардуине. И желательно бы пример скетча...
так ведь даже в названии темы указан дисплей нокии 51110, а он монохромный
в той либе что вы дали не увидел режим работы с SPI, вроде только паралельный режим, хотя на картинке явно дисплей с последовательным интерфейсом
так ведь даже в названии темы указан дисплей нокии 51110, а он монохромный
в той либе что вы дали не увидел режим работы с SPI, вроде только паралельный режим, хотя на картинке явно дисплей с последовательным интерфейсом
Вот-вот, и я о том же! Пока разобраться не могу, вот и попросил помощи!
А по поводу названия темы, указал 5110 потому что это название было в названии лота!
http://www.rockbox.org/wiki/pub/Main/SonyNWZE370/ILI9163.pdf
даташит на контроллер
там есть указание как включить режим послевательного интерфейса. если хватит знаний можно переделать либу. самое главное в либе есть. коды инициализации и тп. переделать функцию передачи данных и все должно работать теоретически
Сомневаюсь что хватит знаний для такой большой работы. Но я попробую.
Была бы документация на русском...
С наскока одолеть не получилось. Продаван, у которого покупал этот экран, обещнулся прислать кое-какую документацию, но пока молчит!
Наковырял скетч для экрана 1.8"
Распиновка экрана там такая
так вы сами в 9 посте написали куда подключать)))
так вы сами в 9 посте написали куда подключать)))
А где я там писал куда пин А0 экрана подключать?
сами посмотрите какой пин не сеовпадает с вашим дисплеем он и будет. китайцы бывают меняют названия
попробовал, не пашет!
Я пробую подключить этот экран к ардуино про микро. вот он: http://microcontrollershop.com/product_info.php?products_id=5625 Полюзуясь распиновкой с этого сайта, подключил по следующей схеме:
sck ->15, sda ->16, A0 -> 8, reset ->9, cs ->10. Ну, питание и подсветку, само собой.
Микросхема управления этим экраном ili9163, его нет в библиотеке UTFT.h . Но, здесь: http://forums.leaflabs.com/topic.php?id=74086 в первом вычитал что ili9163 и HX8353 совместимы, а он ести в библиотеке. Таким образом, строчка подключения библиотеки экрана приняла такой вид: UTFT myGLCD(HX8353,16,15,10,9,8);
Но и так не работает!
Со строчкой myGLCD(ST7735,16,15,10,9,8); пытается что-то показать, а именно вертикальные цветные линии
да поменяй на свои пины 234567 например. пины же можно назначить любые. я бы лично так сделал. с этими 15-16 пинами хрен разберешь. на одной микро
http://pacpac.ru/published/publicdata/WWWTPGSHOPRUPACPAC/attachments/SC/...
на другой
http://www.jayconsystems.com/media/catalog/product/cache/1/image/800x600...
и видно явно что копия и оригинал (обе микро, правда другая про микро, у меня такая) разные по крайней мере по исполнению и подписям пинов. и соответствует ли одно другому по пинам я хз. чип одинаковый, поэтому шиться ардуина будет, а вот остальное так или нет хз
В скетче для 1.8" экрана поменял строчку библиотеки экрана на:
UTFT myGLCD(S6D02A1,16,15,10,9,8); и экран заработал... только начала координат в нижнем левом углу, а не в верхнем левом и изображение получается повернутое на90 градусов против часовой стрелки. Да и разрешение кажется не совпадает.
Как можно перенести начало координат, чтоб изображение было "правильным"?
Разобрался! В строке myGLCD.InitLCD(); в скобках надо указать ориетацию изображения. По умолчанию идет альбомная.
Строчку меняем на myGLCD.InitLCD(PORTRAIT); и радуемся жизни!
Забавно, про правильное отображение, экран можно повернуть как хошь. Да ладно, я пару штук таких заказал, так что спасибо за наводку, наконец то будет чем побаловаться.
Итак, двигаемся дальше. С выводом текста на экран проблем не возникло. Возникла проблема с выводом изменяющихся значений, а точнее проблема возникает при изменении разрядности с большего на меньший(к примеру с 10 на 9 или с 100 на 99). Последняя цифра не стирается, а просто остается на экране. На экранах 1602 и 2004 эту проблему решал выводои пары-тройки пробелов после значения. Это "прокатывало" потому, что там текст можно было выводить подряд, т.е. при изменении разрядности пробелы смещались и стирали ненужные символы. Тут же для вывода текста указываешь место, где его выводить.
Можено конечно в конце каждого цикла или перед выводом значения закрашивать всё значение пробелами, но тогда значение немного мигает, а это не АЙС!
Подскажите, как можно решить эту проблему?
Подскажите, как можно решить эту проблему?
Нарисовать прямоугольник в соответствующей области экрана.
Подскажите, как можно решить эту проблему?
Нарисовать прямоугольник в соответствующей области экрана.
И...? Что это даст?
зарисует цифру которая остается)
зарисует цифру которая остается)
Я понял что надо зарисовать. Просто думал, может есть какой нибудь стандартный метод. Зачем квадратом зарисовывать, если можно просто пробелом?
Вот как вышел из этой ситуации:
Как правильно "выкинуть" из библиотек все лишнее, чтоб уменьшить размер скетчей? А то в скетч не влазеет другие библиотеки.
К примеру, можно ли из библиотеки к экрану выкинуть компоненты для экранов с другим процем? И поможет ли это?
то что не используется записано не будет, но вот много условий для разных процессоров, контроллеров это можно выкинуть
то что не используется записано не будет, но вот много условий для разных процессоров, контроллеров это можно выкинуть
Я попробовал создать новую библиотеку из скаченой, пока не получилось. При компиляции скетча сильно ругается, чуть ли не матом )))
А как определить что можно выкинуть? И можно ли просто закоментить ненужные строчки?
ковырять и ковырять
вариант с закоментированием строк прокатывает! сбросил уже около 4000 байт. еще коментить и коментить!
Перелопатил библиотеку. Скетч, который раньше "весил" 20460 байт, сейчас весит 11368 байт! Теперь наверное и в нано можно будет залить! Теперь библиотеку шрифтов буду лопатить. Оставлю один шрифт вместо трех!
ну так и продолжайте пока не перестанет работать
ну так и продолжайте пока не перестанет работать
Не, я если что удалю, сразу проверяю на работоспособность. Если не работает - возвращаюсь на шаг назад!
С библиотекой шрифтов получилось еще около 3000 байт скинуть...
А подскажите есть ли функция для данного экрана которая позволит перевернуть изображение верх ногами?
И каким образом можно осуществить память последнего экрана, например если есть много экранов с разными параметрами и переключением, так вот как зделать чтоб влючался при перезагрузке не первый а крайне включеный экран???
?
Кто нибудь использовал EEPROM для сохранения предидущего екрана(если у нас несколько экранов которые переключаются одной кнопкой по очереди) после выключения устройства?
например вот(код не полный и с ошибкамы то я так набросал для принципа) у меня три экрана и нужно чтобы после выключения оставался тот который был крайним до выключения
и данная библиотека #include <EEPROM.h> встроеная или нужно докачивать?
?
да почему нет. просто записываешь номер экрана и все
Если запись в EEPROM будет происходить редко, то проблем не вижу. Если же часто, например, каждую минуту, чтобы сохранить текущий статус, то долго он не проживет. Судя по даташит при ежеминутной записи EEPROM умрет через ~70 суток работы
ячеек много, помучал одну, переходи на другую
ячеек много, помучал одну, переходи на другую
Уже интересней. Можно на код посмотреть?
Особенно интересует метод организации транзакции при записи в EEPROM. Я уже сталкивался с проблемой целостности данных в EEPROM в случае неожиданных скачков питания, выключений или перезагрузок. В итоге отказался от плавающих адресов ячеек в EEPROM, так как ведение в нем еще и журнала транзакций сводило всю экономию на нет.
Я так понял что мне нужно в моем коде записать текущее значение m которое указывает на выбраный экран
а как это грамотно реализовать, киньте пожалуйста примеры если есть ?
И по поводу библиотеки нужно со стороны потцеплять ?
а то мало понятной информации по работе EEPROM