Я просто хочу начать с того, что я относительно новичок в электротехнике в целом, поэтому, если я кажусь абсолютно отсталым, пожалуйста, потерпите меня.
В рамках учебного проекта я работаю с несколькими датчиками цвета, в частности с Parallax ColorPAL 28380s , и у меня есть Arduino Uno и Arduino Mega 2560, чтобы собирать данные с них. Я возился со спецификой этого проекта на Arduino SE.но я полагаю, что этот вопрос может быть для любого микроконтроллера в целом. Эти датчики используют метод связи, известный как 1-Wire/MicroLAN, в котором они используют только один контакт для передачи и приема в зависимости от состояния контакта, к которому они подключены, среди нескольких других особенностей. Теперь у меня их три, и моя конечная цель состоит в том, чтобы иметь возможность многократно собирать данные со всех из них в один и тот же момент времени, чтобы я мог отправлять данные в какую-то другую программу, которую я пишу для запуска алгоритма. . Проблема в том, что используемый пример основан на эмулированном последовательном порте на Arduino, который не любит работать с несколькими экземплярами.
Теперь в Mega 2560 встроено три набора для последовательной связи, что было бы идеально... только если бы я мог отделить RX и TX от 1-Wire. Пользователь Arduino SE предложил мне использовать транзистор для его разделения. Назовите меня глупым, но у меня нет запасных, поэтому я скоро пойду протестировать его, как только смогу сходить в ближайший магазин электроники. Тем не менее, просматривая Интернет, я прочитал, что 1-Wires никогда не следует подключать к собственным последовательным портам из-за того, как они работают с состояниями.
Таким образом, могут ли датчики 1-Wire обмениваться данными с собственными последовательными портами в микроконтроллерах, если я создам схему для разделения сигналов? И если это возможно, то в чем особенности такой схемы?
Приложив некоторые усилия к программному обеспечению, вы можете считывать информацию со всех трех датчиков по одному и тому же проводу: периферийные устройства 1-wire имеют уникальный идентификатор.
Dallas 1-wire — это особый протокол связи, и использование оборудования UART для связи с устройством 1-wire похоже на использование бензопилы для поворота винта? Лучше поищите библиотеку 1-wire, которая просто перебивает протокол. Таких библиотек должно быть много, либо для Arduino, либо для голой Mega 2560.
Если вы действительно хотите «разделить» одну линию (UART), вы можете использовать аналоговый мультиплексор.
Эриол
Воутер ван Оойен
Эриол