Более 16 штук LCD1602 (i2c PCF8574AT)

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Здравствуйте. Мне необходимо подключить более 16 LCD дисплеев к ардуино. Но, как я знаю, максимально к одной ардуино можно подключить 8 дисплеев, так как адреса ограничены.

Микросхема PCF8574AT имеет следующие адреса:

0x3F
0x3E
0x3D
0x3C
0x3B
0x3A
0x39
0x38

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

Есть другое решение?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Irinka пишет:
Есть другое решение?

Есть каскад из 74HC595 и SPI  1lcd -1 регистр. Хотя можно и меньше.

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

Варианты есть еще такие:

- SoftTWI

- I2C multiplexer

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Строго не судите, НО, готовый LCD1602 + I2C ЖК 1602 модуль стоит ~100 рублей, подключила к нему 4 провода и всё готово к работе...

Ведь модуль хранит в памяти полученную информацию, как на счёт коммутации?

К примеру: Первый модуль имеет адрес 0x3F и второй модуль так же 0x3F.

Чтобы передать информацию на первый модуль нужно включить SCL-C15 и SDA-C15

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

В итоге по 8 адресам с двумя 74HC4067 можно подкдлючить 16*8=128 дисплеев

nik182
Offline
Зарегистрирован: 04.05.2015

У меня часть модулей пришедших из али откликаются на 0х20-0х27. Если их к тем что 0х38-0х3F откликаются подключить как раз 16 штук получится. 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

nik182 пишет:

У меня часть модулей пришедших из али откликаются на 0х20-0х27. Если их к тем что 0х38-0х3F откликаются подключить как раз 16 штук получится. 

Это потому что микросхеиы там PCF8574 и PCF8574A

8 + 8 = 16, а я говорю про подключение более 16 ЖК модулей

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Ну или вот так. Соответственно к каждому ЖК 5 Вольт.

nik182
Offline
Зарегистрирован: 04.05.2015

Ну так софтверный i2c никто не отменял. По паре ног на 8 дисплеев. 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

nik182 пишет:

Ну так софтверный i2c никто не отменял. По паре ног на 8 дисплеев. 

Как изменить пин SDA и SCL

#include "Wire.h" 
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x3F,16,2); 
 
void setup()
{
  lcd.begin();
  lcd.backlight();
  lcd.clear();
  lcd.print("info123");
}
 
void loop()
{
   
}

 

nik182
Offline
Зарегистрирован: 04.05.2015

Прямо наверно ни как. Но ни кто не мешает дописать в библиотеку метод работы с софтверным i2c . Я допиливал библиотеку для работы с тинькой. Там тоже использовал софтверный i2c. Инициализация была по типу

#if  defined(__AVR_ATtiny25__) | defined(__AVR_ATtiny45__) | defined(__AVR_ATtiny85__) | (__AVR_ATtiny2313__)
#include "TinyWireM.h"      // include this if ATtiny25
#else 
#include <Wire.h>           // original lib include
#endif

 и

void LiquidCrystal_I2C::init_priv()
{
#if  defined(__AVR_ATtiny25__) | defined(__AVR_ATtiny45__) | defined (__AVR_ATtiny85__) | (__AVR_ATtiny2313__)
	TinyWireM.begin();             
#else   
	Wire.begin();
#endif
	_displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
	begin(_cols, _rows);  
}

Ну и так далее. Библиотеки открыты. Нет проблем  поправить под себя

Plahish
Offline
Зарегистрирован: 23.07.2017

Irinka пишет:
Здравствуйте. Мне необходимо подключить более 16 LCD дисплеев к ардуино.

Иринка, накуа  вам нужно 16? Нельзя ли их заменить одной операторской ЖК- панелью с экраном 7-10 дюймов?

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Цитата:

Ну и так далее. Библиотеки открыты. Нет проблем  поправить под себя

Это для меня слишком сложно...

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Plahish пишет:

Irinka пишет:
Здравствуйте. Мне необходимо подключить более 16 LCD дисплеев к ардуино.
Иринка, накуа  вам нужно 16? Нельзя ли их заменить одной операторской ЖК- панелью с экраном 7-10 дюймов?

Электронные ценники, расположены в разных местах

Condensator
Offline
Зарегистрирован: 02.06.2017

Irinka пишет:
Электронные ценники, расположены в разных местах
I2C внутрисхемный интерфейс, не предназначенный для больших расстояний. С таким решением наживете больше головной боли, чем пользы.

Ставьте RS485 или 232  и подумайте как будете питать подсветку LCD, если она нужна.

 

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Заказала модули RS485.

По SPI и 74HC595 расстояние имет значение?

nik182
Offline
Зарегистрирован: 04.05.2015

Как говориться - в гугле забанили? Введите запрос: i2c максимальное расстояние. Или SPI максимальное расстояние. Увидите, что это единицы метров в условиях отсутствия помех. Идея ценников на много LCD 16x2 ущербна уже на стадии разработки из за наличия длинных проводов. У шины i2c по стандарту есть ограничение 400pf на узел, т.е. много дисплеев на длинных проводах просто не будут работать. Тут надо конкретно пробовать, но что то мне подсказывает, что идеальным решением будут узлы из Micro с четырьмя модулями LCD и модулем RS485 связанные по MODBUS.  По крайней мере такое построение может работать до километра на 400 LCD. 

Condensator
Offline
Зарегистрирован: 02.06.2017

Irinka пишет:
Заказала модули RS485
Если модули RS485  без встроенных микроконтроллеров, как будете обслуживать линию со стороны приемников LCD ?  

Irinka пишет:
По SPI и 74HC595 расстояние имет значение?
Не видя принципиальнйо схемы достоверно ответить не смогу. Если сдвиговые регистры поставить около центрального МК, то количество проводов от них к LCD и соответственно проблем будет немерянное. Если регистры разместить удаленно, эту проблему описал выше.

Выручит любая полевая шина, а протокол обмена - Modbus или другой не столь важен.

Будет ли подсветка и как схемно организуете питание целого стада LCD?

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Condensator пишет:

Irinka пишет:
Заказала модули RS485
Если модули RS485  без встроенных микроконтроллеров, как будете обслуживать линию со стороны приемников LCD ?  

Будет ли подсветка и как схемно организуете питание целого стада LCD?

Модули вот такие

MAX485

На счёт питания подсветки ещё не думала, если будет несколько ардуин по 8 LCD на каждой, то на каждую ардуину будет свой блок питания

Condensator
Offline
Зарегистрирован: 02.06.2017

Irinka пишет:
Модули вот такие. MAX485.

На счёт питания подсветки ещё не думала, если будет несколько ардуин по 8 LCD на каждой, то на каждую ардуину будет свой блок питания

Такой модуль содержит  шинный преобразователь  из RS485  в  Serial TTL  и бесполезен как для LCD без микроконтроллера, так и  и для LCD с МК  для I2C.

 

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Несколько ардуин, с подключенными  LCD, объединить в сеть

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

И подключить через VPN к 1С, расположенной по ту сторону земного шара, полагаю...

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

Condensator
Offline
Зарегистрирован: 02.06.2017

Irinka пишет:
Несколько ардуин, с подключенными  LCD, объединить в сеть
Это более продуманное решение, но I2C тоже формально сеть с неприемлемыми для вашего случая ограничениями.

Проще заменить каждый навешенный на LCD контроллер I2C на Atmega c любым полевым (а не внутрисхемным) последовательным интерфейсом  232,485, 422 ... и будет счастье. Ничего изобретать не придется тк есть готовые библиотеки LCD - аналоги  LCDI2C.

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Чтож, придут модули буду колдовать'

nik182
Offline
Зарегистрирован: 04.05.2015

Если шины i2c нагрузить 1к резисторами и дисплеи повесить на один четырёхпроводный шлейф длиной не более пары метров то система получится вполне работоспособной. Вопрос будетли достаточно пары метра для 8 ценников. Полки определяют расстояние.  

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Irinka пишет:

Несколько ардуин, с подключенными  LCD, объединить в сеть

потом сделать бот-нет и штурмовать сервера Пентагона. 

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

DetSimen пишет:

Irinka пишет:

Несколько ардуин, с подключенными  LCD, объединить в сеть

потом сделать бот-нет и штурмовать сервера Пентагона. 

Пентагон - это ссыкотно. фанерный Рейхстаг в подмосковье - самое то.

Monday
Offline
Зарегистрирован: 01.07.2017

Irinka пишет:
Чтож, придут модули буду колдовать'
Похоже вы не понимаете что делаете.

slider
Offline
Зарегистрирован: 17.06.2014

уже есть широко распротраненные решения с ценниками, в супермаркетах ценники на дисплеях e-paper +контроллер  и батарейке. с беспроводной связью. 

вот на алибабе https://russian.alibaba.com/product-detail/2017-new-supermarket-store-retail-electronic-shelf-labels-e-paper-price-tag-60280523537.html  , мож на али и ебае есть

что изобретать велосипед? 

на крайняк можно использовать rs485+контроллер(модуль на stm около 45руб иль atmega8,...)+lcd1602.    

можно и тему по 1-wire пошукать.  типа просто контроллер(stm иль ардуинка)+lcd1602.

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

slider пишет:

модуль на stm около 45руб

что за модуль?

slider
Offline
Зарегистрирован: 17.06.2014

Irinka пишет:

slider пишет:

модуль на stm около 45руб

что за модуль?

https://ru.aliexpress.com/w/wholesale-stm8-module.html