lcd 1602 и конвертер i2c
- Войдите на сайт для отправки комментариев
Добрый день, нужен совет. Столкнулся с проблемой подключения конвертера i2c to LCD1602 (такой http://ru.aliexpress.com/store/product/IIC-I2C-interface-LCD1602-adapter...) к lcd 1602, а в частности, дисплей с данным модулем выводит только ПЕРВЫЙ символ из всей строки. Дисплей до этого был подключен напрямую к ардуине и все было ок, адрес для данного конвертера выставил 0x27, пробовал другой дисплей, перепробовал кучу библиотек - реакция одна, выводит только первый символ. Подскажите пожалуйста куда копать
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
lcd.init();
lcd.backlight();
lcd.print( "test" );
}
void loop()
{
}
напишет на экране только "t"
Собрал скетч на win машине(ноут супруги), и проблема ушла !!! Когда скетч собираю на любимом ubuntu, тогда lcd выводит только один символ. Странно, использую одну библиотеку ... может кто-то сталкивался с подобной проблемой...
Собрал скетч на win машине(ноут супруги), и проблема ушла !!! Когда скетч собираю на любимом ubuntu, тогда lcd выводит только один символ. Странно, использую одну библиотеку ... может кто-то сталкивался с подобной проблемой...
Сохраните скетчи до заливки в ардуину и сравните хотя бы их md5sum. Версии IDE под win и под linux - одинаковые?
Вы были правы. Версия ide в linux 1.6.6 , в win 1.6.4, разница между хексами в 4 байта.
Вы были правы. Версия ide в linux 1.6.6 , в win 1.6.4, разница между хексами в 4 байта.
и, какова ценность этого знания?
никакого...
Мы убедились в том, что в ардуину заливаются разные программы.
To:TS По-хорошему, надо синхронизировать версии IDE и версии библиотек LiquidCrystal_i2c - они тоже бывают разные...
http://arduino.ru/forum/programmirovanie/lcd-i2c-partizanit - вот здесь еще можно почитать...
Да, надо воспользоваться одинаковыми версиями .... Спасибо за ссылку.
Здравствуйте. Пару месяцев назад приобрел LCD1602 с i2c. На сайте был указан адрес 27. В реале оказался 3F.
Тоже наткнулся на это. В виндовой версии 1.6.6 перепробовал больше десятка библиотек. Эффект одинаков. На экране только первый символ. В 1.0.5 и 1.6.4 всё нормально.
Этот баг, у меня, проявился только на версии 1.6.6. Проблема в возвращаемом значении функции print.write(). Исправленную библиотеку можно скачать здесь https://github.com/marcoschwartz/LiquidCrystal_I2C
Тоже наткнулся на это.
Этот баг
Мужики, так как ваши посты идут под моим,
На сайте был указан адрес 27. В реале оказался 3F.
то хотелось бы знать, что вы имеете ввиду под местоимением "это"?
Добрый день, нужен совет. Столкнулся с проблемой подключения конвертера i2c to LCD1602 (такой http://ru.aliexpress.com/store/product/IIC-I2C-interface-LCD1602-adapter...) к lcd 1602, а в частности, дисплей с данным модулем выводит только ПЕРВЫЙ символ из всей строки. Дисплей до этого был подключен напрямую к ардуине и все было ок, адрес для данного конвертера выставил 0x27, пробовал другой дисплей, перепробовал кучу библиотек - реакция одна, выводит только первый символ. Подскажите пожалуйста куда копать
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
lcd.init();
lcd.backlight();
lcd.print( "test" );
}
void loop()
{
}
напишет на экране только "t"
Под багом подразумевался вывод на lcd первого символа строки, а не строки целиком через библиотеку LiquidCrystal_I2C
Этот баг, у меня, проявился только на версии 1.6.6. Проблема в возвращаемом значении функции print.write(). Исправленную библиотеку можно скачать здесь https://github.com/marcoschwartz/LiquidCrystal_I2C
Проверил, реально помогло.
Вообще нужно быть аккуратнее с перепрыгиванием с одной arduino ide на другую.
Я себе настроил 1.5.8, добавил в boards.txt все нужные МК, оптибуты и всё такое и жизнь прекрасна.
Более новые оболочки запускаю иногда чисто из любопытства, практической ценности в них не вижу. В них чаще добавляют поддержику новых плат и необкатанные версии библиотек, чем фиксят старые ошибки. В результате в новых оболочках глюков больше, чем в старых.
Однажды у меня МК прошился только в оболчке версии 1.0.1, другие отказались. Так и не понял что это было, но на всякий случай её оставил на память))
Вообще нужно быть аккуратнее с перепрыгиванием с одной arduino ide на другую.
Я себе настроил 1.5.8, добавил в boards.txt все нужные МК, оптибуты и всё такое и жизнь прекрасна.
С одной стороны полностью согласен, что не следует бездумно менять версии IDE. Работает - не трогай. Но с другой стороны аргументация "все нужные МК", "и всё такое" не вызывает доверия к "проповеднику".
Добрый день! Столкнулся с той же проблемой.
Оказалось, в библиотеке по умолчанию используется функция, не возвращающая никакого значения. Как результат — выводится только первый символ.
В библиотеке:
Добавляем в наш тестовый пример #define ARDUINO 100, и текст начинает выводиться как надо:
Оказалось, в библиотеке по умолчанию используется функция, не возвращающая никакого значения. Как результат — выводится только первый символ.
Большое СПАСИБО!!!
Библиотеку автор обновил. Теперь работает - проверено в 1.6.7
https://github.com/marcoschwartz/LiquidCrystal_I2C
Добрый день, нужен совет. Столкнулся с проблемой подключения конвертера i2c to LCD1602 (такой http://ru.aliexpress.com/store/product/IIC-I2C-interface-LCD1602-adapter...) к lcd 1602, а в частности, дисплей с данным модулем выводит только ПЕРВЫЙ символ из всей строки. Дисплей до этого был подключен напрямую к ардуине и все было ок, адрес для данного конвертера выставил 0x27, пробовал другой дисплей, перепробовал кучу библиотек - реакция одна, выводит только первый символ. Подскажите пожалуйста куда копать
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
lcd.init();
lcd.backlight();
lcd.print( "test" );
}
void loop()
{
}
напишет на экране только "t"
Спасибо помогло! Что только не перепробовал!
Возможно я спрашиваю глупость , занимаюсь микроконтроллерами недавно, но никак не могу вкурить зачем I2C расширители, если полноценная нано с аппаратным непривязанным к конкретному адресу I2C несколько дешевле практически любого расширителя. Предположу ненадежность программного решения против аппаратного? Прошу прощения если обсуждаю не в той теме, переместите плз куда надо.
Наверно потому что ног почти не занимает, а те что занимает может делить ещё с кучей устройств?
НАНУ тоже можно подключить к шине и она дешевле
Здравствуйте, подтвердите пожалуйста утверждение, что НАНА дешевле конвертора для 1602 ссылочкой.
Здравствуйте, подтвердите пожалуйста утверждение, что НАНА дешевле конвертора для 1602 ссылочкой.
Вы с какой моделью сравниваете?
я сравниваю не адаптер к конкретному дисплею а полновесные расширители
https://ru.aliexpress.com/item/PCF8575-IO-Expander-Module-I2C-To-16IO-Mo...
с НАНОЙ:
https://ru.aliexpress.com/item/1-Nano-3-0-Arduino-Nano-CH340-usb/3283236...
я сравнивал с конвертером из заголовка темы
(правда теме уже много лет :) )
цена на тот конвертер примерно 50 рублей на сегодняшний день.
Ну так полновесный расширитель, это PCF8574 в SOP16 + 1конденсатор + 5 резисторов и 1 транзистор = 18р+1р+1р+1р = 21р.
Голая атмега в 32 ногом корпусе ~ 100р.
Всего в пять раз дешевле.
Ну а если хватает пинов, то расширитель никто ставить и не будет.
Ну так полновесный расширитель, это PCF8574 в SOP16 + 1конденсатор + 5 резисторов и 1 транзистор = 18р+1р+1р+1р = 21р.
Голая атмега в 32 ногом корпусе ~ 100р.
Всего в пять раз дешевле.
Ну а если хватает пинов, то расширитель никто ставить и не будет.
можете ссылочку на это добро дать?
Издеваетесь? PCF-ка на али, так и набирать, а конденсаторы-резисторы с доноров дома. Номиналы - 3к3-10к для I2C, 220ом на затвор полевика, 10к между затвором и GND. И Ом 10-50 последовательно с цепью подсветки. Конденсатор - >5мкФ по питанию PCF-ки.
Я кондеры-резисторы сотнями покупаю, цены оттуда.
Издеваетесь? PCF-ка на али, так и набирать, а конденсаторы-резисторы с доноров дома. Номиналы - 3к3-10к для I2C, 220ом на затвор полевика, 10к между затвором и GND. И Ом 10-50 последовательно с цепью подсветки. Конденсатор - >5мкФ по питанию PCF-ки.
Я кондеры-резисторы сотнями покупаю, цены оттуда.
Ну -ну , товарисч, полегче. Видели у него номер в конце-9? Клапауций тоже когда-то был однозначным. А стал...
Вопрос к Тс - а где предидущие восемь ихтиандров?
))) 9 это 2009 год. уже тогда мой ник был занят
1. Расширитель PCF8574 - 8-и битный и да, стоит значительно дешевле: отдельная мелкосхема ~ 15-20руб/шт. и собственно расширитель ~ 65руб.шт., а Вы привели ссыль на 16-и битный расширитель портов, да ещё и готовую плату. Впрочем, PCF8575 тоже стоит под сотку.
2. Расширитель используют для увеличения количества управляемых устройств при одном программном коде в одном камне. Вторую нанку, можно конечно же подцепить к первой по I2C тоже, но писать придется уже две программы и во взаимодествии друг с другом при резделенных ресурсах (данные программ у каждой свои). В этом есть свои плюсы и минусы для тех или иных применений.
3. Это сейчас просто дешевые варианты попропали, видимо в связи с нововведениями по доставкам, таможням и налогам. В прошлом году брал такие же расширители на 8 ног по 24-40руб, а на 16 по 80-100. Нанки так и вообще брал по 60 или около того рублев. Ещё успел закупиться ШИМ-расширителями на 16 портов по 12 бит. и тоже рублей по 110.
Ну вот так как-то.
Регулируемый Подсветка из Интерфейс модуль IIC I2C twispi модуль Serial совета Порты и разъёмы для 1602 ЖК-дисплей Дисплей для Arduino UNO
https://s.click.aliexpress.com/e/byJ6leC1 38 рублей,Карл!
это дорого. В прошлом году 24р был с бесплатной доставкой. Это же только модуль интерфейса, без самого экрана
У всех у кого проблемы с высвечиванием только первых символов :
Среда Arduino IDE выше 1.6.5 некорректно работает с библиотекой LiquidCrystal_I2C и всеми её клонами.
Потому что среда стала проверять наличие возврата функций, а библиотека корявая. И требуется в LiquidCrystal_I2C.cpp, у метода inline size_t LiquidCrystal_I2C::write(uint8_t value) прописать возврат результата return 1;
Чтобы метод из этого:
inline size_t LiquidCrystal_I2C::write(uint8_t value) {
send(value, Rs);
}
превратился в этот:
inline size_t LiquidCrystal_I2C::write(uint8_t value) {
send(value, Rs);
return 1;
}
И тогда будет вам счастье...
подпишусь