Несколько ардуино, подключенных к одному дисплею

У меня есть один экран дисплея и 5 Arduino Nanos. Они проверяют, соответствуют ли пароли в текстовом файле определенному хэшу, а затем отображают его на экране при обнаружении.

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

, 👍1

Обсуждение

Что это за экран? Какой протокол вы используете для связи с ним?, @Mat

У меня был бы координатор, который слушает наносистемы и получает пароль для отображения. Я бы тоже не стал использовать наносы., @Dave Newton

теоретически - да. можно сделать мультиплексор практически для любого типа схемы. просто нужно убедиться, что у вас есть какой-то механизм исключения, который гарантирует, что только один может говорить (обычно первый получает его, пока он не пошлет сигнал о том, что это сделано)., @Abel

k спасибо, я буду работать с идеей координатора, также я знаю, что наносы не лучший вариант, но для того, что я делаю, они, конечно, очень дешевы, и у меня уже есть около 6, проект включает в себя их кластеризацию, так что если бы я использовал unos или что-то еще, цена резко возросла бы, @ProfMonkey07

Как вы думаете, зачем вам нужны 5 Arduino Nanos? Почему не только один? И почему все они должны быть подключены к дисплею? Дисплей имеет какой-то драйвер дисплея IC (это сильно зависит от вашего дисплея: 7-Seg, LCD, OLED,...), и этот контроллер имеет какой-то интерфейс, к которому вы можете просто подключить ОДИН мастер. Этого должно быть вполне достаточно., @F_Schmidt

ну, идея в том, что это кластер, я разделяю работу между ними, один arduino может тестировать по одному за раз, 5 могут тестировать по пять за раз, идея в том, что каждый nano имеет одну пятую часть списка паролей(хранящегося на SD-карте), который они проверяют постоянно, а потом, когда один из них найдет его, он выведет его на экран, @ProfMonkey07


1 ответ


0

Должна быть возможность подключить все нано к дисплею, точно так же, как если бы был только один нано, пока есть только один нано, который активно управляет шиной (какой бы это ни была шина). Все остальные наносистемы нуждаются в том, чтобы их контакты шины были входами (не сконфигурированными для шины). Таким образом, вы могли бы сделать их неактивными по умолчанию и получить доступ к шине только после того, как они найдут соответствующий хэш.

Но: если несколько nano настроены для одновременного использования шины, связь будет повреждена. В случае, если дисплей использует двухтактную шину (SPI, UART,...), это даже электронная проблема, потому что их контакты шины закоротили бы напряжение питания и, возможно, были бы разрушены. Поэтому вам нужна какая - то защита в этом случае, токоограничивающий резистор в самой простой форме.

Как упоминалось в комментариях, "чистое" решение состоит в том, чтобы иметь один выделенный контроллер в качестве координатора.

Некоторые мысли:

  • существует реальный (а не просто гипотетический) шанс для конфликтов шин, потому что несколько паролей приводят к одному и тому же хэшу, и вы даже хотите сравнить хэши для нескольких паролей. Следует ожидать возникновения такого столкновения, хотя невозможно предсказать, когда и произойдет ли оно на самом деле.

  • вероятно, вы хотите настроить кластер, например, распределить интересующий вас хэш между наносистемами или остановить кластер при обнаружении совпадения. Эти вещи были бы проще, если бы был один преданный мастер, с которым вы могли бы общаться напрямую.

  • координатор всегда будет иметь контроль над дисплеем. Что делать, если вы хотите постоянно отображать информацию на экране, например индикатор выполнения? Это было бы трудно реализовать потом, когда нет мастера.

,