Arduino 関数定義が動かない時のエラーメモ

Arduinoで関数を定義する場合は、以下のようにsetupとloop以外のところで定義する。

---------------------------------
void setup() {
  // 処理書く
}

void loop() {
  // 処理書く
}

[戻り値の型] 関数名() {
  // 処理書く
}
---------------------------------

「error: return-statement with a value, in function returning 'void' [-fpermissive]」というエラーは、戻り値の指定がおかしい場合などに出力される。
自作関数はvoidか型を「戻り値の型」に定義する。

1.void 関数名() ← voidは戻り値を必要としない場合。

(例)

  void loop() {
     display();
  }

  void display() {
     int r = r + 10;
     Serial.printf(r);
  }

2.[戻り値の型] 関数名() ← 戻り値を必要する場合。

(例)

  void loop() {
     String txt = display();
     Serial.print(txt);
  }

  String display() {
     String r = "abc";
     return r; // 戻り値が必要な場合は定義する。returnがないと値が戻ってこない。
  }

■参考サイト
Arduinoチュートリアル 基礎編