Arduinoと他の機器とのシリアル通信にRS-232しか使えない場合、ピン#0と#1を使える。ただし、Arduinoは0/+5V(0V = 0; +5V = 1)、RS-232は±3V〜±15V(-3V以下 = 1; +3V以上 = 0 )と電圧が異なるので、ピン同士を結線するだけでは信号が伝わらない。Arduinoを破損するおそれもある。RS-232トランシーバというチップを使うと、この電圧の違いを変換できる。
RS-232トランシーバには、電源電圧、変換できる回路の数、外部キャパシタの要不要、端子の形状、最大スピードなどの違いで多種ある。下は2回路の製品:
- 外部キャパシタ要:MAX202(5V)、MAX232(3.3/5V)
- キャパシタ内蔵:MAX203(5V)、MAX233(3.3/5V)
MAX232/233は3.3Vに最適化されているので、5VならMAX202/203のほうがよい。キャパシタは積層セラミックコンデンサなど。
RS-232に使われるDB-9端子とArduinoとの接続にはCisco コンソールケーブル(または互換品)を使ってRJ-45に変換するのが便利。MAX202/3のToutにRS-232CのTXを、RinにRS-232のRXをつなぐ。またTXとRXとをクロスさせず、ストレート結線にする。すなわち、コンソールケーブルのRJ-45端からArduinoまでの結線は次の通り:
- RJ-45 #3 (TX) – MAX202/3 T1out – T1in – Arduino #1 (TX)
- RJ-45 #6 (RX) – MAX202/3 R1in – R1out – Arduino #0 (RX)
Arduinoのピン#0/#1に常時結線されているとUSBポートが無効になり、スケッチのインストールができなくなる。そのため、ピン#0/#1の手前に2回路のオルタネートスイッチを入れて切断できるようにする。
通信制御は8-N-1。
同様の機能を提供する市販のアダプタやシールドもある。