Глюки Lcd 2004, при работе в паре с расширителем портов на микросхеме MCP23S17

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

Добрый вечер, форумчане.

При выводе на 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

 

 

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

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

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018
asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Gagarin_IV пишет:

1. При  открытии монитора порта, начальный текст может появиться или вместо него крокозябры. 50/50 как повезет.

2. Если повезло, печатаю по 1 букву, с задержкой, со смещением на одну позицию. После 5 или 6 буквы, опять крокозябры.

 

P/S Из  проверочного скетча убрал  библиотеку для подключение ExpanderShield на шину SPI

Ничего не понятно:

- Какой монитор если вы  ничего туда не выводите?

- Что понимается под "печатаю по 1 букву"? Вывод "И" в строке 23?

- Если шильд подключен, но никае   библиотеки для него не установлены - Дисплей нормально работает?

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

asam пишет:

Ничего не понятно:

- Какой монитор если вы  ничего туда не выводите?

В данном случае, да не ввожу, использую как кнопку "перезагрузки".

asam пишет:

- Что понимается под "печатаю по 1 букву"? Вывод "И" в строке 23?

Именно так, в строке 2

asam пишет:

- Если шильд подключен, но никае   библиотеки для него не установлены - Дисплей нормально работает?

#include <LCD_1602_RUS.h>      
#include <LiquidCrystal_I2C.h> 
#include <Wire.h>   
только эти установлены
AlexanderNO
Offline
Зарегистрирован: 08.11.2018

Gagarin_IV, у них на странице сайта, что Вы дали (фридуино), есть ссылка на набор из двух библиотек: MCP23xxx и LiquidCrystal_MCP23x17. Там есть примеры. Попробуйте скачать и запустить примеры. 

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

Имеено этим сейчас и занимаюсь, но дело в том что шильд не пошел с их библиотекой MCP23xxx.

Установил другую.  MCP23S17-master. С ней заработал.

А библиотека LiquidCrystal_MCP23x17 ссылается на MCP23xxx.
Править библиотеки для меня сложно.
 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Gagarin_IV пишет:

asam пишет:

- Если шильд подключен, но никае   библиотеки для него не установлены - Дисплей нормально работает?

#include <LCD_1602_RUS.h>      
#include <LiquidCrystal_I2C.h> 
#include <Wire.h>   
только эти установлены

 

Вот если только эти установлены и просто воткнуть шильд, то дисплей работать перестает?

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

asam пишет:

Вот если только эти установлены и просто воткнуть шильд, то дисплей работать перестает?

Да, так. Без шильда работает хорошо, с шильдом  - плохо, очень плохо.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

На шильде есть (красный) дип переключаетль. В каком положении там 5 и 6 стоят?

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

ExpanderShield_Settings_SPI.jpg

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Странно, I2C вроде отключен. Мешать не должен. Попробуй все вниз переключить. 

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

Попробовал, не помогло, разницы нет

 

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

ExpanderShield_Settings_I2C.jpg

asam, , Спасибо за подсказку. Поставил вот так вот, и все заработало. Видимо производители неправильный мануал написали. Напишу им))
PS и библиотека у них кривая

sadman41
Offline
Зарегистрирован: 19.10.2016

С помощью DIP переключателя выбирается либо режим SPI (включением контактной группы 1-4) для микросхем MCP23S17, либо режим I2C (включением контактной группы 5-6) для микросхем MCP23017. Также, в режиме I2C с помощью 7 и 8 контактной группы при необходимости шина I2C подтягивается через токоограничивающие сопротивления к шине питания +5В. 

-----------

Включение - это ON. Написано прямо на переключателе. Причём тут производитель, если вы неправильно ставили рычажки?

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

Sadman, вы правы, я не правильно выставил переключатель, но только на контроллере. На шильде, я выставил 1-4 оn (вверх) остальные вниз. Все согласно мануала. Но на моей ардуинке, есть переключатель sda/scl. 20/21 пин перекидывает как в меге или уно. Вот тут я и накосячил.

sadman41
Offline
Зарегистрирован: 19.10.2016

Согласно мануала ON - вверх. 1-4- вниз, 5-8 -- вверх - это I2C режим. Всё, как на фото.

Gagarin_IV
Offline
Зарегистрирован: 28.11.2018

Поясню.
У меня ExpanderShield на шину SPI (с микросхемами MCP23S17). , те нужна сделать так

ExpanderShield_Settings_SPI.jpg

Выставляю так, lcd работает с ужасными глюками. потом виснит ардуина

Переставляю вот так (понимая что это не правильно)

ExpanderShield_Settings_I2C.jpg

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

В связи с этим делаю (ошибочный) вывод что не правильный мануал.
А дело было не вшильде.

b0b5a9803344.png

а в этом переключателе.