1. UARTとは?
UART(Universal Asynchronous Receiver/Transmitter)は、非同期シリアル通信を行うためのプロトコルの一つで、マイコンやPC、センサー、モジュール間のデータ通信によく使われます。
UARTの特徴は、クロック信号なしで2本の信号線(TXとRX)だけで通信できることです。I²CやSPIと比べて配線がシンプルなため、多くの電子機器に採用されています。
2. UARTの基本構成
UART通信では、以下の2本のデータラインを使用します。
- TX(Transmit) 送信データライン
- RX(Receive) 受信データライン
📌 TXとRXをクロス接続するのがポイント!
💡 フルデュプレックス通信(送信と受信が同時に可能)
3. UARTの通信の仕組み
通信の基本ルール
UARTは非同期通信なので、データの送受信には一定のルール(フォーマット)を決めておく必要があります。
-
ボーレート(Baud Rate)
-
データビット(Data Bits)
- 1回の送信で送るデータの長さ(通常 8ビット)
-
ストップビット(Stop Bit)
- 送信の終わりを示す(通常 1ビットまたは 2ビット)
-
パリティビット(Parity Bit)(エラーチェック用、基本は「なし」)
- なし(None) / 偶数(Even) / 奇数(Odd)
📌 通信設定の例
4. UARTのメリット・デメリット
メリット
✅ 配線がシンプル(2本の信号線)
✅ 多くのデバイスが対応(PC, マイコン, センサー)
✅ 長距離通信が可能(数メートル〜数十メートル)
デメリット
❌ 1対1の通信が基本(複数デバイスと通信するには工夫が必要)
❌ ボーレートが違うと通信できない
❌ クロックなしなのでデータのズレ(ドリフト)が発生しやすい
5. UARTの活用例
- PC ⇄ マイコン(Arduino, ESP32, STM32 など)
- GPSモジュールとの通信
- Bluetoothモジュール(HC-05 など)
- センサー(温度・湿度センサーなど)
- デバッグ用のシリアルコンソール(シリアルモニタ)
6. ArduinoでUART通信を使う
Arduinoでは、Serialライブラリを使うことで簡単にUART通信ができます。
PCとArduino間のシリアル通信
📌 シリアルモニタを開くと "Hello, UART!" が1秒ごとに表示される!
Arduino同士でUART通信
7. UART vs 他の通信規格(I²C, SPI)
| プロトコル | 配線数 | 速度 | 同時通信 | 用途 |
|---|---|---|---|---|
| UART | 2本(TX, RX) | 中速(115200bps程度) | 1対1 | PC・マイコン通信, デバッグ |
| I²C | 2本(SDA, SCL) | 低速(400kbps程度) | 複数台接続可 | センサー・EEPROM |
| SPI | 4本(MOSI, MISO, SCLK, SS) | 高速(数Mbps以上) | 1対多 | SDカード・LCD・メモリ |
💡 UARTは、デバッグやPCとの通信に最適!
💡 I²Cは、複数のデバイスとやりとりするのに便利!
💡 SPIは、高速通信が必要な場合に最適!
8. まとめ
✅ UARTはシンプルな2本の配線で非同期シリアル通信を実現!
✅ ボーレートやデータフォーマットを合わせないと通信できない!
✅ デバッグやPCとの通信、GPSやBluetoothモジュールとの接続に最適!