Werken met Arduino kan een opwindende ervaring zijn. De mogelijkheid om uw creatieve ideeën om te zetten in een werkend prototype is een echt bevredigend gevoel.
Hoewel de Arduino IDE een ongelooflijk gebruiksvriendelijk softwarepakket voor codering is, is het gebruikelijk om fouten en bugs tegen te komen die frustrerend kunnen zijn. Misschien wordt uw code niet gecompileerd, wordt uw schets niet geüpload of spuugt uw seriële monitor wartaal uit. Wat het probleem ook is, het kan frustrerend en demotiverend zijn, vooral als je nieuw bent op het Arduino-platform.
We hebben een lijst met ideeën voor het oplossen van problemen samengevat die u kunnen helpen uw project snel aan de gang te krijgen.
Wat zijn de meest voorkomende fouten tijdens het gebruik van Arduino?
Fouten kunnen variëren van eenvoudige syntaxisfouten tot complexere hardwareproblemen. Hardwarefouten komen niet vaak voor bij het gebruik van Arduino. Deze fouten kunnen bijzonder frustrerend zijn, omdat ze vaak een fysieke inspectie van de hardwarecomponenten vereisen om een diagnose te stellen en op te lossen. Aan de andere kant komen softwareproblemen vrij vaak voor.
Hier zijn enkele veelvoorkomende fouten die u kunt tegenkomen bij het gebruik van de Arduino IDE.
1. Seriële poort niet gevonden
Deze foutmelding geeft aan dat de computer het Arduino-bord niet kan detecteren. Dit kan verschillende oorzaken hebben, zoals een defecte USB-kabel, een onjuiste instelling van de COM-poort of een beschadigd bord. Om dit probleem op te lossen, probeert u de kaart opnieuw aan te sluiten of de instelling van de COM-poort in de IDE te wijzigen.
Sommige goedkopere Arduino-klonen gebruiken de CH340 USB naar serieel converterchip in plaats van de standaard FTDI (FT232RL)-chip die wordt gebruikt door officiële Arduino-boards. Merk op dat er zijn voor- en nadelen van het gebruik van Arduino-klonen in uw projecten. In tegenstelling tot de standaard Arduino-kaarten, zijn de stuurprogramma's voor de CH340-chip niet opgenomen in het IDE-installatiebestand.
Om een op CH340 gebaseerd Arduino-bord te gebruiken, moet u de driver voor de chip apart downloaden en installeren. Raadpleeg voor meer informatie de handleiding voor het installeren van CH340-stuurprogramma's op de SparkFun website.
2. Programmeur reageert niet
U ziet deze foutmelding in de seriële monitor wanneer u probeert uw schets te uploaden:
avrdude: stk500_recv(): programmeur isniet reageren
Om deze fout op te lossen, zijn er verschillende stappen voor probleemoplossing die u kunt volgen:
- Zorg ervoor dat de juiste kaart- en poortinstellingen zijn geselecteerd.
- Zorg ervoor dat de USB-kabel correct is aangesloten op zowel het Arduino-bord als de computer.
- Controleer of de firmware van het bord up-to-date is. Soms kan verouderde firmware communicatieproblemen met de computer veroorzaken.
- Probeer het Arduino-bord te resetten of uit en weer aan te zetten door de USB-kabel los te koppelen en opnieuw aan te sluiten.
Als deze niet werken, probeer dan de schets te uploaden vanaf een andere computer of met een andere USB-kabel.
3. Geen toestemming
Als u deze fout tegenkomt wanneer u probeert een schets naar uw Arduino te uploaden, geeft dit aan dat de IDE geen toestemming heeft om naar de seriële poort te lezen/schrijven. Dit gebeurt meestal voor Ubuntu-gebruikers.
U ziet dit foutbericht op de seriële monitor:
avrdude: ser_open(): kan apparaat "/dev/ttyACM0" niet openen: bestand of map bestaat niet
Om dit op te lossen, typt u de volgende opdracht in de terminal:
sudo chmod a+rw /dev/ttyACM0
Hierdoor kunnen alle gebruikers lezen van en schrijven naar het /dev/ttyACM0 seriële poort apparaat. Houd er rekening mee dat de specifieke apparaatnaam kan variëren, afhankelijk van uw systeemconfiguratie. Als u Windows gebruikt, probeer dan Arduino IDE in beheerdersmodus uit te voeren.
4. Time-out bij communicatie met de programmeur
Een time-outfout in de Arduino IDE kan optreden wanneer de IDE niet binnen een bepaalde tijdslimiet kan communiceren met het Arduino-bord.
avrdude: stk500v2_ReceiveMessage(): timeoutavrdude: stk500v2_getsync(): timeout communiceren met programmeravrdude: stk500v2_command(): mislukt jammerlijk naaruitvoeren commando 0x11avrdude: stk500v2_disable(): misluktnaar verlaat de programmering modus
Deze foutmelding verschijnt wanneer het Arduino-bord binnen een bepaalde tijd geen gegevens van de computer ontvangt. Het komt vrij vaak voor bij Chinese klonen. Dit kan worden veroorzaakt door een trage of onbetrouwbare verbinding, een defecte USB-kabel of onjuiste baudrate-instellingen.
Er zijn twee mogelijke oplossingen:
- Installeer de Arduino-bootloader opnieuw voordat u uw schets uploadt.
- Houd de resetknop ingedrukt terwijl de code wordt gecompileerd en laat deze een fractie van een seconde los voordat de code begint te uploaden.
Hoewel geen van beide ideaal is, kunt u een meer op hardware gebaseerde oplossing proberen uit de videozelfstudie hierboven. Als dat niet werkt, wordt het tijd dat je een nieuw bord koopt.
5. Ongeldige apparaathandtekening
U ziet dit foutbericht op de seriële monitor:
Avrdude: Jakkes! Ongeldige apparaathandtekeningDubbel-rekening verbindingen En probeer het nog eens, ofgebruik -F naar overschrijf deze controle.
Deze fout treedt op bij het uploaden van code naar een ander bord dan het bord dat is geselecteerd in de Arduino IDE. Dit wordt meestal veroorzaakt door een niet-overeenkomende apparaathandtekening. Om dit op te lossen, selecteert u het juiste bord in de IDE of flasht u de nieuwste Arduino-bootloader naar het bord.
6. Bord niet gesynchroniseerd
Over het algemeen zal het Arduino-bord, wanneer deze fout optreedt, de geüploade code niet kunnen ontvangen (zelfs als de IDE "Klaar met uploaden" aangeeft) en zal de IDE deze foutmelding weergeven:
avrdude: stk500_getsync () niet synchroon: resp = 0x00
Hier zijn enkele stappen voor probleemoplossing die kunnen helpen de fout te verhelpen:
- Controleer of er geen apparaten, inclusief schilden, zijn aangesloten op digitale pinnen 0 en 1 op de Arduino.
- Controleer of de juiste COM-poort en -kaart zijn geselecteerd in de Hulpmiddelen menu van de IDE.
- Druk meerdere keren op de resetknop op het Arduino-bord en probeer de code opnieuw te uploaden.
- Koppel de Arduino los van de pc en sluit deze opnieuw aan.
De foutmelding synchroniseren: resp = 0x00 is een algemeen antwoord dat meestal wijst op een probleem met de ATmega-chip op het Arduino-bord.
7. Schets te groot
Deze foutmelding verschijnt wanneer de grootte van de code de hoeveelheid beschikbaar geheugen op het bord overschrijdt. Dit kan worden veroorzaakt door te veel bibliotheken te gebruiken of door onnodige code op te nemen. Probeer de code te optimaliseren door onnodige functies of bibliotheken te verwijderen.
8. Bibliotheek niet gevonden
Deze foutmelding verschijnt wanneer de IDE een specifieke bibliotheek die nodig is voor het project niet kan vinden. Dit kan worden veroorzaakt door het niet correct installeren van de bibliotheek of het gebruik van een verouderde versie. Probeer de bibliotheek opnieuw te installeren of bij te werken naar de nieuwste versie om dit probleem op te lossen.
9. Compilatiefout
Deze foutmelding verschijnt wanneer er syntaxisfouten in de code staan. Dit kan worden veroorzaakt door ontbrekende haakjes, puntkomma's of onjuiste functienamen. Controleer de code zorgvuldig op syntaxisfouten en corrigeer deze.
10. Fout tijdens het uploaden van de schets
Deze foutmelding verschijnt wanneer de IDE de code niet naar het bord kan uploaden. Dit kan worden veroorzaakt door een verkeerd kaarttype geselecteerd in de IDE, een kapotte bootloader of een defecte USB-kabel. Om dit probleem op te lossen, moet u ervoor zorgen dat het juiste kaarttype is geselecteerd en dat de USB-kabel in goede staat verkeert. Als deze fout zich blijft voordoen, kun je proberen een nieuwe bootloader naar je board te flashen.
Meer coderen, minder debuggen
Arduino is een krachtig platform voor het bouwen van innovatieve elektronicaprojecten. Hoewel het een relatief eenvoudig hulpmiddel is om te gebruiken, kunt u onderweg nog steeds fouten en problemen tegenkomen. Door de veelvoorkomende fouten en hun oorzaken te begrijpen, kunt u stappen ondernemen om ze op te lossen en te verhelpen.