Всем доброго дня!
Даный дисплей как-то мелькнул в разделе «Специально для Вас». В отзывах — его обзывали заменой текстового LCD на 2 строки по 16 символов. Так ли оно?
Дисплей ехал ко мне 4 недели. Заказывал 2 штуки отдельными заказами, иначе доставка сильно дорожала. Но приехали оба в одном стандартном желтом конверте с «пупырками».
Заказывал версию на 5 вольт. Судя по фото со страницы товара, от 3,3-вольтовой версии она отличается только наличием стабилизатора. Так что лучше брать ее. Разница в стоимости не значительна, и в 3,3 ее можно переделать просто установкой перемычки.
А вот подсветка — сделана одинаково. От 3,3В, с резистором на 10Ом — потребляет 30мА. От 5 вольт — я ставил два по 100Ом в параллель, получилось 40мА и хорошая яркость, считаю эти величины оптимальными. Подсветка равномерная.
Фото в работе с примера
этой библиотеки:
Полутона на картинке — обусловлены динамической картинкой. Сегменты «зажигаются» моментально, а вот «гаснут» — примерно четверть секунды.
Конкретно в моих экземплярах — картинка была очень плохой, поэтому пришлось чуть поправить контраст. Для этого нужно открыть файл LCD_UC1609.H, найти соответствующую строку и заменить значение на 0x1B.
Так выглядит измененная строка:
#define UC1608_DEFAULT_GN_PM 0x1B
Еще одна хорошая
библиотека. Тут уже контраст можно задать в программе, при вызове метода begin.
Углы обзора — такие же, как и в текстовом LCD. С боков еще терпимо, а вот вверх и вниз — уже при 45 градусов — уходит в негатив.
Картинка под углами 45 градусов:
Размеры, со страницы товара:
в сравнении с 1602
Плата сзади:
Перемычка J1 закорачивает стабилизатор 3,3 Вольт.
J2 — соединяет вывод анода подсветки и выход стабилизатора.
J3 — закорачивает выводы катода подсветки и GND.
R2 и R3 — соединенные параллельно резисторы подсветки, включены в цепь катода.
Цоколевка соответствует модулю дисплея на контролере ST7735.
Дисплей по своему интересный, но за такие деньги хочется лучшего контраста и быстродействия.
UPD: в комментариях была озвучена идея использовать дисплей, как экономичный индикатор, если отключить подсветку.
Вот как ин работает в инверсии, при среднем дневном освещении:
Напоминает первые мобильники с ТФТ дисплеями.
А вот так — если подсветка включена через резистор 5,6кОм на 5В. Видно намного лучше.
Когда отсоединил Vcc индикатора от питания — он продолжал работать, питания хватало от сигнальных линий.
Ток потребления без подсветки — 3мА.
По току потребления:
Когда Vcc отключен и линии даных подключены напрямую к ардуине — дисплей инициализируется и работает, Потребление на Vcc, при его подключении, составляет 3мА. Но когда лини даных подключены к 3,3В — потребление по Vcc падает до 700мкА.
Видно, входы контролера не сильно толерантны к 5 вольтам.
Т.е. возможно ли использовать такой (малопотребляющий) дисплей для устройств с низким потреблением.
Хорошая идея
Понятно, что 'уже 5.6к' (~0.35 мА) достаточно для нормальной видимости дисплея. Это здорово. Но… всё портит общий ток потребления (3 мА). Цифра не очень большая, применять можно, но 'ожидалось' на порядок ниже.
Теперь оно стало гораздо интереснее, надо заказать. «Позитивный» конечно.
off/ хотя, для stm32 как-то совершенно не нужное ))
а то я купил, подключил к openevse экран горит и квадратики — сзади контрастность отверткой кручу а ни чего не появляется, подкидываю другой экран — там и цифры показывает и буквы, всё как надо.
можно самому его инициализировать?
Я как-то пытался переделать библиотеку двустрочного экрана под себя. И пока модифицировал и вычищал все лишее из функций — всё было нормально. Но как только я начал модифицировать сам класс, т.е. удалять из него описание пустых функции (я понимаю, что библиотека наследует многое из базового класса Print, и не всё можно удалять, переименовывать), то столкнулся с неразрешимой проблемой:
оболочка Ардуино сама по себе ничего не компилирует, вместо неё это делает другая программа из командной строки. А оболочка не умеет интерпретировать все возвращаемые ошибки… И поэтому понять, в чём ошибка — невозможно!
Вобщем вопрос: А есть ли другие, нормальные оболочки для компиляции программ Atmega328 с этими же самыми библиотеками? Или единственный вариант только изучать ассемблерный компилятор от Atmega?
Print класс как раз и оборачивает нудный посимвольный вывод строки (разбивает строку на символы и вызывает write() для каждого символа)
А дальше, в первую очередь с целью изучения ЭТОГО ардуиновского языка, а во вторую очередь для уменьшения объёма программы (в идеале нужно разобраться, как вообще отключить и уничтожить все стандартные библиотеки, и переписать все нужные функции на ассемблер), вобщем хотел я объеденить это всё в один файл… А с этим тупик!!!
Так как самые главные функции в этих файлах описаны как «class LCD: public Print», а арудиновская оболочка вообще никак не умеет работать с классами, ничего о них не знает, и поэтому и ошибок в них даже не пытается интерпретировать (которые ей даёт внешний компилятор, вызываемый из командной строки).
Поэтому ещё раз повторяю вопрос: есть ли для Ардуины нормальные компиляторы? Или единственная нормальная среда компиляции, это ассемблер от Atmega?
На ассемблер уже никто не пишет. Вы на нем проект 5 лет писать будете.
Судя по названиям файлов я видел эту библиотеку. Она очень мудреная и тормозная. Пробуйте ту что я давал. Она проще для понимания и её легче покромсать, тк наследуется только Print класс (ну и i2c заменить если ардуино средой не пользуетесь).
А зачем вы пытались уменьшить код? Куда он у вас не влазит? Я пробовал она даже в ATtinni85 спокойно заходит.
… Уже давно хочу сделать такое, но без нормального компилятора не знаю, не есть ли смысл вообще начинать… с ГПС приёмника считывать время, а это работа с длинными строками. Потом выделенное время, если разберусь, дополнительно синхронизировать с «входом-мигалкой» ГПС модуля, для более точной синхронизации, но для начала можно не заморачиваться с этим.
Затем выкинуть двухстрочный экран, и других вариантов не вижу — повесить несколько I2C расширителей портов, чтоб управлять платой с шестью ЛЕД-цифрами со статической индикацией. Боюсь, что просто так взять и впихнуть это в ардуину с гигантскими библиотеками, и без возможности по человечески смотреть на ошибки — не получится.
Индикация — никаких i2c, все гораздо проще делается кучкой hc595 (по одной на цифру). Вешается на spi, как родное.
Драйверы для железа в компах тоже асм. Медицинское оборудование тоже асм, знаю лично нескольких людей оттуда.
Пустой проект — я имею ввиду, это только с подключенными библиотеками, без настоящей программы. «Hellow word», сказанный каждой железяке, так сказать! И больше ничего.
Насчёт неиспользуемых функций у меня тоже есть своё устоявшееся мнение: да компилятор может удалить совсем неиспользуемую функцию. Но вот всякие лишние if..else, и передачу неиспользуемых констант в функции он вполне себе может оставить!
Размер прям идеален для меня.
Сам как раз ищу варианты 4"-5" на поиграться.
Можно взять чуть дешевле со специфичным разъёмом если критично, но мне важнее иметь более дружелюбный интерфейс.
Сейчас как раз облизываюсь на 5" за $20 и парочку разных 2.4" по $10.
Почему только в личку? Просто интересно.
Для этого экранчика случайно нет вариантов с i2c?
Подсветка отдельно сделана, но можно подсоединить на питание. У 1602 подсветка тоже не по I2C идёт.
Гирлянду особо не собрать, так как у всех одинаковый адрес на I2C. Некоторые предлагают выбор на два адреса, но редко больше.
А на этой плате вроде как есть CS, который потенциально можно использовать для гирлянды. Но это опционально.
Но 100% гарантии нет и, возможно, придется пошаманить с регулировкой контрастности.
Про либу про экран я тоже сказал выше, кэп.
А по поводу «готового», то есть разные критерии. Для многих datasheet — это уже что-то готовое, так как не надо ничего ревёрсить. Но есть и те, для которых «готовая либа» — это целая система с GUI, где надо несколько кликов сделать и будет сразу чудо.
Вариант с datasheet'ом я как раз и предложил. А либа стандартная для I2C.
Ток потребления порядка 0.3 мА.
На экране фабричная пленка, поэтому — сами понимаете.
Отбило всякую охоту помогать. (плюсовать уже не_надо).
P.S.
Ток потребления зависит от количества включенных точек.