ガイド · 読了まで16分

Arduinoが壊れたかも?症状、診断、復活させる方法

Arduinoが壊れたかも?ON LEDが消えている、チップが熱い、ポートが出ないときに、Vin、ポリスイッチ、レギュレーター、USBチップ、ピンを調べ、ブートローダーを書き直し、ATmega328Pを交換する方法を紹介します。

「Arduinoが壊れたかも?」は、電子工作をしていれば誰もが一度は抱く疑問です。ワイヤーが間違った場所に触れたり、モーターをつないだりした途端、ボードが急に静かになってしまいます。うれしいことに、ほとんどの場合、ボード全体が壊れているわけではありません。Arduino Unoはいくつかの独立した部分でできています。USB接続とそのヒューズ、電圧レギュレーター、USBシリアル変換チップ、そしてメインのマイコンであるATmega328Pです。どれか1つが故障しても、ほかは無事なことが多く、正しく診断できれば、ボードの救出がわずか2分で済むこともあります。

このガイドでは、症状を正しく読み取り、ボードを段階的に切り分けて、どの部分が故障したのかを突き止める方法を紹介します。Vin入力からの給電、テスターによるポリスイッチとレギュレーターの確認、熱くなるチップの発見、ループバックテストによるUSBチップの確認、そしてピンを1本ずつ調べる2つのArduinoスケッチを順に見ていきます。続いて、壊れたブートローダーを2台目のArduinoで書き直し、必要ならATmega328Pを交換し、二度とボードを壊さないために守るルールをまとめます。書き込みエラーのソフトウェア面は「Arduinoに書き込めないとき」で別に取り上げています。

Arduino Unoのボード
Arduino Uno:USB入力、DCジャック、5 Vレギュレーター、USBシリアル変換チップ、ソケットに挿さったATmega328P。故障は通常、このうち1か所だけに起きます。

Arduinoが壊れたかも?最初の症状とその意味

診断を始める前に、ボードが伝えていることに耳を傾けましょう。緑のON LEDは5 Vラインに電源が来ているか、L LED(D13)はマイコンとブートローダーが動いているか、TX/RX LEDはUSBシリアル変換チップがデータをやり取りしているかを示します。下の表に、よくある症状とまず確認すべき場所をまとめました。

症状考えられる故障最初のステップ
ON LEDがまったく点灯しない5 Vラインのショート、作動したポリスイッチ、レギュレーターの故障、またはケーブル不良すべて外し、別のケーブルとVinからの給電で試す
ON LEDは点灯するが、ボードがとても熱くなるチップが内部でショートしているすぐに電源を抜き、熱いチップを探す
パソコンがボードを認識しない充電専用ケーブル、ドライバ未インストール、またはUSBチップの故障別のケーブルを試し、次にループバックテストを行う
ポートは表示されるが、書き込めないブートローダーの破損、D0/D1につないだモジュール、またはATmega328Pの損傷リセット時にL LEDが点滅するか確認する
コードは動くが、1本のピンが反応しないそのピンが過電流や過電圧で焼損しているピンテスト用スケッチを実行する
ボードがランダムにリセットする電源不足、モーターのノイズ、またはレギュレーターの過熱負荷を別の電源から給電する
診断を始める前に、ボードにつないでいるものをすべて外してください。シールド、ジャンパーワイヤー、センサー、モーター、ブレッドボードへの接続です。USBケーブルだけをつなぎ、金属でない台の上でテストします。原因がボード自体ではなく、つないだモジュールのショートや、ボードが供給できる以上の電流を引く負荷であることはよくあります。ボード単体で動くなら、問題は外側にあります。

ステップ1:目と鼻とケーブルで最初の確認

  1. 明るい場所でボードをよく見ます。黒ずんだりふくらんだりしたチップ、割れたパッケージ、溶けたはんだ、焦げたパターンを探します。特にレギュレーター、ポリスイッチ、USBチップの周りを見てください。
  2. においをかぎます。焼けた電子部品は鼻をつく独特のにおいを残し、たいてい故障した部品の周りがいちばん強くにおいます。
  3. ボードの裏側を確認します。金属の机、ワイヤーの切れ端、導電性スポンジがはんだ付け部分同士をつないでショートさせることがあります。
  4. 別のUSBケーブルと別のUSBポートを試します。安いケーブルの中には電源線しかなく、データを送れないものがあります。これが、壊れたボードのように見える最も多い原因です。
  5. ボードを挿したときにパソコンがUSBの接続音を鳴らすか、ON LEDが点灯するかをメモします。次のステップはこの2つの観察結果で決まります。

Arduino Unoの電源経路:どの部品が何に電源を送る?

故障を最速で見つけるには、ボード上で電流が通る道を知ることです。USBからの5 Vは、まず500 mAのポリスイッチ(自己復帰型ヒューズ)を通り、次に小さなPチャネルMOSFETを通って5 Vラインに届きます。DCジャックからの電圧は、まず逆接続を防ぐダイオードを通ってVINラインに届き、NCP1117レギュレーターで5 Vに下げられます。VINが約6.6 Vを超えると、コンパレーターがUSB側のMOSFETをオフにするので、2つの電源がぶつかり合うことはありません。3.3 Vは、小さなLP2985レギュレーターで5 Vラインから作られます。ON LED、USBシリアル変換チップ(純正品ではATmega16U2、互換品では多くがCH340)、ATmega328Pはすべてこの5 Vラインから電源を受けます。

部品役割故障するとどうなる?
ポリスイッチ(500 mA)USBを過電流から保護するUSBではON LEDが消灯、Vinでは点灯
逆接続保護ダイオードDCジャックを逆極性から保護するDCジャックではON LEDが消灯、USBでは点灯
NCP1117 5 VレギュレーターVINを5 Vに下げるDCジャックから5 Vが出ない、または5 Vラインに高い電圧がかかる
LP2985 3.3 Vレギュレーター3V3ピンに電源を供給する(最大50 mA)3V3ピンに電圧が出ない
ATmega16U2またはCH340USBシリアル変換パソコンがポートを認識しない、またはデータが通らない
ATmega328Pコードを実行するマイコン書き込めない、リセット時にL LEDが点滅しない、ピンが動かない
SOT-223パッケージの1117レギュレーターモジュール
1117ファミリーのレギュレーター(このモジュールはAMS1117 3.3 V)。UnoのNCP1117 5 Vレギュレーターも同じSOT-223パッケージで、真っ先に過熱しやすい部品の1つです。

ステップ2:ON LEDが消えているなら、USBとVinでテスト

ボードに一度はUSBから、一度はDCジャックにつないだ9 VのACアダプター(またはVinピンへの7〜12 V)から給電し、そのたびにON LEDを見ます。2つの経路に共通するのは5 Vラインなので、この簡単な比較で故障箇所をかなり絞り込めます。ポリスイッチが過電流で作動した場合は、数分間電源を切ったままにすると自然に復帰します。ショートが残っていれば、挿し直したときにまた作動します。電池やACアダプターの選び方は「Arduinoを電池で動かす方法」で詳しく説明しています。

USBでのON LEDDCジャック/VinでのON LED意味
消灯点灯USB側:ケーブル、USBソケット、ポリスイッチ、またはUSB側のMOSFET
点灯消灯ジャック側:ACアダプター、逆接続保護ダイオード、またはNCP1117レギュレーター
消灯消灯5 Vラインのショート(チップが熱くなる)、または両方の経路が損傷
点灯点灯電源部は正常。問題はUSBチップ、ブートローダー、またはATmega328P

ステップ3:テスターでショート、ポリスイッチ、レギュレーターを確認

  1. ショートのテスト(ボードの電源オフ):テスターを抵抗レンジか導通レンジにして、テスト棒を5VピンとGNDピンに当てます。最初は低い値から始まり、コンデンサが充電されるにつれて上がっていくのは正常です。ブザーが鳴り続ける、または数Ωより低い値のまま変わらない場合はショートしています。
  2. ポリスイッチのテスト(USBを挿した状態):直流電圧レンジで黒のテスト棒をGNDに当て、ポリスイッチの両端を順に測ります。どちらの端でも約5 Vになるはずです。片方が5 Vで、もう片方がほぼ0なら、ポリスイッチが開いています。
  3. レギュレーターのテスト(DCジャックに9 V):NCP1117の入力ピンで約8.3 V(ダイオードで0.7 V下がる)、出力で5.0 Vになるはずです。
  4. 3.3 Vのテスト:3V3ピンとGNDの間で3.2〜3.4 Vになるはずです。
  5. 測定はこの順番で行ってください。各ステップの結果で、次の測定の意味が変わります。テスターのレンジと安全な測り方は「テスターの使い方」で詳しく説明しています。
レギュレーターの出力で5 Vではなく入力に近い値(例えば8 V)が測れたら、レギュレーターが内部でショートし、入ってきた電圧をそのまま5 Vラインに流しています。その場合はすぐに給電をやめてください。5 Vライン上のATmega328P、USBチップ、ボードにつないだすべてのモジュールは、5.5 Vを超えると損傷します。レギュレーターを交換したあとも、これらの部品を1つずつテストする必要があります。

ステップ4:熱くなるチップを探す

5 Vラインがショートしていると、ショートした部品が電流の大半を引き込み、数秒で熱くなります。ボードをUSBに挿し、3〜5秒待ってから抜き、ATmega328P、USBチップ、レギュレーターに指先を順に軽く触れてみます。触れないほど熱い部品が見つかれば、そこがショートの場所です。ATmega328Pが熱い場合は、たいていどこかのピンに5 Vを超える電圧がかかっています。USBチップが熱い場合はUSB側に問題があり、レギュレーターが熱い場合は、レギュレーター自体の故障か、5 Vライン上の負荷が電流を引きすぎています。このテストはボードに長く電源を入れたままにせずに行ってください。そうしないと、正常な部品まで損傷することがあります。

ステップ5:ポートが表示されないときはUSBチップをテスト

ON LEDは点灯するのにパソコンがボードを認識しない場合は、まずソフトウェア側の原因を取り除きます。互換品のCH340チップ用のドライバをインストールし、Windowsではデバイスマネージャーの「ポート(COMとLPT)」、macOSとLinuxでは/dev/cu.*や/dev/ttyUSB*のデバイスを確認します。デバイスがまったく出てこない、または不明なデバイスとして表示される場合は、USBシリアル変換チップそのものをテストします。ループバックテストはATmega328Pを切り離し、USBチップが送ったデータをそのまま受け取らせるテストです。これで問題がUSBチップにあるのか、マイコンにあるのかを見分けられます。

  1. ボードの電源を切り、ジャンパーワイヤーでRESETピンをGNDにつなぎます。これでATmega328Pがリセット状態に保たれ、TX/RXラインが空きます。
  2. 2本目のジャンパーワイヤーで、D0(RX)ピンとD1(TX)ピンをつなぎます。
  3. ボードをUSBに挿し、Arduino IDEでポートを選んでシリアルモニタを開きます(ボーレートは何でもかまいません)。
  4. 何か入力して「送信」を押します。入力した文字がそのまま返ってきてTX/RX LEDが点滅すれば、USBチップは正常です。問題はATmega328Pかブートローダーにあります。
  5. 文字が返ってこず、ポートも表示されない場合は、USBチップかUSBソケットが損傷しています。その場合でも、外付けのUSB-TTL変換モジュールやISP書込装置を使えばコードを書き込めます。
ブートローダーが生きているかを最速で確かめるには、リセットボタンを押します。UnoのOptibootブートローダーは、リセットのたびにL LED(D13)を数回すばやく点滅させます。この短い点滅が見えれば、ATmega328Pは動いていてブートローダーも無事です。問題はおそらくケーブル、ドライバ、ポートの選択、またはD0/D1につないだモジュールです。

ステップ6:ピンの焼損テスト

書き込みはできるのにプロジェクトの動作がおかしい場合は、ピンが1本だけ焼損しているかもしれません。モーター、リレーのコイル、抵抗なしのLEDをピンにつないだり、2つの出力同士をショートさせたり、ピンに5 Vを超える電圧をかけたりすると、ATmega328Pのほかの部分は動いたまま、そのピンだけが壊れることがあります。下の1つ目のスケッチは、すべてのピンを内部プルアップ付きの入力に設定します。正常なピンは、何もつないでいないときHIGHを読むはずです。次に、ジャンパーワイヤーの一端をGNDにつなぎ、もう一端でピンに順に触れます。触れるたびに、シリアルモニタでそのピンがLOWに変わるのが見えるはずです。

C++ (Arduino IDE)
1// Arduino Uno giriş testi / input test (D0 ve D1 seri port için hariç / D0 and D1 skipped for serial)
2const byte PINS[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1, A2, A3, A4, A5};
3const byte COUNT = sizeof(PINS);
4bool lastState[COUNT];
5
6void printPin(byte p) {
7  if (p >= A0) {
8    Serial.print('A');
9    Serial.print(p - A0);
10  } else {
11    Serial.print('D');
12    Serial.print(p);
13  }
14}
15
16void setup() {
17  Serial.begin(9600);
18  for (byte i = 0; i < COUNT; i++) pinMode(PINS[i], INPUT_PULLUP);   // dahili pull-up açık / internal pull-up on
19  delay(10);
20  Serial.println(F("1) Bos pin testi / free pin test:"));
21  for (byte i = 0; i < COUNT; i++) {
22    lastState[i] = digitalRead(PINS[i]);
23    printPin(PINS[i]);
24    Serial.println(lastState[i] ? F("  HIGH  tamam / ok") : F("  LOW   SUPHELI / suspect"));
25  }
26  Serial.println(F("2) GND'ye bagli kabloyla pinlere sirayla dokun / touch each pin with a GND wire"));
27}
28
29void loop() {
30  for (byte i = 0; i < COUNT; i++) {
31    bool v = digitalRead(PINS[i]);
32    if (v != lastState[i]) {                 // durum değişti / state changed
33      lastState[i] = v;
34      printPin(PINS[i]);
35      Serial.println(v ? F("  birakildi / released") : F("  GND algilandi / GND detected"));
36    }
37  }
38  delay(20);
39}

何もつないでいないのにLOWを読むピンや、GNDに触れてもまったく変わらないピンは怪しいです。入力段が内部でショートしているか、断線しています。互換品の一部ではD13のL LEDがピンに直接つながっているため、何もつないでいなくてもD13がLOWを読むことがあります。これは故障ではありません。2つ目のスケッチは、ピンの出力段をテストします。すべてのピンが1秒ごとにHIGHとLOWを繰り返します。LEDのカソードをGNDに、アノードを220 Ωの抵抗の一端につなぎ、抵抗のもう一端でピンに順に触れると、正常なピンではLEDが点滅します。適切な抵抗値は「LED抵抗計算ツール」で求められます。テスターで測ると、HIGHのとき約5 Vになるはずです。まったく点灯しない、暗く光る、4 Vを大きく下回るピンは損傷しています。

C++ (Arduino IDE)
1// Arduino Uno çıkış testi / output test: bütün pinler 1 sn HIGH, 1 sn LOW / all pins 1 s HIGH, 1 s LOW
2const byte PINS[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1, A2, A3, A4, A5};
3const byte COUNT = sizeof(PINS);
4
5void setAll(bool level) {
6  for (byte i = 0; i < COUNT; i++) digitalWrite(PINS[i], level);
7}
8
9void setup() {
10  Serial.begin(9600);
11  for (byte i = 0; i < COUNT; i++) pinMode(PINS[i], OUTPUT);
12  Serial.println(F("LED + 220 ohm probuyla pinlere dokun / touch the pins with an LED + 220 ohm probe"));
13}
14
15void loop() {
16  setAll(HIGH);
17  Serial.println(F("HIGH (~5 V)"));
18  delay(1000);
19  setAll(LOW);
20  Serial.println(F("LOW (0 V)"));
21  delay(1000);
22}

このスケッチの実行中は、ピンにほかのものを何もつながないでください。すべてのピンが出力として駆動されるからです。アナログ入力もテストしたい場合は、A0をGND、3V3、5Vに順につなぎ、analogRead()で読み取ります。それぞれ約0、675、1023になるはずです。ピンの一覧と各ピンの機能は「Arduino Unoのピン配置」で、ボードの図は「ピン配置」ツールで確認できます。

ブートローダーの書き直し:Arduino as ISP

電源部は正常でループバックテストも通るのに、リセット時にL LEDが点滅せず、書き込むたびに「avrdude: stk500_getsync(): not in sync」(同期できない)エラーが出る場合は、ブートローダーが消えたか壊れている可能性があります。ブートローダーは、USB経由の書き込みを可能にする小さなプログラムで、ISP(インシステムプログラミング)で書き直せます。そのために専用の書込装置を買う必要はありません。正常な2台目のArduino Unoに、ArduinoISPのスケッチ例を書き込めば書込装置になります。ISP接続にはSPIピンを使います。書き込み先ボードの6ピンICSPヘッダーも使えます。

書込装置のUno(ArduinoISP)書き込み先のUnoICSPヘッダー上
D13D13 (SCK)3番ピン
D12D12 (MISO)1番ピン
D11D11 (MOSI)4番ピン
D10RESET5番ピン
5V5V2番ピン
GNDGND6番ピン
RESETとGNDの間に10 µF(プラス側をRESETへ)―書込装置の自動リセットを防ぐ
  1. 正常なUnoをパソコンにつなぎ、「ファイル」>「スケッチ例」>「11.ArduinoISP」>「ArduinoISP」を開いて、このボードに書き込みます。
  2. パソコンから外し、上の表のとおりに2台のボードを配線して、書込装置側のUnoのRESETピンとGNDピンの間に10 µFのコンデンサを取り付けます。
  3. 書込装置をもう一度USBに挿します。「ツール」メニューで、ボードにArduino Uno、ポートに書込装置のポートを選びます。
  4. 「ツール」>「書込装置」でArduino as ISPを選びます。似た名前の「ArduinoISP」は別売りのUSB書込装置用なので、選ばないでください。
  5. 「ツール」>「ブートローダを書き込む」(Burn Bootloader)を実行します。数秒で終わり、「Done burning bootloader」(ブートローダーの書き込み完了)と表示されます。
  6. 配線を外し、書き込み先のボードをそのボード自身のUSBでつないで、Blinkのスケッチ例を書き込みます。リセット時に再びL LEDがすばやく点滅すれば、ボードは救出できました。

失敗した場合は、avrdudeが出すシグネチャ(signature)のメッセージが多くを教えてくれます。「Device signature = 0x000000」や「0xffffff」は、書込装置が書き込み先のチップとまったく通信できていないことを示します。配線、10 µFのコンデンサ、書き込み先に5 Vが来ているかを確認してください。すべて正しければ、ATmega328Pはおそらく壊れています。シグネチャが1E 95 0Fなら、チップはATmega328Pで、通信は正常です。1E 95 14が表示された場合、手元のチップは「P」の付かないATmega328です。このチップに合ったボード定義を使う必要があります。

ATmega328Pの交換

純正のArduino Uno R3や多くの互換品では、ATmega328Pは28ピンのDIPパッケージでソケットに挿さっているので、はんだ付けなしで交換できます。マイコンが熱くなる、シグネチャが読めない、ピンの大半が壊れている場合は、これが最も経済的な修理方法です。チップを外したらショートも消えた(ON LEDが再び点灯し、ボードが熱くならない)なら、故障がチップにあることが確定します。新しいチップを買うときは、Unoのブートローダーが書き込み済みのATmega328P-PUを選ぶと楽です。何も書き込まれていないチップを買った場合は、上のArduino as ISPの方法でブートローダーを自分で書き込めます。NanoやSMD版のUnoのようなボードでは、チップがボードにはんだ付けされているので、交換にはホットエアーステーションと経験が必要です。

  1. ボードの電源を切り、チップの切り欠き(1番ピン側)がどちらを向いているか写真を撮ります。
  2. 小さなマイナスドライバーをチップとソケットの間に差し込み、両端を交互に少しずつ持ち上げます。片側だけから無理にこじると、足が曲がります。
  3. 新しいチップの足は、たいてい少し外側に開いています。チップを横に倒して平らな机に押し当て、両側の足の列をそろえて少し内側に曲げます。
  4. 切り欠きが古いチップと同じ向きになるようにチップをソケットに合わせ、すべての足が穴に入っていることを確かめてから、均等な力で押し込みます。
  5. ボードをUSBに挿し、リセット時にL LEDが点滅することを確認し、Blinkのスケッチ例を書き込んでテストを終えます。

ESP32とRaspberry Pi Picoについての短いメモ

同じ考え方はほかのボードにも当てはまり、変わるのは部品だけです。ESP32の開発ボードには、5 Vを3.3 Vに下げるAMS1117のようなレギュレーターと、CP2102またはCH340のUSBチップが載っています。レギュレーターが熱くなるなら、3.3 Vラインのショートを探します。ESP32のピンは5 V非対応なので、最も多い故障はピンに5 Vをかけてしまうことです。書き込み中の「Failed to connect」(接続できない)エラーは、多くの場合故障ではなく、BOOTボタンを押し続ける必要があるだけです。詳しくは「Arduinoに書き込めないとき」を見てください。Raspberry Pi Picoでは、BOOTSELボタンを押したままUSBに挿すのが最速のテストです。パソコンにRPI-RP2というドライブが現れれば、RP2040とUSB接続は正常です。Picoのピンも5 V非対応で、3V3(OUT)ピンでは約3.3 Vが測れるはずです。

Arduinoを壊さないための10のルール

  • 1ピンあたり20 mA:1本のピンから引く電流は最大20 mAにします。絶対最大定格は40 mAで、全ピンの合計は200 mAを超えないようにします。
  • LEDには必ず抵抗:抵抗なしでLEDをつなぐと、ピンにもLEDにも負担がかかります。5 Vなら220〜330 Ωで十分です。
  • ピンに5 Vを超える電圧をかけない:入力ピンの電圧は、電源電圧より0.5 V以上高くしてはいけません。12 Vの信号はピンを一瞬で壊します。
  • モーター、リレー、ポンプはピンに直接つながない:トランジスタかMOSFETとフライバックダイオードを使います。回路の例は「ミニウォーターポンプ」のガイドにあります。
  • Vinには7〜12 V:これが推奨範囲です。12 Vを超えるとレギュレーターが熱くなり、20 Vを超えると定格を超えます。
  • Vinピンに逆極性で給電しない:DCジャックの保護ダイオードは、Vinピンから入れる電源を守りません。プラスとマイナスを間違えるとボードが壊れます。
  • 3V3ピンから50 mAを超えて引かない:Wi-Fiモジュールや大きなディスプレイのような負荷には、別の3.3 Vレギュレーターを使います。
  • 配線を変えるときは電源を切る:電源が入った回路でワイヤーを抜き挿しすることが、一瞬のショートの最も多い原因です。
  • ボードを金属の上に置かない:裏側のはんだ付け部分が金属の机や工具、ワイヤーの切れ端に触れるとショートします。プラスチックの足やケースを使ってください。
  • GNDは共通に、電源は別に:外部電源で動かす負荷とはGNDをつなぎますが、大きな電流をボード経由で流さないでください。
実験中は、ボードに安価な安全対策を加えましょう。USBとパソコンの間に電流表示付きのUSBチェッカーを入れるか、電流制限付きの卓上電源を使います。電流を300〜500 mAに制限しておけば、ショートしたときに電源が電圧を下げるので、ボードが焼ける前に問題に気づけます。次のプロジェクトに進む前に、正常動作時にボードがどれくらい電流を引くかもメモしておきましょう。この値は、あとで故障を探すときにとても役立ちます。

Arduinoが壊れたと決めつける前に、どの部分が沈黙したのかを突き止めれば、多くの場合ボードは救えます。ON LEDで電源経路を、ループバックテストでUSBチップを、リセット時のL LEDでブートローダーを、ピンテスト用スケッチでATmega328Pの足を1本ずつ確かめます。ブートローダーは書き直せますし、ソケットのチップは数分で交換でき、上のルールを守れば次のボードは長持ちします。ボードが再び正常に動く様子を見るには、BlueGraysアプリの「LEDの点滅」「信号機」「ボタンでLEDを点灯(押している間のみ)」「LCDディスプレイ付きデジタル電圧計」のプロジェクトを、ステップごとの回路図とコードで試してみてください。

よくある質問

Arduinoが壊れたかどうかは、どうすれば分かりますか?

まずボードにつないでいるものをすべて外し、USBだけで試します。ON LEDが点灯しなければ電源側の問題、ボードが熱くなればチップのショート、パソコンが認識しなければUSBチップかケーブルの問題です。リセットボタンを押したときにL LEDがすばやく点滅すれば、ATmega328Pとブートローダーは動いていて、ボードはおそらく壊れていません。

ArduinoのONランプが点灯しません。どうすればいいですか?

別のUSBケーブルと、DCジャックにつないだ9 VのACアダプターでそれぞれ試します。USBのときだけ消えているならポリスイッチかUSBソケット、ジャックのときだけ消えているならダイオードかレギュレーターが怪しいです。どちらでも消えているなら、テスターで5VとGNDの間がショートしていないか測り、熱くなるチップを探します。

Arduinoのチップが熱くなったら、壊れていますか?

正常なATmega328PやUSBチップは、触って分かるほど温かくなりません。数秒で触れないほど熱くなるチップがあれば、おそらく内部でショートしています。すぐに電源を切ってください。ソケットのATmega328Pなら外してボードをもう一度試し、ショートが消えればチップの交換だけで済みます。

Arduinoがパソコンに表示されないのは、故障ですか?

必ずしもそうではありません。最も多い原因は充電専用のUSBケーブルか、互換品のCH340用ドライバが入っていないことです。別のケーブルとドライバでも表示されない場合は、RESETをGNDに、D0をD1につないでループバックテストを行います。シリアルモニタに入力した文字が返ってくれば、USBチップは正常です。

Arduinoにブートローダーを書き込むには?

正常な2台目のArduinoに「ファイル」>「スケッチ例」>「ArduinoISP」を書き込み、そのD13、D12、D11を書き込み先ボードの同じピンに、D10を書き込み先のRESETピンにつなぎ、5VとGNDも互いにつなぎます。書込装置のRESETとGNDの間に10 µFのコンデンサを入れ、書込装置として「Arduino as ISP」を選んで「ブートローダを書き込む」を実行します。

Arduinoのピンが1本だけ壊れることはありますか?

はい。1本のピンから40 mAを超える電流を引く、2つの出力をショートさせる、ピンに5 Vを超える電圧をかける、といったことで、そのピンだけが壊れ、ボードのほかの部分は動き続けることがあります。どのピンが壊れたかは、INPUT_PULLUPを使う入力テストと、すべてのピンを点滅させる出力テストで見つけられます。見つけたら、プロジェクトを正常なピンに移しましょう。

全プロジェクトを見る
LEDの点滅
#1初級

LEDの点滅

電子工作の第一歩は、1個のLEDを点けたり消したりすることです。Arduinoで短い間隔で点灯と消灯を繰り返すと、LEDが素早く点滅します。ボードが光を制御する仕組みを最もシンプルな形で確かめ、これから取り組むプロジェクトの基礎を身につけます。

4.6(188)
1127
2個のLEDを点灯
#2初級

2個のLEDを点灯

2個のLEDが素早く交互に点滅します。一方が点くともう一方が消え、まるでボールを投げ合っているようです。ArduinoがそれぞれのLEDを5分の1秒ずつ点灯させ、次のLEDに切り替えます。1個のLEDの次に、複数の光をまとめて制御する方法を学ぶのに最適なステップです。

4.6(105)
343
信号機
#3初級

信号機

毎日道路で見かける信号機の小さな模型です。赤が2秒点灯し、黄が一瞬点灯した後、緑が2秒点灯します。その後、再び黄を経て赤に戻り、この動作を繰り返します。3個のLEDを順番に点けたり消したりしながら、タイミングの組み立て方を学びます。

4.8(131)
397
ボタンでLEDを点灯(押している間のみ)
#9初級

ボタンでLEDを点灯(押している間のみ)

呼び鈴のように、押している間は点灯し、離すと消灯します。Arduinoはボタンの状態を常に読み取り、押されている間はLEDを点灯させ、指を離した瞬間に消灯させます。このシンプルな回路で、ボードが外部からの操作を検知する仕組みを学べます。

4.8(113)
229
ボタンでLEDの点灯・消灯を切り替え
#10初級

ボタンでLEDの点灯・消灯を切り替え

部屋の照明スイッチのように、ボタンを1回押すと点灯し、もう1回押すと消灯します。Arduinoはボタンが押されるたびにLEDの状態を反転させます。ボタン内部の小さな接点の振動で誤動作しないよう、短い待ち時間も設けます。1つのボタンでオン・オフを切り替える、シンプルな仕組みです。

4.8(100)
167
HC-SR04で距離を測定(シリアルモニタ表示)
#27初級

HC-SR04で距離を測定(シリアルモニタ表示)

HC-SR04センサーは、コウモリが暗闇で道を見つけるのと同じ仕組みで動作します。人には聞こえない音を出し、その反響を捉えて前方の物体までの距離を測ります。Arduinoは0.5秒ごとに距離をセンチメートル単位でコンピューターの画面に表示し、3〜100センチメートルの測定値を示します。駐車センサーや障害物を避けるロボットなどのプロジェクトの基礎になります。

4.6(46)
71
DHT11で温度と湿度を測定
#55中級

DHT11で温度と湿度を測定

部屋の温度は何度で、空気は湿っているでしょうか、それとも乾燥しているでしょうか?DHT11センサーが温度と湿度を測定し、Arduinoが2行のLCDディスプレイに値を表示して、数秒ごとに更新します。センサーに異常があればエラーメッセージが表示されます。自分だけの小さな気象観測装置を作る第一歩です。

4.7(47)
73
LCDディスプレイ付きデジタル電圧計
#56中級
プレミアム

LCDディスプレイ付きデジタル電圧計

自作の測定器で、電池や電源アダプターが出力する電圧を調べます。2つの抵抗で作る分圧回路が、高い電圧をボードで読み取れるレベルまで下げます。Arduinoが元の電圧を計算し、2行のLCDディスプレイにボルト単位で表示します。この回路では約55ボルトまでの直流電圧を測定できます。コンセントの商用電源には絶対に接続しないでください。

4.5(27)
36