Arduino:
Fehlerbehandlung

Wie geht das:

Nehmen wir an, Ihr Arduino liest einen Sensor, der gelegentlich Werte außerhalb des Bereichs produzieren kann. So könnten Sie das handhaben:

int sensorWert = analogRead(A0);

if (sensorWert >= 0 && sensorWert <= 1023) {
  // Wert liegt im Bereich, weiter mit der Verarbeitung
  Serial.println(sensorWert);
} else {
  // Wert liegt außerhalb des Bereichs, Fehler behandeln
  Serial.println("Fehler: Sensorwert außerhalb des Bereichs.");
}

Beispielausgabe:

523
Fehler: Sensorwert außerhalb des Bereichs.
761

Vertiefung

Die Fehlerbehandlung war nicht immer so geradlinig. In den frühen Tagen ignorierten Entwickler oft Fehler, was zum gefürchteten “undefinierten Verhalten“ führte. Mit der Evolution der Programmierung entwickelten sich auch die Werkzeuge - in vielen Sprachen gibt es jetzt Ausnahmen, aber in der Arduino-Welt bleibt es aufgrund von Hardwarebeschränkungen und C++-Wurzeln immer noch beim alten ’erst-überprüfen'.

In der Arduino-Programmierung sieht man oft if-else-Anweisungen für die Fehlerbehandlung. Es gibt jedoch Alternativen: die Verwendung der assert-Funktion, um die Ausführung zu stoppen, wenn eine Bedingung fehlschlägt, oder das Design von Ausfallsicherungen innerhalb Ihrer Hardwarekonfiguration.

Wenn Sie eine Fehlerbehandlung implementieren, sollten Sie die Auswirkungen des Anhaltens des Programms im Vergleich zum Fortfahren mit einem standardmäßigen oder sicheren Zustand abwägen. Es gibt einen Kompromiss, und die richtige Wahl hängt von dem potenziellen Schaden von Unterbrechungen im Vergleich zu einem falschen Betrieb ab.

Siehe auch

Vertiefen Sie Ihre Kenntnisse in Fehlererkennung und -behandlung mit diesen Ressourcen:

Dies sollte Ihnen das Wissen und die Zuversicht geben, die Fallstricke von Fehlern bei Ihren Arduino-Abenteuern zu vermeiden.