##RS232C をUARTに変換し、Arduino で送受信
Arduinoでプログラムを書くときArduinoのシリアル出力をPCでデバックしたい、といったことがたまにあります。ArduinoのUARTとPCのRS232C(実際にはUSB<->RS232C変換)ポートにつないでArduinoのデバックモニタを実現したいと思います。RS232CとUARTは信号の信号電圧が違っています。RS232Cは±12V、UARTは+5Vですね。秋月通商で購入した「3V・3.3V・5V系-RS232レベル変換基板」を使って、電圧変換をします。
http://akizukidenshi.com/catalog/g/gK-06464/
http://akizukidenshi.com/download/ds/akizuki/AE-ADM3202_manual.pdf
- USB-CVRS9を使って、USBをRS232Cに変換する。
https://www.sanwa.co.jp/product/syohin.asp?code=usb-cvrs9 - RS-232Cの出力をADM3202でUARTに変換
- UART をArduinoで受信
- Arduino で同じデータをUARTで送信
- UARTをADM3202でRS232Cに変換
- PCでUSBを介してRS232Cを受信
という実験を行いました。
RS232Cレベル変換基板(ADM3202)はコネクタに直接半田づけをします。ADM3202のジャンパ、JP1はArduinoの電源をはんだでショートをしました。
ArduinoのプログラムはSerialを受けて、Serialを出力します。
void setup() {
Serial.begin(230400);
}
uint8_t incomingByte;
void loop()
{
if (Serial.available() > 0) { // 受信したデータが存在する
incomingByte = Serial.read(); // 受信データを読み込む
Serial.write(incomingByte); // データを出力する
}
}
Arduino のシリアル入出力のボーレートをいろいろ試してみました。9,600bps から921,600bpsまで試してみましたが、230,400bpsが安定してデータを送受信できる最大値でした。