- 1. Arduino-bord wordt niet herkend
- 2. Bord niet gesynchroniseerd
- 3. De code start niet bij Power Reset
- 4. Ongeldige apparaathandtekeningfout
- 5. Launch4j-fout
- 6. Seriële poort al in gebruik
- 7: Sketch uploads succesvol maar er gebeurt niets
- 8. Ontevreden koppelingsfout
- 9. Schets te groot
- 10. java.lang.StackOverflowError
Beginnen als een beginner met de Arduino, kan een behoorlijke uitdaging zijn voor mensen zonder elektronica-achtergrond, je zou fouten tegenkomen, waarvan sommige misschien eenvoudige oplossingen hebben, maar het kan dagen duren om het op te lossen. Om het een beetje gemakkelijker te maken, heb ik een lijst gemaakt met de 10 meest populaire Arduino-fouten, samen met mogelijke oplossingen daarvoor.
1. Arduino-bord wordt niet herkend
Dit verwijst naar een situatie waarin een Arduino-bord, aangesloten op een computer, niet wordt herkend door de computer. Wanneer dit gebeurt, wordt het bord meestal niet vermeld onder de poortlijsten van de Arduino IDE en wordt het soms aangeduid als USB2.0 onder Apparaatbeheer.
Oplossing
Dit gebeurt wanneer u bepaalde goedkope Arduino-klonen gebruikt die de CH340g USB naar Serieel-converterchip gebruiken in plaats van de FTDI (FT232RL) en andere die worden gebruikt door de standaard Arduino-kaarten. De stuurprogramma's voor USB naar seriële chips die door de standaard Arduino-kaarten worden gebruikt, worden altijd samen met het Arduino IDE Setup-bestand verpakt, dus wanneer u de IDE installeert, worden de stuurprogramma's automatisch op uw pc geïnstalleerd. Om deze CH340g USB naar Seriële converter gebaseerde Arduino-kaarten te kunnen gebruiken, moet je de driver voor de chip downloaden en installeren. De driver kan via deze link worden gedownload. Het installeren is net zo eenvoudig als het klikken op de installatieknop in de onderstaande setup-interface.
Nu je dit hebt gedaan, zou je nu de poort moeten kunnen lokaliseren waarop het bord is aangesloten op de Arduino IDE.
2. Bord niet gesynchroniseerd
Meestal, wanneer dit gebeurt, zult u geen code kunnen uploaden (hoewel de IDE soms "klaar met uploaden" zal weergeven) naar het Arduino-bord en de IDE zal de foutcode weergeven; " Avrdude: stk500_getsync (): niet gesynchroniseerd: resp = 0x00 ".
Oplossing
De sync: resp = 0x00 is een generiek antwoord dat zich vertaalt naar de " Atmega-chip werkt niet " op de Arduino. Als dit gebeurt, zijn er een heleboel dingen die fout kunnen zijn. Hier zijn enkele stappen die kunnen worden genomen om deze fout te verhelpen.
1. Zorg ervoor dat er niets is aangesloten op digitale pinnen 0 en 1 op de Arduino (inclusief schilden).
2. Zorg ervoor dat de juiste com-poort en kaart zijn geselecteerd in het menu Extra.
3. Druk een paar keer op de reset-knop op de Arduino en upload de code opnieuw.
4. Koppel de Arduino los en sluit hem weer aan op de pc.
5. Start de Arduino IDE opnieuw.
Als iets van dit niet werkt, is het misschien tijd om een ander Arduino-bord met de pc te gebruiken of het 'defecte' Arduino-bord met een andere pc te gebruiken. Dit zou u moeten helpen bepalen welke van hen de oorzaak van het probleem is. Als u ontdekt dat het probleem bij de pc ligt, installeert u de Arduino IDE opnieuw. Als het "defecte" Arduino-bord echter de probleembron is, is de ultieme oplossing om het bord te flashen met de Arduino-firmware. Als niets van het bovenstaande werkt, is het misschien tijd om het Arduino-bord te vervangen.
3. De code start niet bij Power Reset
Dit verwijst naar gevallen waarin de Arduino de sketch die ernaar is geüpload niet uitvoert wanneer deze is ingeschakeld en in de meeste gevallen gewoon terugkeert naar de knipperschets die is gekoppeld aan de bootloader.
Oplossing
Net als de andere behandelde problemen zijn er een aantal dingen die dit kunnen veroorzaken.
Als het bord blijft hangen en niets doet, moet u uw code controleren om er zeker van te zijn dat u geen seriële gegevens naar het bord verzendt wanneer deze wordt ingeschakeld. Wanneer de Arduino is ingeschakeld, luistert de bootloader in de eerste paar seconden of de computer een nieuwe schets stuurt om naar het bord te uploaden. Als er geen nieuwe sketch wordt ontvangen, zal de bootloader na korte tijd een time-out maken en de laatste sketch die naar het bord is geüpload uitvoeren. Als je code de eerste paar minuten seriële gegevens verzendt, zal de bootloader geen time-out geven en zal de laatste sketch die naar het bord is geüpload niet starten.
Als het verzenden van seriële gegevens zodra het bord wordt ingeschakeld een belangrijk onderdeel van uw project is, moet u mogelijk een manier vinden om het wat vertraging te geven om te voorkomen dat seriële gegevens arriveren zodra de Arduino wordt ingeschakeld. Als het maken van aanpassingen invloed heeft op de taak die het project moet uitvoeren, dan moet je misschien je sketch naar het bord uploaden met een externe programmeur, omdat de bootloader hierdoor kan worden omzeild.
Als het bord niet blijft hangen maar terugkeert naar de Arduino-knipperschets (led op pin 13 knippert af en toe), is een eenvoudige oplossing om het bord te laten knipperen met de Arduino-bootloader, omdat die op het bord mogelijk beschadigd is..
4. Ongeldige apparaathandtekeningfout
Deze fout wordt weergegeven wanneer een poging wordt gedaan om code te uploaden naar een bord dat verschilt van degene die is geselecteerd onder de lijst met tools> bord op de Arduino IDE. Deze fout treedt meestal op als gevolg van het feit dat de apparaathandtekening op het doelbord anders is dan die van het bord dat is geselecteerd op de IDE.
Oplossing
De oplossing voor deze fout is net zo eenvoudig als ervoor zorgen dat het juiste bord is geselecteerd op de Arduino IDE. Als dit niet werkt, kan het nodig zijn om de microcontroller te flashen met de nieuwste versie van de Arduino-bootloader.
5. Launch4j-fout
Het duurt soms even voordat de Arduino IDE laadt en als je ergens op klikt, wordt de Launch4J-fout weergegeven zoals hierboven weergegeven. Launch4j is een tool die wordt gebruikt om Java-applicaties (jars) te verpakken in het native uitvoerbare bestand van Windows, waardoor ze kunnen worden gebruikt als een gewoon Windows-programma.
De Arduino IDE zelf is geschreven in JAVA en deze fout treedt op vanwege de incompatibiliteit van de Java Run Time Environment (JRE) -bibliotheek die bij de Arduino IDE wordt geleverd.
Oplossing
Uit ervaring kan deze fout worden verholpen door zoiets eenvoudigs als het uitschakelen van de Bluetooth- of WiFi-connectiviteit van uw pc. Een meer complete en permanente oplossing is echter om de JRE in het Arduino-pakket te vervangen door een recente versie.
6. Seriële poort al in gebruik
Dit is waarschijnlijk een van de gemakkelijkst op te lossen fouten. Het komt meestal voor wanneer u code probeert te uploaden naar een Arduino terwijl de seriële monitor is geopend (dit is niet langer een probleem als u recente IDE-versies gebruikt) of wanneer u de seriële monitor probeert te starten wanneer de Arduino met een andere software of ander apparaat praat. via de seriële poort. In wezen treedt het op wanneer u de Arduino-seriële poort voor twee verschillende dingen tegelijkertijd probeert te gebruiken.
Oplossing
Sluit, zoals de IDE suggereerde, alle andere software / tools (inclusief de seriële monitor / plotter) die de com-poort kunnen gebruiken. Als u niet zeker bent van de specifieke software, koppelt u de Arduino los. Het moet klaar zijn voor gebruik tegen de tijd dat u het weer aansluit.
7: Sketch uploads succesvol maar er gebeurt niets
Deze fout is vergelijkbaar met enkele van de andere fouten die hierboven al zijn behandeld. Voor deze fout zal de Arduino IDE suggereren dat de code met succes is geüpload, maar het bord doet niets.
Oplossing
- Zorg ervoor dat het bord dat is geselecteerd in de IDE hetzelfde is als het doelbord.
- Dit kan komen doordat de schetsgrootte groter is dan de capaciteit van het bord. Controleer de schetsgrootte en gebruik enkele van de hierboven genoemde methoden om de grootte te verkleinen.
- Ten slotte kan deze fout optreden wanneer een stroomvoorziening met veel ruis wordt gebruikt. Zorg ervoor dat de stroomtoevoer stabiel genoeg is.
8. Ontevreden koppelingsfout
Dit is waarschijnlijk de enige zeldzame fout die op deze lijst is terechtgekomen. Dit gebeurt wanneer er een oude versie van de communicatiebibliotheek op uw pc ligt, hoogstwaarschijnlijk van een eerdere installatie.
Oplossing
Om deze fout op te lossen, zoekt u naar comm.jar of jcl.jar in /System/Library/Frameworks/JavaVM.framework/ of in mappen op de omgevingsvariabelen CLASSPATH of PATH van uw pc.
9. Schets te groot
Deze fout treedt op wanneer uw code groter is dan het flashgeheugen van dat specifieke Arduino-bord. De grootte van het flash-geheugen van de Arduino Uno is bijvoorbeeld 32Kb en 2KB wordt al gebruikt door de Arduino-bootloader. Als je een code uploadt met een grootte groter dan 32Kb, zal de Arduino deze waarschuwing weergeven.
Oplossing
Zoals hierboven vermeld, gebeurt dit wanneer uw schets groter is dan het flash-geheugen van het specifieke bord dat u gebruikt, dus om dit op te lossen, moet u manieren vinden om de hoeveelheid ruimte die door uw code wordt ingenomen te verminderen. Enkele van de tips om dit te bereiken zijn onder meer;
- Gebruik waar mogelijk gegevenstypen met gehele getallen in plaats van een float.
- Gebruik waar mogelijk de kwalificatie "const" bij het declareren van variabelen.
- Neem alleen noodzakelijke bibliotheken op. Gebruik waar mogelijk de lichtgewicht versies van de belangrijkste bibliotheken.
- Verbeter de code in het algemeen. Ontwikkel algoritmen die kunnen helpen uw code korter en over het algemeen lichtgewicht te maken.
Een radicalere oplossing zal zijn om het project naar een ander bord te verplaatsen, zoals de Arduino Mega, die een groter flashgeheugen heeft in vergelijking met de Uno.
10. java.lang.StackOverflowError
Bij het verwerken van de sketch gebruikt de Arduino enkele reguliere expressies voor verwerking en raakt soms in de war wanneer hij bepaalde strings-gerelateerde fouten tegenkomt, zoals ontbrekende aanhalingstekens.
Oplossing
Deze fout wordt opgelost door nog een keer naar de code te kijken, vooral de delen waar stringreeksen worden gebruikt. Zorg ervoor dat de aanhalingstekens volledig zijn, backslashes correct worden gebruikt enz.
Er is een limiet aan het aantal fouten dat in een enkele tutorial past en daarom stoppen we hier. Deze lijst bevat echter enkele van de meest voorkomende fouten die beginners tegenkomen bij het gebruik van de Arduin o. Vecht je tegen een bepaalde fout, laat dan gerust een opmerking achter, hopelijk kunnen we er samen aan werken.
De volgende keer.