Arduinoがコンピューターに接続してシリアルモニターを開いた場合、TxピンとRxピンは引き続き機能しますか?

1つがRxピンとTxピンを介して2つのArduinoUnoボードを接続したとします。次に、Arduinoボードの一方または両方がコンピューターに接続されていて、シリアルモニターが開いている場合、TxピンとRxピンは引き続き機能しますか?つまり、Arduinoはコンピュータと通信しているときにRxピンとTxピンを介して通信しますか?そうでない場合は、コンピュータに接続しているときにそれらを機能させる方法はありますか?

コメント

  • USBFTDIチップはTX / RXピンに接続されているため、シリアルが期待どおりに機能しない場合があります。

回答

1つがRxピンとTxピンを介して2つのArduinoUnoボードを接続したとします。

一方のArduinoのTXをもう一方のRXに接続する、またはその逆を行うと仮定します。これは、それらを接続する正しい方法です。Sealionが彼の回答で説明したように、2つのTXピンを一緒に接続しないでください。

Arduinoボードの一方または両方がコンピューターに接続されていて、シリアルモニターが開いている可能性がある場合

そうすると、Arduinoは気付かないでしょう。

もっと正確に言うと、うのに小さなチップがあります。 r「MEGA16U2」というラベルの付いたUSBコネクタ。このチップはUSB /シリアルコンバーターとして使用され、USBリンクを接続したときとポートを開いたときに 通知します。ただし、スケッチを実行するマイクロコントローラーであるメインチップ(大きなPDIP28)は、認識も気にもしません。

TxピンとRxピンまだ機能していますか?

もちろんです。

Arduinoは引き続きRxを介して通信しますコンピュータと通信するときのTxピン?

RXはコンピュータと通信しません。どうなるか:

  • Arduinoがシリアルポートに書き込んだものはすべて、他のArduinoとシリアルモニターの両方で受信されます。
  • シリアルモニターを介して送信したものはすべて失われます。
  • Serial.read()を実行すると、他のArduinoによって設定されたものがすべて取得されます。

この動作の理由は1 Mega16U2のTXとメインマイクロコントローラーのRXの間にあるkΩ抵抗。このRXを他のArduinoのTXに接続すると、低インピーダンス(≈2 5  Ω)、そのTXは「勝ち」ます:低インピーダンス出力は高インピーダンス出力を圧倒します。

回答

コンピューターに接続しているときに[2つのArduinoが相互に通信する]を機能させる方法

一方または両方がUSB経由でラップトップコンピューターのシリアルモニターと通信しているときに、2つのArduinoが互いに直接通信するためのさまざまな方法があります。

  • Arduinosが通信するために、USB接続に依存しないUARTを使用します。 ( https://www.arduino.cc/reference/en/language/functions/communication/serial/ を参照)

    • ArduinoなどのいくつかのArduino互換ボードMega 2560、Arduino Due、Arduino Uno WifiRev.2などには4つのハードウェアUARTがあります。 Serial1のピン(「1」に注意)は、USBを介したラップトップへのシリアル(「1」なし)UART通信に干渉することなく、別のArduinoと通信するために使用できます。 (残念ながら、Arduino UnoにはハードウェアUARTが1つしかありません。)
    • ATmega32u4ベースのArduinoMicroとArduinoLeonardo、および FLORAなどのATmega32u4ベースのArduino派生物および TenesyシリーズなどのARMベースのArduino派生物の多くには、 を使用しないUSBインターフェースがあります。 > UARTピンの;したがって、Serial1のピン(「1」に注意)を使用して、USBを介したラップトップへのシリアル(「1」なし)の非UART通信に干渉することなく、別のArduinoと通信できます(残念ながら、Arduino UnoにはUSBインターフェースがあり、ハードウェアUARTピンのみを使用します。
    • Arduino Unoでも、ピンがハードワイヤードされているハードウェアUARTが1つしかありません。 USBインターフェースチップは、他のピンでUARTの遅いシミュレーションをビットバンする可能性があります。すべての違いを'で参照してください。ソフトウェアシリアルライブラリ?Arduino Nanoと互換性があるのはどれですか?
  • ソフトウェアでUARTをシミュレートしようとするよりも(タイミングはちょっとトリッキーです)、時間に敏感でない他のいくつかを使用する方が簡単/高速かもしれません

回答

まったく同じ問題が発生しました! ArduinoUnoボードとJtagICE mkiiをデバッグに使用していましたが、これはうまく機能していました。私がUARTを使い始めたとき、それはひどい混乱でした。 Arduinoから外部TTL-USBアダプターへの送信は機能していましたが、他の方向では機能していませんでした。このスレッドを見る何時間も前にプレイしたので、シェマティックを調べるアイデアが浮かびました-> Bang!私は2つの抵抗器を見ました。教訓:残りのツールなしでArduinoハードウェアを使用しないでください!迅速な開発のためにハードウェアを使用するのは良い考えだと思いました。今では思ったよりも時間がかかります…

回答

2つのTXピンを一緒に接続しないでください。 Arduinoにはいくつかの保護抵抗がありますが、2つの出力ピンを接続することはお勧めしません。

RX / TXピンを直接使用する唯一の節約方法は、保護抵抗(リファレンスデザインのRN4AとRN4B)を取り外すことです。 )または少なくともRN4Aで、一度に1つの接続のみを使用します。PC接続を使用しない場合、またはピンがまだ出力であるためシリアルモニターを開かない場合は役に立ちません。

(複数のRXピンは入力であるため問題ありません)

(もちろん、ほとんどの場合、複数のTXピンを一緒に使用できることはわかっていますが、お勧めします)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です