Arduinoのシリアルモニタが文字化けする原因と直し方――初心者にもわかりやすく解説。
画面いっぱいの変な記号、焦らなくて大丈夫です。ほとんどの文字化けは、たった1つの数字を合わせるだけで直ります。原因の見分け方から、日本語特有の文字化けまでやさしく解説します。
目次
01文字化けは怖くない、まず落ち着いて確認しよう
結論から言うと、Arduinoのシリアルモニタで起こる文字化けは、ほとんどの場合「ボーレート」というたった1つの数字のズレが原因です。壊れたわけでも、コードが間違っているわけでもないことが多いので、まずは落ち着いて設定を見直してみましょう。
実例として、M5Stick-Cという小型のマイコンをシリアルモニタで確認しようとしたところ、画面が意味不明な記号だらけになってしまった体験談があります。Arduino IDEのシリアルモニターで文字化けが起きたので通信速度を変更してみた(そう備忘録)では、最初は文字コードの指定を間違えたのかと思ったが、実際の原因は単純で、通信速度を115200bpsに変更すると文字化けが収まったと報告されている。
編集部見解:シリアルモニタの文字化けは、初めて見ると「壊れてしまった」と不安になりやすいトラブルです。しかし実際には、原因のパターンはそれほど多くありません。落ち着いて1つずつチェックしていけば、多くの場合は数分で解決できると考えられます。
― YOFUKASI AI編集部
この記事では、文字化けが起こる仕組みを難しい専門用語をできるだけ避けてやさしく説明したうえで、実際に直すための手順を紹介します。Arduinoを触り始めたばかりの方でも読み進められる内容にしています。
02シリアルモニタと文字化けの基礎知識
まず、言葉の意味から確認しましょう。シリアルモニタとは、Arduinoが送ってきた文字や数字を、パソコンの画面で確認できるツールのことです。Arduino IDEに標準で付いています。センサーの値をたしかめたいときなど、電子工作では欠かせない機能です。
やさしい用語の整理
- ボーレート(baud rate):1秒間にどれだけの速さでデータをやり取りするかを表す数字。「通信速度」と考えると分かりやすいです。
- Serial.begin():スケッチの中で「これから通信速度は〇〇にします」と決める命令。カッコの中の数字がボーレートです。
- 文字コード:文字を数字に変換するための「対応表」のようなもの。この対応表が送り側と受け取り側で違うと、文字化けが起こります。
文字化けの多くは、このボーレートの不一致が原因です。Arduino IDEでシリアルモニタの出力が文字化けする(工学系窓使いの雑記)では、スケッチとシリアルモニタのボーレートを一致させたら文字化けが直ったこと、スケッチ側を115200bps・シリアルモニタ側を9600bpsのように違う値にすると出力が文字化けすることが報告されている。
Arduinoの基礎からもう一度確認したい場合は、以下の記事も参考になります。Arduinoのコードの書き方の基礎はこちらの記事で詳しく解説している。
03なぜ文字化けするのか、やさしい仕組みの話
ボーレートがずれると、なぜ文字化けするのでしょうか。イメージとしては、「早口で話す人」と「ゆっくり聞き取ろうとする人」がいる会話に近いものです。話す速さと聞き取る速さが合っていないと、言葉の途中で区切りを間違えてしまい、意味の通らない音の羅列に聞こえてしまいます。シリアル通信でも同じように、送る側と受け取る側の速度がずれると、データの区切りを間違えて読んでしまい、結果として画面には記号のような文字が並んでしまうのです。
void setup() {
Serial.begin(9600); // ← ここの数字が「話す速さ」
}
void loop() {
Serial.println("Hello!");
delay(1000);
}
上のコードなら、シリアルモニタ側も「9600 baud」に合わせるだけで直ります。設定はシリアルモニタの画面の右下(または上部)にあるプルダウンメニューから選べます。
日本語だけが化けるケースは少し違う
ボーレートを揃えても、日本語の部分だけ文字化けする場合は、別の原因が考えられます。それが「文字コード」の違いです。WROOMでUTF-8文字コードをShift_JIS変換して日本語漢字表示してみました(mgo-tec電子工作)では、Arduino IDEのスケッチ内部ではUTF-8コードで処理しているが、シリアルモニターではWindows環境ではShift_JISコードになってしまうため、スケッチ中に漢字を入力してシリアルモニターに表示させようとすると文字化けすると説明されている。
アルファベットや数字はどんな文字コードでも同じように表示されるので問題になりにくいのですが、日本語の漢字やひらがなは「変換ルール」が食い違うと表示が崩れやすい、というイメージです。英語だけのメッセージなら正常なのに、日本語を混ぜたとたんに化ける場合は、この文字コードのズレを疑ってみましょう。
実際に、Wi-Fi接続のサンプルコードを試した際に日本語部分だけでなく画面全体が文字化けしてしまったという相談も見られます。arduino ideで文字化けしてしまう(teratail)では、コードの中身は間違っていないのに、シリアルモニタに文字化けしたものだけが表示されてしまうという相談に対し、プログラムとIDEのボーレートの値が異なることが原因だったと報告されている。まずはボーレートを疑うのが近道だと分かります。
04文字化けのタイプ別・原因の見分け方
画面に表示された文字化けの「見た目」によって、疑うべき原因が変わります。以下の表で、自分のケースがどれに近いか確認してみてください。
| 見た目の特徴 | A. 画面全体が記号だらけ | B. アルファベットは正常、日本語だけ変 | C. 起動直後の数文字だけ変 |
|---|---|---|---|
| 主な原因 | ボーレートの不一致 | 文字コード(UTF-8/Shift_JIS)の不一致 | 起動時の自動リセットによる一時的な乱れ |
| 直し方の方向性 | Serial.begin()の数字とシリアルモニタの設定を揃える | 日本語表示の実装方法を見直す | 多くの場合は無視して問題ない |
| 緊急度 | 高い(全体が読めない) | 中程度(一部だけ読めない) | 低い(それ以降は正常なことが多い) |
※症状と原因の対応関係は、複数の実例を踏まえた編集部の整理であり、必ずしもこの通りとは限らない点にご留意ください。ボーレート不一致の一般的な解決策はArduinoシリアル通信 文字化けはボーレートで解決!(openillumi)も参考になる。
まずはA(画面全体が記号だらけ)かどうかを確認するのが第一歩です。ここが直れば、多くの文字化けは解消します。
05実践:文字化けを直す5ステップ
ここでは「シリアルモニタを開いたら記号だらけで表示された」という状況を例に、直すための手順をやさしく紹介します。順番に試してみてください。
-
STEP1. スケッチの中のSerial.begin()を探す
Arduino IDEでスケッチを開き、
Serial.begin(という文字を探します。カッコの中に書かれている数字が、そのスケッチのボーレートです。たとえば:「Serial.begin(9600);」と書いてあれば、ボーレートは9600です。 -
STEP2. シリアルモニタの設定を同じ数字にする
シリアルモニタの画面を開き、右下(または上部)にある通信速度の設定を、STEP1で見つけた数字と同じにします。
たとえば:プルダウンメニューから「9600 baud」を選びます。 -
STEP3. 一度シリアルモニタを閉じて開き直す
設定を変えただけでは反映されないことがあるため、シリアルモニタを一度閉じてから、もう一度開き直します。
たとえば:設定変更後に画面右上の「×」で閉じ、再度シリアルモニタのアイコンをクリックして開いた。 -
STEP4. まだ化ける場合は日本語表示を疑う
アルファベットは正常なのに日本語だけ化けている場合は、文字コードのズレが原因の可能性が高いです。一度、日本語の部分だけコメントアウトして、アルファベットだけの状態で正常に表示されるか確認します。
たとえば:「Serial.println(“こんにちは”);」を一時的に「Serial.println(“Hello”);」に変えて試したところ、正常に表示された(編集部想定シナリオ)。 -
STEP5. それでも直らない場合はケーブル・ポートを疑う
ボーレートと文字コードを確認しても直らない場合は、USBケーブルやパソコン側の設定に原因があるかもしれません。別のケーブルやUSBポートに差し替えて試します。
たとえば:充電専用のUSBケーブルを使っていたため通信ができておらず、データ転送対応のケーブルに替えたところ正常に表示された(編集部想定シナリオ)。
Arduino IDE自体のインストールがまだの場合は、以下の記事も参考になります。
06注意点・よくある勘違い
文字化けが起きても、多くの場合Arduino本体やパソコンが故障したわけではありません。設定の数字が1つずれているだけ、ということがほとんどです。まずは落ち着いてボーレートを確認しましょう。
スケッチとシリアルモニタのボーレートは、必ず同じ数字に揃える必要があります。「だいたい近い数字なら大丈夫」ということはなく、ぴったり一致していないと文字化けが起こります。
アルファベットや数字は問題なく表示できても、日本語の漢字やひらがなは、パソコンの環境によって文字コードの扱いが違うため、化けやすい傾向があります。まずはアルファベットだけで動作確認し、そのあとで日本語表示を試すと、原因の切り分けがしやすくなります。
07FAQ
参考文献
- そう備忘録「Arduino IDEのシリアルモニターで文字化けが起きたので通信速度を変更してみた」そう備忘録, 2021年. https://www.souichi.club/m5stack/serial-monitor-garbled-characters/
- 工学系窓使いの雑記「Arduino IDEでシリアルモニタの出力が文字化けする」工学系窓使いの雑記, 2022年. https://formula4910.blogspot.com/2022/04/arduino.html
- mgo-tec「WROOMでUTF-8文字コードをShift_JIS変換して日本語漢字表示(半角カナ対応)してみました」mgo-tec電子工作, 2016年. https://www.mgo-tec.com/blog-entry-utf8sjis01.html
- teratailユーザー「arduino ideで文字化けしてしまう」teratail, 2023年. https://teratail.com/questions/4i03kj2lc2addo
- openillumi「Arduinoシリアル通信 文字化けはボーレートで解決!」openillumi, 2025年. https://openillumi.com/arduino-serial-garble-baudrate-fix/
- 本文中の具体的な原因特定エピソードは、断りのない限り編集部想定シナリオに基づく想定であり、実測データではありません。
関連記事(内部リンク)
- Arduinoのコードの書き方|基礎から応用まで全てがわかる初心者の手引き ― https://yofukasi-lab-wp.com/2025/03/07/arduino-cord/
- Arduino IDEのダウンロード・インストール方法【2026年版】Windows・Mac・Linux対応 ― https://yofukasi-lab-wp.com/2026/08/01/arduino-install-download/
コメント