Стоит задача подключить к ардуино 7 одинаковых экранов по шине I2C. Нужно, чтобы все 7 экранов показывали одно и то же содержимое одновременно. Если на всех 7 экранах будет один и тот же адрес, будут ли они так работать? показывать одно и то же, при обращении ардуино к этому адресу по шине I2C. Или просто будут конфликтовать друг с другом? И сразу второй вопрос - если при этом на шине ещё будет 7 ардуин-слейвов, я могу в их прошивке поменять их адреса I2C на нужные мне? или адрес уже зашит в каждой ардуинке насовсем?
В ардуино-slave адрес вы будете задавать в скетче. Вот образец как это делается https://lesson.iarduino.ru/page/urok-26-3-soedinyaem-dve-arduino-po-shine-i2c/ А вот с дисплеями скорее всего будет лажа. Данные ведь не идут в одном направлении от микроконтроллера к дисплею. Дисплей отвечает микроконтроллеру об удачном или неудачном принятии данных. И если все 7 дисплеев начнут одновременно отвечать, будет беда.
А зачем 7? на каком расстоянии от ардуины они будут? На i2c если дальше метра то надо "удлинитель" паять.
Спасибо за ответ! Кстати, в сети нашёл упоминание о подключении двух одинаковых дисплеем с одним адресом, человек утверждал, что оба работали и показывали одно и то же
Нет, вопрос не теоретический. LCD дисплеи, которые мне нужны, имеют только одну перемычку и выбор из двух адресов. А мне нужно 7 дисплеев одинаковых. К тому же, и обращаться проще к одному дисплею, чем по очереди к 7 дисплеям с разными адресами и выводить на них одно и то же
Долго объяснять, но нужно именно 7 одинаковых изображений одновременно. Расстояние от ардуины-мастера до самого последнего дисплея может быть около 4 метров. Почитал сейчас информацию в сети. Действительно, I2C желательно не делать длинные провода, я очень расстроен. Но есть упоминания о том, что даже до 10-15-25 метров у людей работала шина. Расстояние важно от мастера до слейва? или вообще от крайней до крайней точки? могу мастер поставить посередине цепи, тогда будет по 2 метра в одну и в другую сторону от него
Читайте не информацию в сети а даташиты на мк и дисплеи, не будет работать устойчиво ни 5 ни 25 метров что бы блоггеры вам ни парили. Есть 'удлинители' для i2c. С ними у меня на 20 метров устойчиво работает. А насчет что кто то написал что 2 на 1 адресе може и будет работать, но не долго, там же мастер слейв, примут то сигнал оба дисплея, а вот чей ответ прочитает мк?
Ну почему так пренебрежительно сразу "блоггеры". Читаю таких же людей, как и вы. Почитаю про удлиннители, спасибо. Про 2 дисплея на одном адресе - эксперимент подтверждён реально. Видимо, всё равно какой из экранов ответит - ответ будет одинаковым. На экранах же нужно одинаковое изображение.
Был бы очень благодарен, если вы сможете поставить эксперимент - подключить несколько экранов с одним и тем же адресом и посмотреть, что будет У меня в наличии только один экран, к сожалению. Покупать несколько просто для эксперимента не хотелось бы - нужно знать наверняка
Пренебрежительно потому как 99% из них пишут ради того чтоб написать. Не разбираясь почему так работает или не работает. При повторении устройств даже самого известного ардуино блоггера возникает куча вопросов на которые блоггерам отвечать неинтересно либо знаний нехватает. С тем что все для дисплеев одинаково идея конечно интересная. По сути вы не получаете ответов от дисплея, может такая фишка и сработает. Сейчас не помню, делал библиотеку для дисплея на ssd1309, по моему там идет только запись в i2c. Дома гляну напишу.
Я читал просто ответы на каких-то форумах, не блоггеров. По длине I2С разные эксперименты были. Даже до 100м доходило у одного из электронщиков, кто в фирме работает, которая разработкой занимаются каких-то устройств. Но на авось полагаться не хочется, конечно если микросхема P82B715 поможет, могу её поставить хоть на каждом устройстве, которое на шину I2C повешу. Но, всё равно есть одна линия, которая не может быть меньше 2 метров никак. и посередине не вставишь ничего особо. Шлейф 2 метра длиной.
Если мне не изменяет память, в библиотеке нет команд на чтение, только запись. Поэтому несколько индикаторов параллельно должно прокатить.
Ведомый ронянет линию в ноль, подтверждая получение каждого байта от мастера. Семь дисплеев будут ронять в ноль эту линию синхронно, потому что это происходит по тактовому импульсу от мастера. Поэтому, теоретически, 7 дисплее работать параллельно могут, если только длина линии не превысит допустимую емкость шины.
Если без запросов чтения (а что читать у дисплея???), то работать должно. Хм. Да даже с запросом чтения будет работать.
I2C-ные дисплеи наверняка собраны примерно так же. Поскольку SDA - двунаправленная линия, дабы избежать коллизий выходов со смертельным исходом - надо ввести ограничительные резисторы 150 - 1000 ом. Одно из правил схемотехники - "Береженого бог бережет" ))). А сканер адресов как же тогда работает ? Хотя... смотря какая библиотека...