Debugstrategieën
Soms doet je Arduino niet wat je verwacht. Misschien gaat een led niet aan, krijg je geen sensorwaarde te zien, of reageert een knop niet.
Dat betekent niet dat je alles fout hebt gedaan — het betekent dat je moet zoeken waar het probleem zit.
Debugstrategieën zijn handige manieren om fouten op te sporen en op te lossen. Die fouten kunnen zitten in:
- De hardware: bijvoorbeeld een draadje dat los zit of een component die verkeerd is aangesloten.
- De software: bijvoorbeeld een fout in je code of een verkeerde voorwaarde.
Ook al ziet het eindresultaat er hetzelfde uit — je opstelling werkt niet — de oorzaak kan heel verschillend zijn.
Debuggen helpt je om stap voor stap te ontdekken waar het misloopt, en hoe je het kan verbeteren.
Debuggen van de hardware
Om na te gaan of er geen fouten met je hardware zijn kan je de volgende dingen doen:
Is je Arduino verbonden met je computer? Herkent je computer je Arduino?
Zijn alle draden goed aangesloten? Neem je elektrisch schema erbij en doorloop elke kring van de + naar de - zijde. Hou rekening met hoe een breadboard intern verbonden is.
Staan componenten die richtingsgevoelig zijn (led, fototransistor, ...) in de juiste richting?
Gebruik je de juiste pinnen voor digitale en analoge componenten?
Twijfel je of een component wel werkt? Vervang hem door een andere.
Met een multimeter kan je de spanning over bepaalde verbindingen of pinnen meten. Hoe je dat doet lees je bij "Werken met pinnen".
Debuggen van de software
Om na te gaan of er geen fouten met je software zijn kan je de volgende dingen doen:
- Lees de foutmelding indien je er een krijgt bij het compileren van je code.
- Als je de melding niet begrijpt, zoek dan even op het internet naar de betekenis.
- Maak gestructureerde code en gebruik '// pseudocode' om je code leesbaar te maken. Dit helpt je bij het opsporen van fouten.
- Staan de gebruikte variabelen en functies in de juiste onderdelen van je arduino code?
- Variabelen horen bij het onderdeel declaratie en initialisatie;
- Het instellen van pinnen als output/input hoort bij de setup;
- de acties die herhaaldelijk moeten uitgevoerd worden horen thuis in het loop-onderdeel.
- Wees je bewust van structuren zoals while() of functies zoals delay() die je programma blokkeren. Zolang deze worden uitgevoerd kan er niet anders gebeuren.
- Controleer de logica van je programma:
- Neem je stroomschema erbij of schrijf er desnoods een uit om de flow van je programma na te gaan.
- Zijn je if-voorwaarden correct?
Splits je code op in kleinere gehelen en ga na of die doen wat ze moeten doen. Daarna voeg je de delen één voor één samen en pas je de code aan tot ze werkt.
Gebruik de Serial Monitor of Plotter om variabelen en meldingen te printen. Hoe je dat doet, lees je bij de volgende submodule "Serial monitor en plotter".