Глюки Lcd 2004, при работе в паре с расширителем портов на микросхеме MCP23S17
- Войдите на сайт для отправки комментариев
Добрый вечер, форумчане.
При выводе на Lcd 2004 с i2C, текст появляются глюки. Выражается это так.
ВАЖНО. На ардуине установлен шильд с 2-мя микросхемами MCP23S17. (PSI)
1. При открытии монитора порта, начальный текст может появиться или вместо него крокозябры. 50/50 как повезет.
2. Если повезло, печатаю по 1 букву, с задержкой, со смещением на одну позицию. После 5 или 6 буквы, опять крокозябры.
Помехи по питанию тут ни причем. Подключен по USB и самое главное при снятие шильда - все работает как надо.
Ради эксперимента, ставил lcd 1602 c i2C- тоже самое.
Библиотеки пробовал разные. Исключал русский шрифт. Не помогает.
Производитель шильда предлагает свою библиотеку, пока не получается установить. Их библиотека для шильда не запустилась. Использовал стороннюю.
Подскажите в какую сторону копать.
Пока пробую разобраться с библиотекой.
Вот мой проверочный скетч
#include <LCD_1602_RUS.h> #include <LiquidCrystal_I2C.h> #include <Wire.h> LCD_1602_RUS lcd(0x27, 20, 4); void setup() { Serial.begin(9600); lcd.init(); lcd.backlight(); lcd.setCursor(1, 0); lcd.print(L"ABTOMATИKA 5555555"); lcd.setCursor(8, 1); lcd.print(L"ПO №1.3"); lcd.setCursor(4, 2); lcd.print(L"OOO OОО 2019"); } void loop() { delay (2000); lcd.clear(); delay (2000); for (int i = 0; i < 15; i++) { lcd.setCursor(0 + i, 0); lcd.print(L"И"); delay (1000); } }
P/S Из проверочного скетча убрал библиотеку для подключение ExpanderShield на шину SPI
Ну раз при снятии шильда все работает нормально, то, наверное, дело в шильде. Вы бы хоть ссылку на шильд привели, желательно со схемой.
Да конечно.
Шильд
http://freeduino.ru/arduino/expander-shield.html
Схема
http://freeduino.ru/arduino/files/expander_shield_v1_scheme.gif
1. При открытии монитора порта, начальный текст может появиться или вместо него крокозябры. 50/50 как повезет.
2. Если повезло, печатаю по 1 букву, с задержкой, со смещением на одну позицию. После 5 или 6 буквы, опять крокозябры.
P/S Из проверочного скетча убрал библиотеку для подключение ExpanderShield на шину SPI
Ничего не понятно:
- Какой монитор если вы ничего туда не выводите?
- Что понимается под "печатаю по 1 букву"? Вывод "И" в строке 23?
- Если шильд подключен, но никае библиотеки для него не установлены - Дисплей нормально работает?
Ничего не понятно:
- Какой монитор если вы ничего туда не выводите?
В данном случае, да не ввожу, использую как кнопку "перезагрузки".
- Что понимается под "печатаю по 1 букву"? Вывод "И" в строке 23?
Именно так, в строке 2
- Если шильд подключен, но никае библиотеки для него не установлены - Дисплей нормально работает?
?
только эти установлены
Gagarin_IV, у них на странице сайта, что Вы дали (фридуино), есть ссылка на набор из двух библиотек: MCP23xxx и LiquidCrystal_MCP23x17. Там есть примеры. Попробуйте скачать и запустить примеры.
Имеено этим сейчас и занимаюсь, но дело в том что шильд не пошел с их библиотекой MCP23xxx.
Установил другую. MCP23S17-master. С ней заработал.
А библиотека LiquidCrystal_MCP23x17 ссылается на MCP23xxx.
Править библиотеки для меня сложно.
- Если шильд подключен, но никае библиотеки для него не установлены - Дисплей нормально работает?
?
только эти установлены
Вот если только эти установлены и просто воткнуть шильд, то дисплей работать перестает?
Вот если только эти установлены и просто воткнуть шильд, то дисплей работать перестает?
Да, так. Без шильда работает хорошо, с шильдом - плохо, очень плохо.
На шильде есть (красный) дип переключаетль. В каком положении там 5 и 6 стоят?
Странно, I2C вроде отключен. Мешать не должен. Попробуй все вниз переключить.
Попробовал, не помогло, разницы нет
asam, , Спасибо за подсказку. Поставил вот так вот, и все заработало. Видимо производители неправильный мануал написали. Напишу им))
PS и библиотека у них кривая
С помощью DIP переключателя выбирается либо режим SPI (включением контактной группы 1-4) для микросхем MCP23S17, либо режим I2C (включением контактной группы 5-6) для микросхем MCP23017. Также, в режиме I2C с помощью 7 и 8 контактной группы при необходимости шина I2C подтягивается через токоограничивающие сопротивления к шине питания +5В.
-----------
Включение - это ON. Написано прямо на переключателе. Причём тут производитель, если вы неправильно ставили рычажки?
Sadman, вы правы, я не правильно выставил переключатель, но только на контроллере. На шильде, я выставил 1-4 оn (вверх) остальные вниз. Все согласно мануала. Но на моей ардуинке, есть переключатель sda/scl. 20/21 пин перекидывает как в меге или уно. Вот тут я и накосячил.
Согласно мануала ON - вверх. 1-4- вниз, 5-8 -- вверх - это I2C режим. Всё, как на фото.
Поясню.
У меня ExpanderShield на шину SPI (с микросхемами MCP23S17). , те нужна сделать так
Выставляю так, lcd работает с ужасными глюками. потом виснит ардуина
Переставляю вот так (понимая что это не правильно)
Получаю более менее, стабильный экран. Изредка появляютяся шумы, ардуина продолжает работать.
В связи с этим делаю (ошибочный) вывод что не правильный мануал.
А дело было не вшильде.
а в этом переключателе.