Я пытаюсь связаться с торговым автоматом, используя протокол MDB с помощью Arduino Mega, и мне это частично удается.
Схема, которую я использую, прикреплена здесь
Хотя принципиальная схема показана ниже
Arduino Mega взаимодействует с ноутбуком через Serial 1, а связь с торговым автоматом осуществляется через Serial 2 Arduino Mega.
USART используется для связи.
Странная проблема, с которой я столкнулся, заключается в том, что связь с торговым автоматом начинает отправлять данные только тогда, когда коричневые провода A и B изначально не подключены (которые соединяют Arduino TX с торговым автоматом RX). Как только я вижу данные, поступающие от торгового автомата, я замыкаю провода A и B, и Arduino также начинает отправлять данные в торговый автомат.
Но если провода A и B подключены при запуске торгового автомата, торговый автомат не отправляет никаких данных в Arduino, и, следовательно, связь не происходит. Я хочу, чтобы это работало без ручного подключения проводов A и B каждый раз.
Я попытался заменить оптопару PC817C на
- PC814
- 4N35
- Быстродействующая оптопара 6Н137
Я попытался заменить Hex Inverter на
- 74HC04AP
Я попытался поставить механическое, а затем твердотельное реле между проводами A и B и попытался подключить их через внешний вход, но ничего не произошло
Я устал добавлять оптопару в качестве переключателя между проводами A и B и попытался управлять им через прошивку.
Я даже пытался заменить шестнадцатеричный инвертор на шестнадцатеричный буфер HCF4050BE и NOT Gate, но независимо от любой комбинации упомянутых компонентов проблема остается той же, она работает только в том случае, если провода A и B изначально не подключены, а затем закорочены, как только данные начинают поступать от торговый автомат.
Я использую код MateDealer.
Я хочу автоматизировать этот ручной процесс, и для этого мне нужно простое решение.