Debugging und Troubleshooting
Debugging nennt man den Prozess zur Identifizierung von Fehlern oder Bugs in Programmcode. Darüber hinaus kann man Debugging aber auch für die allgemeine Fehlersuche von technischen Systemen verwenden. Der Begriff “Bug” stammt aus der Zeit, in der Computer aus großen mechanischen Komponenten bestanden, die miteinander verbunden waren, um eine bestimmte Aufgabe auszuführen. Als während des Betriebs ein Fehler entdeckt wurde, der durch ein Insekt, nämlich eine Motte, verursacht wurde, die sich in einem der Relais verklemmt hatte, wurde der Fehler von den Ingenieuren damals erstmals als “Bug” beschrieben. Der Begriff hat sich durchgesetzt und ist heute weit verbreitet.
Debuggen-Schritte
Bei Projekten, die sowohl aus Soft- als auch Hardwarekomponenten bestehen, stellt sich das Debugging nicht immer als einfach heraus, da es eine Vielzahl an Fehlerquellen gibt. Es kann zum einen fehlerhafte Hardware-Komponenten geben, einen Fehler im Aufbau des Stromkreises oder ein Fehler im Programmcode. Besonders schwierig wird es, wenn sich gleichzeitig mehrere Fehler eingeschlichen haben und sich dadurch der Fehler schwer bestimmen lässt.
- Auch Debugging muss man lernen. Aber keine Sorge, mit mehr Projekterfahrung wird es dir immer leichter fallen, mögliche Fehlerquellen auszuschließen.
- Software:
- Achte auf Fehlermeldungen der Arduino IDE (Compiler oder Syntax Fehler).
- Nutze den Seriellen Output, um Inhalte einer Variablen oder andere Informationen während Programmablauf auszugeben.
- Isoliere fehlerhaften Programmcode.
- Prüfe, ob Teile des Programmcodes ausgeführt werden.
- Hardware:
- Prüfen der Steckverbindungen.
- Benutze ein Multimeter, um Verbindungen zu überprüfen.
- Tausche ein Bauteil ggf. aus, um auszuschließen, dass das Bauteil defekt ist.
- Isoliere Teile deines Aufbaus, um sie individuell auf Funktionalität zu prüfen.
Debugging mit Hilfe der seriellen Kommunikation
Weil du während des Ablaufs des Programms nicht sehen kannst, welche Werte deine Variablen zu einem bestimmten Zeitpunkt haben oder welcher Teil des Codes wann ausgeführt wird, kannst du dir diese Informationen über den seriellen Output ausgeben lassen. Der serielle Output wird dir in einem Fenster deiner IDE angezeigt.
Um den seriellen Output zu konfigurieren, verwendest du diesen Befehl in der Setup Methode:
void setup() {
Serial.begin(115200);
}
Um die Daten an den seriellen Output zu senden, verwendest du diesen Befehl:
Serial.print("Schreibe dies in den seriellen Output")
Debugging mit dem Multimeter
Um den Stromkreis zu überprüfen, bietet sich die Verwendung eines Multimeters an.
Man kann:
- Verbindungen zwischen Kabel/Bauteilen prüfen
- Stromstärke messen
Durchgangsprüfung:
- Trenne deinen Aufbau vom Strom.
- Verbinde den roten Messfühler mit V”Ohm”mA und den schwarzen mit COM.
- Stell den Drehschalter auf das Lautsprecher-Symbol.
- Verbinde die beiden Messfühler mit zwei Stellen der zu prüfenden Leitung.
- Wenn der Messstrom durchfließt, ertönt das akustische Signal des Multimeters.
- Die Anzeige “OL.” im Display hat für die Messung keine Bedeutung.
Stromstärke messen (Gleichstrom):
- Verbinde den roten Messfühler mit V”Ohm”mA und den schwarzen mit COM.
- Stelle den Drehschalter auf V= ein.
- Wenn du den Messbereich kennst, also z.B. ~3V, dann kannst du den Drehregler auf 20 stellen.
- Falls nicht bekannt, dann wähle zunächst einen größeren Bereich aus und schalte dann herunter bis ein sinnvoller Wert ablesbar ist.
- Auf dem Display wird der Wert der Spannung zusammen mit ihrer Polarität (als Vorzeichen) angezeigt.
Mögliche Fehlerquellen
- Mikrocontroller wird nicht vom Computer erkannt.
- Upload des Programms schlägt fehl.
- SD-Karte wird nicht erkannt.
Mikrocontroller wird nicht erkannt (Linux)
- Eine mögliche Ursache kann sein, dass die Zugriffsrechte auf den Port nicht nicht richtig konfiguriert sind. Unter Ubuntu oder Fedora kannst du wie folgt vorgehen:
- In der Command Line den User zur Dialout Gruppe hinzufügen:
sudo usermod -a -G dialout <username>
- Rechner neu starten
- Arduino-IDE starten