海外製品であり、現在までプログラムが書き込めない不良品が約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) {

}}}