手元に基板があるが、動作しているかどうかわからない場合、どのようにして動作しているか死んでいるかを確認することができますか?
注意:前回の投稿での@Ricardo'さんのコメントを受けて、今回の投稿をさせていただきました。
ボードをコンピュータのUSBポートに接続し、ボード上の緑色LEDの電源インジケータが点灯することを確認します。標準的なArduinoボード(Uno、Duemilanove、Mega)には、リセットスイッチの近くに緑色のLED電源インジケータがあります。
ボードの中央付近にあるオレンジ色のLED(下の画像では「Pin 13 LED」と表示されています)は、ボードの電源が入ると点滅するはずです(ボードには、ボードが動作しているかどうかを簡単に確認するために、LEDを点滅させるソフトウェアがあらかじめ工場出荷時に組み込まれています)。
.
ボードをコンピュータに接続しても電源LEDが点灯しない場合は、ボードに電源が供給されていない可能性があります。
点滅するLED(デジタル出力ピン13に接続されている)は、ボード上で実行されているコードによって制御されています(新しいボードには、Blinkのサンプルスケッチがプリロードされています)。ピン13のLEDが点滅していれば、スケッチは正しく実行されており、ボード上のチップは動作していることになります。緑色の電源LEDは点灯しているが、ピン13のLEDが点滅していない場合は、工場出荷時のコードがチップに入っていない可能性があります。標準的なボードを使用していない場合は、13番ピンのLEDが内蔵されていない可能性がありますので、お使いのボードの詳細についてはマニュアルをご確認ください。
とのことです。 -- 言語: lang-bash --> USBプログラマーを持っている人は、Arduinoを検査する別の方法があると思います。
プログラマーをArduinoのICSPピンに接続し、適切なパラメータでavrdude
を呼び出すと、Arduinoのヒューズを読み取ることができます。
avrdude -c programmer-id -p partno -P port
Arduino Unoの場合、partno
はm328p
です。プログラマーID」は、使用するデバイスによって異なります。私の場合(mySmartUSB light)、stk500v2
がサポートされていて、port
は/dev/ttyUSB0
です。ここで
avrdude -c stk500v2 -p m328p -P /dev/ttyUSB0
と入力すると、以下のような出力が得られます。
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e950f
avrdude: safemode: Fuses OK
avrdude done. Thank you.
UNOボードは正しい署名で応答し、いくつかのアクションの準備ができています :)
私のUSBプログラマには、両側に2x3のメスコネクタが付いた6芯のリボンケーブルが付属しています。いつものように、ピン1の線は赤で表示されています。プログラマーの2x3メスコネクタには切り欠きがあるため、ケーブルは一方向にしか収まりません。
Arduino UNOを見ると、リセットボタンの右側にICSPヘッダーがあります。
ピンアウトは以下の通りです。
MISO 1 2 VCC SCK 3 4 MOSI RESET 5 6 GND
NOTE ピン1は左上のもので、白い点が付いています。
もし、もう一台動くUnoがあって、両方ともマイクロコントローラ・チップがソケット接続されていれば、既知のボードを使って未知のボードのチップにテスト・スケッチをプログラムし、それを未知のボードに戻して、実行することができます。
私は以下の(擬似コード化された)テスト・スケッチを、自分の手作りのボードを素早くチェックするのに使っていますが、工場で作られた未知のボードをテストするのにも同様に便利です。網羅的なテストではなく、基本的なデジタルI/O、シリアルI/O、ショートやオープンをチェックしています。
forever,
for each digital I/O pin:
write high;
delay 100ms;
write low;
end;
write "Hello, World!\n" to serial output;
while serial character available,
write character to serial output;
end;
write "\n" to the serial output;
end;
テスト用のLED(抵抗をはんだ付けしたLED)を任意のI/Oとグランドの間に接続すると、2秒ごとに点滅します。点滅しない場合は、そのピンが故障しているか、接続が悪いのかもしれません。
数字的に隣り合ったピン(物理的に隣り合っていなくても構いません)に接続された2つのテストLEDは、順番に点滅します。2つのLEDが同時に点滅した場合、そのピンの間にショート(おそらくハンダブリッジ)があることを示します。
端末は2秒ごとに "Hello World!" と表示されるはずです。そうでない場合は、そのピン、FTDIケーブル、またはオンボードのUSB/シリアルチップが故障している可能性があります。
キーボードで何かを入力すると、それがシリアルターミナルに繰り返されるはずです(前のテストが合格した場合)。そうでない場合は、そのピン、FTDIケーブル、またはオンボードのUSB/シリアルチップが故障している可能性があります。