Расширитель портов MCP23017 c LCD2004- зависает шина I2C

Значит в обоих модулях стоят подтягивающие к +5V резисторы. В одном из модулей от них нужно избавиться.

Маловероятно, что причина в этом.
Обычно там 4.7K ставят, если параллельно, то, положим, 2.3K… Ток, выходит, порядка 2mA. Явно это не подсаживает выход МК.

А если подозрение на это, то выдёргивать сигнальные следует.
Но я вполне себе гирлянды по 3-4 модуля лепил на макетке и все было ок.

А что тогда подпадает под подозрение у тебя? Не хватает питания?

Да коротит, поди.
Я бы вообще экспандер вытащил из дисплея для определённости.

А выкладывать скетч(со ссылками на библы) уже не модно? Может там конфликт скоростей IIc, может не проинициализированный дисплей(судя по фото) утягивает уровни на постоянку, может ещё чего.

1 лайк

? :thinking:
А вообще прикольный дисплей, там, походу, IIC уже “из каропки” есть. и экспандер не нужен.

Што? На дисплее экспандер PCF8574.

Так, потестил активнее. При навешивании еще двух реле (на А2 и А3) получается нестабильность. Изредка реле перещелкивают во включенном состоянии (напоминаю - реле низкого уровня). И светодиод на А0 не тухнет при LOW, а часто неярко мерцает (ну скажем 10Гц).
При этом ток:
Цикл HIGH | LOW | Точка замера
22mA 19mA Vin Arduino Nano
10 mA 0.3mA LED1 (A0 CJMCU-2317)
0 0.8mA Relay (IN1) при включенных еще 2 реле на А2, А3
0 1 mA Relay (IN1) если оставить только одно реле на А1
11 mA 0.9mA VCC CJMCU-2317
0.01 mA 150mA VCC Relay Module

Цикл_HIGH LOW Точка_замера
22mA 19mA Vin Arduino Nano
10 mA 0.3mA LED1 (A0 CJMCU-2317)
0 0.8mA Relay (IN1) при включенных еще 2 реле на А2, А3
0 1 mA Relay (IN1) если оставить только одно реле на А1
11 mA 0.9mA VCC CJMCU-2317
0.01 mA 150mA VCC Relay Module

Вопрос с LCD2004 пока отложил - отключил. Надо со стабильностью реле разобраться.

Чем питаешь? Что за БП?

Блок питания 9 вольт 4 Ампера - модуль питания на макетке. На фото выше виден справа.
Ардуино запитывается напрямую 9 вольтами, остальное через макетку 5 вольт.

Я попросил об этом ТС ещё в самом начале темы. Он решил наплевать на эту просьбу. Ну, хозяин барин, пусть разбирается неделю, может кто и угадает случайно в чём там дело.

Все. Разобрался. Проблема решилась подключением адресных пинов MCP A0, A1, A2 на минус. Адрес не изменился, естественно. Ушли три проблемы:.

  1. Подключение дисплея Lcd2004, lcd 1602 перестало влиять на работу остальной периферии.
  2. Контрольный светодиод на выходе А0 MCP перестал мерцать при низком уровне.
  3. Релюшки перестали противно пищать при включении (я думал это они так работают). Срабатывают четко.
    Потестил 10 мин, перезагрузки, сбоев нет.
    Всем конструктивным участникам - спасибо.

А раньше они куда были подключены? Просто в воздухе болтались?

Какое-то нелепое стечение обстоятельств.

Всё валилось при подключении LCD, а починилось пайкой MCP в том месте, где, полагаю, не требуется.

2 лайка

подтверждаю! ))

Судя по фото из инета - да. @xDriver молодца, чё-то не нашёл. Походу переход под сборкой, нехорошо!

ты сегодня набухался чтоль?

Выше глянь. :slightly_smiling_face: