2

Arduino Mega の助けを借りて MDB プロトコルを使用して自動販売機と通信しようとしていますが、部分的に成功しています。

私が使用している回路はここに添付されています

回路のブレッドボード レイアウト

回路図を以下に示しますが、

回路図

Arduino Mega はシリアル 1 を介してラップトップと通信し、自動販売機の通信は Arduino Mega のシリアル 2 を介して行われます。
通信にはUSARTを使用しています。

私が直面している奇妙な問題は、茶色のワイヤ A と​​ B が最初に接続されていない場合 (Arduino TX を自動販売機 RX に接続している場合) にのみ、自動販売機との通信がデータの送信を開始することです。自動販売機からのデータを確認したら、ワイヤー A と B をショートさせ、Arduino は自動販売機にもデータを送信し始めます。
しかし、自動販売機の起動時にワイヤ A と​​ B が接続されている場合、自動販売機は Arduino にデータを送信しないため、通信は行われません。ワイヤーAとBを毎回手動で接続せずに動作させたいです。


オプトカプラPC817Cを置き換えてみました

  • PC814
  • 4N35
  • 6N137 高速オプトカプラ

ヘックスインバーターを交換してみた

  • 74HC04AP

ワイヤーAとBの間にメカニカルリレーとソリッドステートリレーを入れてみて、外部入力を介して接続しようとしましたが、何も起こりません
.ワイヤーAとBの間にスイッチとしてフォトカプラを追加し、ファームウェアで制御しようとしました.

16 進インバーターを 16 進バッファー HCF4050BE と NOT ゲートに置き換えてみましたが、上記のコンポーネントの組み合わせに関係なく、問題は同じままです。自動販売機。 MateDealer のコード

を使用しています。 この手動プロセスを自動化したいので、そのための簡単なソリューションが必要です。

4

2 に答える 2

0

解決済み

この問題は、ステート マシン要素の欠落が原因でした。私のデバイスは LEVEL-1 MDB デバイスであり、使用している自動販売機では、スレーブ デバイス (LEVEL-1 か LEVEL-2 かに関係なく) が LEVEL-2 SETUP ポーリングに応答する必要があります。 MDB 仕様書。

TX ワイヤが取り外されたときに機能していたのはなぜですか?

私のロジック アナライザーは、TX ラインが取り外されたときにランダムな 16 進値を表示していましたが、そのランダムな値が原因でデバイスが動作していました。
自動販売機の余分なセットアップ構成のポーリングに応答することで、スムーズに動作するようになりました。
以下は、VMC によって送信された構成データを示す図で、デバイスによって破棄され、奇妙な動作をしています。

ここに画像の説明を入力

于 2020-01-29T05:40:54.587 に答える