Как заставить два Arduino общаться друг с другом через оптопару
Я установил на макетной плате два Arduino, соединенных через оптопару.
Один Arduino является передатчиком и посылает импульсы на оптопару, вызывая включение диода.
Когда это происходит, вход другого Arduino подключен к эмиттеру. Это интерпретируется как 1 на стороне получателя. Или, если диод выключен, на стороне приемника это 0.
Моя проблема — синхронизировать их. В настоящее время я использую задержку, и я начинаю понимать, что это ужасная идея, поскольку они рассинхронизируются после отправки примерно двух символов. Итак, мне интересно, есть ли более эффективные решения для их синхронизации?
@magicmike992, 👍1
Обсуждение1 ответ
Для синхронизации двух устройств, передающих какую-либо информацию, необходим сигнал CLK. CLK означает часы, поэтому вы отправляете 1 каждый раз, когда хотите отправить немного данных. Но для этого вам понадобится еще один провод и генератор CLK (обычно передатчик). Это очень хорошо описано в видео Бена Итера о Надежная передача данных. Поэтому я рекомендую вам посмотреть видео, поскольку Бен затрагивает множество важных тем, связанных с передачей данных, и показывает на примере Arduino, как правильно передавать и получать данные.
Для синхронной последовательной связи вам нужен только дискретный сигнал CLK. В асинхронном режиме время определяется обоими концами канала отдельно и должно согласовываться в определенных пределах., @Majenko
- Печать string and integer LCD
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Отправьте несколько значений int из Python в Arduino, используя pySerial
- Глобальные переменные занимают много места в динамической памяти.
- (Код ультразвукового датчика: такого файла или каталога нет)
- rfid_default_keys проверить с помощью RC522
- Команда strtok() с Serial связью
УАРТ. Либо программное, либо аппаратное., @Majenko
Что вы пытаетесь синхронизировать? Я думаю, что установка оптоизолятора ** предназначена** для синхронизации двух гальванически изолированных устройств., @jose can u c
есть ли смысл пытаться «изобрести велосипед»? Уже существует несколько протоколов, которые можно использовать (UART, I2C, SPI). И все они могут быть оптически изолированы, если в этом есть необходимость., @Chad G
что вы подразумеваете под словом «синхронизировать»? ...... какую функцию вы пытаетесь синхронизировать? .... возможно, вы слишком много думаете об этом, @jsotola