Несколько ардуино, подключенных к одному дисплею
У меня есть один экран дисплея и 5 Arduino Nanos. Они проверяют, соответствуют ли пароли в текстовом файле определенному хэшу, а затем отображают его на экране при обнаружении.
Поскольку они не все посылают сигналы на экран, можно ли подключить его так, чтобы все они были подключены к одному экрану, а затем заставить того, кто найдет правильный пароль, отправить сигнал на экран, и как бы я это сделал?
@ProfMonkey07, 👍1
Обсуждение1 ответ
Должна быть возможность подключить все нано к дисплею, точно так же, как если бы был только один нано, пока есть только один нано, который активно управляет шиной (какой бы это ни была шина). Все остальные наносистемы нуждаются в том, чтобы их контакты шины были входами (не сконфигурированными для шины). Таким образом, вы могли бы сделать их неактивными по умолчанию и получить доступ к шине только после того, как они найдут соответствующий хэш.
Но: если несколько nano настроены для одновременного использования шины, связь будет повреждена. В случае, если дисплей использует двухтактную шину (SPI, UART,...), это даже электронная проблема, потому что их контакты шины закоротили бы напряжение питания и, возможно, были бы разрушены. Поэтому вам нужна какая - то защита в этом случае, токоограничивающий резистор в самой простой форме.
Как упоминалось в комментариях, "чистое" решение состоит в том, чтобы иметь один выделенный контроллер в качестве координатора.
Некоторые мысли:
существует реальный (а не просто гипотетический) шанс для конфликтов шин, потому что несколько паролей приводят к одному и тому же хэшу, и вы даже хотите сравнить хэши для нескольких паролей. Следует ожидать возникновения такого столкновения, хотя невозможно предсказать, когда и произойдет ли оно на самом деле.
вероятно, вы хотите настроить кластер, например, распределить интересующий вас хэш между наносистемами или остановить кластер при обнаружении совпадения. Эти вещи были бы проще, если бы был один преданный мастер, с которым вы могли бы общаться напрямую.
координатор всегда будет иметь контроль над дисплеем. Что делать, если вы хотите постоянно отображать информацию на экране, например индикатор выполнения? Это было бы трудно реализовать потом, когда нет мастера.
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
- Не удалось выделить SSD1306 при добавлении константы
- Низкая частота обновления 1,8-дюймового TFT-дисплея
- Нужна помощь с библиотекой U8GLIB
- SSD1306 распознается сканером I2C, но не может его отобразить
- Как сделать собственный символ на ЖК-дисплее TFT? (128x128)
- В чем отличие датчика Холла от индуктивного?
- Как питать Arduino nano и светодиодную ленту?
Что это за экран? Какой протокол вы используете для связи с ним?, @Mat
У меня был бы координатор, который слушает наносистемы и получает пароль для отображения. Я бы тоже не стал использовать наносы., @Dave Newton
теоретически - да. можно сделать мультиплексор практически для любого типа схемы. просто нужно убедиться, что у вас есть какой-то механизм исключения, который гарантирует, что только один может говорить (обычно первый получает его, пока он не пошлет сигнал о том, что это сделано)., @Abel
k спасибо, я буду работать с идеей координатора, также я знаю, что наносы не лучший вариант, но для того, что я делаю, они, конечно, очень дешевы, и у меня уже есть около 6, проект включает в себя их кластеризацию, так что если бы я использовал unos или что-то еще, цена резко возросла бы, @ProfMonkey07
Как вы думаете, зачем вам нужны 5 Arduino Nanos? Почему не только один? И почему все они должны быть подключены к дисплею? Дисплей имеет какой-то драйвер дисплея IC (это сильно зависит от вашего дисплея: 7-Seg, LCD, OLED,...), и этот контроллер имеет какой-то интерфейс, к которому вы можете просто подключить ОДИН мастер. Этого должно быть вполне достаточно., @F_Schmidt
ну, идея в том, что это кластер, я разделяю работу между ними, один arduino может тестировать по одному за раз, 5 могут тестировать по пять за раз, идея в том, что каждый nano имеет одну пятую часть списка паролей(хранящегося на SD-карте), который они проверяют постоянно, а потом, когда один из них найдет его, он выведет его на экран, @ProfMonkey07