Как заставить два Arduino общаться друг с другом через оптопару

Я установил на макетной плате два Arduino, соединенных через оптопару.

Один Arduino является передатчиком и посылает импульсы на оптопару, вызывая включение диода.

Когда это происходит, вход другого Arduino подключен к эмиттеру. Это интерпретируется как 1 на стороне получателя. Или, если диод выключен, на стороне приемника это 0.

Моя проблема — синхронизировать их. В настоящее время я использую задержку, и я начинаю понимать, что это ужасная идея, поскольку они рассинхронизируются после отправки примерно двух символов. Итак, мне интересно, есть ли более эффективные решения для их синхронизации?

, 👍1

Обсуждение

УАРТ. Либо программное, либо аппаратное., @Majenko

Что вы пытаетесь синхронизировать? Я думаю, что установка оптоизолятора ** предназначена** для синхронизации двух гальванически изолированных устройств., @jose can u c

есть ли смысл пытаться «изобрести велосипед»? Уже существует несколько протоколов, которые можно использовать (UART, I2C, SPI). И все они могут быть оптически изолированы, если в этом есть необходимость., @Chad G

что вы подразумеваете под словом «синхронизировать»? ...... какую функцию вы пытаетесь синхронизировать? .... возможно, вы слишком много думаете об этом, @jsotola


1 ответ


1

Для синхронизации двух устройств, передающих какую-либо информацию, необходим сигнал CLK. CLK означает часы, поэтому вы отправляете 1 каждый раз, когда хотите отправить немного данных. Но для этого вам понадобится еще один провод и генератор CLK (обычно передатчик). Это очень хорошо описано в видео Бена Итера о Надежная передача данных. Поэтому я рекомендую вам посмотреть видео, поскольку Бен затрагивает множество важных тем, связанных с передачей данных, и показывает на примере Arduino, как правильно передавать и получать данные.

,

Для синхронной последовательной связи вам нужен только дискретный сигнал CLK. В асинхронном режиме время определяется обоими концами канала отдельно и должно согласовываться в определенных пределах., @Majenko