海外製品であり、現在までプログラムが書き込めない不良品が約0.7パーセントあったため日本国内で下記検査を行っています。
【概略】
- 起動後に、シリアルが開いていない → LED が高速点滅して停止(エラー)
シリアルが開いている場合 - TEST OK を 5回出力
- 同時に LED(D13)が 5回点滅、終了後
- FINISH - RESET を出力
| 項目 | 内容 | 正常時の動作 |
| 接続確認 | シリアル接続の有無を確認 | 接続なし:LEDが高速点滅し停止 |
| 機能テスト | 5回連続の通信&点灯テスト | 「TEST OK」の出力とLED点滅 |
| 自動復旧 | 再検査のための自動リセット | 終了後、0.5秒以内に自動再起動 |
【検査プログラム例(随時改善)】
include int count = 0;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
delay(100);
// シリアルが開かれていない場合 → エラー表示
if (!Serial) {
while (true) {
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
}}}
void loop() {
if (count < 5) {
// シリアル出力
Serial.println("TEST OK");
// LED 点滅
digitalWrite(13, HIGH);
delay(200);
digitalWrite(13, LOW);
delay(200);
count++;
} else {
// 正常終了 → 自動リセット
Serial.println("FINISH - RESET");
delay(500);
// ウォッチドッグを使ってリセット
wdt_enable(WDTO_15MS);
while (true) {
}}}