Hoe Arduino-bord te resetten

Hoe Arduino Bord Te Resetten



Het Arduino Board is een handig ontwikkelbord voor microcontrollers dat door hobbyisten en professionals wordt gebruikt om hun projecten te creëren. Je kunt het Arduino Board gebruiken om verschillende projecten te creëren, variërend van eenvoudig knipperende LED's tot het besturen van robots of zware machines. Om met Arduino Boards te werken, moet je een schets uploaden, een programma dat het bord informeert wat het moet doen. Het kan echter zijn dat u uw Arduino-bord om welke reden dan ook soms moet resetten.

Deze handleiding behandelt het volgende overzicht:

Waarom is het nuttig om het Arduino-bord te resetten?







Hoe Arduino-bord te resetten



Conclusie



Waarom is het nuttig om het Arduino-bord te resetten?

Het resetten van een Arduino-bord is handig in verschillende scenario's, zoals:





  • U kunt uw Arduino-bord opnieuw instellen als u problemen ondervindt bij het uploaden van uw schets.
  • Soms werkt de geüploade schets niet goed, in dat geval is het handig om het Arduino Board te resetten.
  • Het resetten van het Arduino-bord kan het bord ook ontgrendelen als het is vergrendeld of niet reageert.

Hoe Arduino-bord te resetten

U kunt het Arduino-bord opnieuw instellen:

  • Met behulp van de resetknop
  • Reset-pin gebruiken
  • Met behulp van de reset()-functie
  • Met behulp van de Watchdog Timer-methode
  • Door de schets in het geheugen te resetten
  • Door het EEPROM-geheugen te resetten

Hoe Arduino-bord te resetten met behulp van de resetknop

Arduino Board bevat een ingebouwd Reset knop waarmee u uw bord kunt resetten. Deze knop bevindt zich vlak vóór de USB-poort die wordt gebruikt voor de voeding. Door op deze knop te drukken, wordt elke activiteit op dit bord gestopt en wordt de uitvoering teruggebracht naar de eerste regel van de code.



Hoe Arduino-bord te resetten met behulp van Reset Pin

Als je het Arduino-bord goed bekijkt, zul je merken dat deze ook een Reset-pin heeft, die zo kan worden geprogrammeerd dat hij het bord binnen enkele seconden kan resetten. Dit kan handig zijn als uw Reset-knop niet goed werkt. Om deze Reset Pin te gebruiken om het Arduino Board te resetten, moet je de volgende stappen volgen:

Stap 1: Download en installeer Arduino IDE

Download en installeer eerst Arduino IDE op uw systeem, aangezien we het gaan gebruiken om code te uploaden. U kunt Arduino IDE downloaden en op uw systeem installeren vanaf hier .

Stap 2: Verbind het Arduino-bord met het systeem

Gebruik nu de USB-kabel, steek het ene uiteinde van USB type B in het Arduino-bord en de andere kant van USB type A in uw computer.

Stap 3: Selecteer Arduino-bord

Open Arduino IDE, ga naar de Hulpmiddelen sectie en selecteer vanaf daar het Arduino-bord. Je moet ook Port selecteren nadat je het Board hebt geselecteerd:

Stap 4: Voeg code toe aan Arduino IDE

Voeg nu de volgende code toe aan het Arduino-IDE :

int Opnieuw instellen = 4 ;

leegte opgericht ( ) {
digitaalSchrijf ( Resetten, HOOG ) ;
vertraging ( 200 ) ;
pinModus ( Resetten, UITGANG ) ;
Serieel. beginnen ( 9600 ) ;
Serieel. println ( 'Arduino programmatisch resetten' ) ;
Serieel. println ( 'www.linuxhint.com' ) ;
vertraging ( 200 ) ;
}
leegte lus ( )
{
Serieel. println ( 'A' ) ;
vertraging ( 1000 ) ;
Serieel. println ( 'B' ) ;
vertraging ( 1000 ) ;
Serieel. println ( 'Laten we Arduino programmatisch resetten' ) ;
Serieel. println ( ) ;
vertraging ( 1000 ) ;
digitaalSchrijf ( Resetten, LAAG ) ;
Serieel. println ( 'Arduino zal daar niet komen.' ) ;

}

Stap 5: Sluit een draad aan

Neem een ​​verbindingsdraad met beide uiteinden open en sluit het ene uiteinde van de draad aan Pin 4 , terwijl er weer een einde aan komt Opnieuw instellen pin op Arduino UNO, zoals hieronder weergegeven:

Stap 6: Upload de code

Upload de code met behulp van de Uploaden knop:

Stap 7: Open seriële monitor

Navigeer naar de Seriële monitor keuze:

Daar kunt u de volgende uitvoer zien:

De bovenstaande uitvoer laat zien dat Arduino niet de “ Arduino zal daar niet komen” en werd gereset, en geef vervolgens het resultaat vanaf het begin weer. Dit zorgt ervoor dat de methode het Arduino-bord met succes heeft gereset.

Hoe Arduino Board te resetten met behulp van de reset()-functie

Je kunt ook gebruik maken van de opnieuw instellen() functie in uw Arduino-code om het Arduino-bord binnen enkele seconden te resetten. Deze methode is sindsdien vrij eenvoudig opnieuw instellen() -functie is opgenomen in de Arduino IDE-bibliotheken. U kunt Arduino Board resetten met behulp van opnieuw instellen() functie uit de volgende stappen:

Stap 1: Open Arduino IDE en schrijf uw code. Als voorbeeld voeg ik de volgende code toe:

leegte ( * resetFunc ) ( leegte ) = 0 ;

leegte opgericht ( ) {
Serieel. beginnen ( 9600 ) ;
}
leegte lus ( )
{
Serieel. println ( '1..' ) ;
vertraging ( 1000 ) ;
Serieel. println ( '2..' ) ;
vertraging ( 1000 ) ;
Serieel. println ( '3..' ) ;
vertraging ( 1000 ) ;
Serieel. println ( 'Arduino Board wordt nu gereset' ) ;
Serieel. println ( ) ;
vertraging ( 1000 ) ;
resetFunc ( ) ;
Serieel. println ( 'Als de reset()-functie werkte, zal Arduino deze uitvoer niet tonen!' ) ;
}

Stap 2: Volgen Stap 4 naar Stap 7 (sluit stap 5 uit) voorzien in de hierboven beschreven methoden, waaronder het uploaden van de code en vervolgens het gebruiken van de Seriële monitor om de uitvoer te controleren.

De bovenstaande uitvoer bevestigt dat het Arduino-bord succesvol is gereset met behulp van de opnieuw instellen() functioneert sinds de reset, en geeft vervolgens het resultaat vanaf het begin weer.

Hoe het Arduino-bord te resetten met behulp van de Watchdog Timer-methode

De Watchdog-timer is een andere efficiënte manier om het Arduino-bord in uw code te resetten. Hiermee kunt u de microprocessor na een bepaald tijdsinterval resetten. Het is handig als uw programma tijdens de uitvoering stopt en u geen andere uitweg heeft dan het bord opnieuw instellen. Om Arduino Board te resetten met behulp van de Watchdog Timer-methode Volg de onderstaande stappen:

Stap 1: Open Arduino IDE en plak de volgende code:

#erbij betrekken < gem / wd. H >
leegte opgericht ( ) {
Serieel. beginnen ( 9600 ) ;
wdt_disable ( ) ; //Schakel de WDT uit
vertraging ( 2000 ) ;
wdt_enable ( WDTO_2S ) ; // WDT 2 seconden time-out inschakelen
Serieel. println ( 'WDT is ingeschakeld' ) ;
}
leegte lus ( ) {
voor ( int i = 0 ; i < 5 ; i ++ )
{
Serieel. println ( 'Doorgaan' ) ;
vertraging ( 500 ) ;
wdt_reset ( ) ; //De waakhond resetten
}
terwijl ( 1 ) ; // Watchdog-timer wordt hier geactiveerd
}

In de bovenstaande code initialiseren we eerst de bibliotheek voor de Watchdog-timer methode. Vervolgens initialiseren we in de code de serienummers en schakelen we de Waakhond aan het begin. Na enige vertraging schakelen we de Watchdog-timer van 2 seconden, wat betekent dat de Watchdog moet worden geactiveerd en de microcontroller opnieuw moet opstarten met een time-out van 2 seconden. De code komt vervolgens in de lus en voert de instructie uit terwijl de Watchdog-timer elke seconde. Vervolgens komt het in een oneindige while-lus terecht die de Watchdog activeert en het Arduino-bord reset.

Stap 2: Herhaal nu Stap 4 tot en met Stap 6 (exclusief Stap 5) die is opgegeven in de eerste methode om de code te uploaden en gebruik vervolgens de Seriële monitor optie om de uitvoer te controleren:

Uit bovenstaande output blijkt dat één keer Watchdog-timer is ingeschakeld, zal het de lus voortzetten, vervolgens het Arduino-bord resetten en dezelfde stappen opnieuw herhalen.

Hoe u het Arduino-bord kunt resetten door de schets in het geheugen opnieuw in te stellen

Het Arduino-bord heeft twee soorten geheugen: flashgeheugen en RAM. Flash-geheugen bewaart de inhoud wanneer het apparaat wordt uitgeschakeld, terwijl de inhoud in het RAM verloren gaat wanneer het apparaat wordt uitgeschakeld. De schets die op uw Arduino Board draait, wordt opgeslagen in het flashgeheugen en zodra u een nieuwe schets uploadt, overschrijft deze de bestaande schets in het flashgeheugen. U kunt het Arduino-bord dus eenvoudig resetten door de schets in het geheugen te resetten, wat betekent dat deze wordt overschreven met een nieuwe schets. Dit kan gedaan worden door de volgende stappen te gebruiken:

Stap 1: Sluit eerst uw Arduino Board aan op uw systeem zoals eerder vermeld.

Stap 2: Ga naar Voorbeelden van de Bestand sectie en kies vervolgens Het absolute minimum van de Basisprincipes categorie:

Stap 3: Zorg ervoor dat uw Arduino-bord is geselecteerd voor dit voorbeeld, wat u kunt bevestigen via de Gereedschap>Bord sectie:

Opmerking: U moet Port voor uw Arduino UNO controleren vanuit de Haven optie via hetzelfde menu.

Stap 4: Nu kunt u de Uploaden optie om de code te uploaden en het Arduino-bord opnieuw in te stellen:

Hoe u het Arduino-bord kunt resetten door het EEPROM-geheugen opnieuw in te stellen

Op AVR gebaseerde borden hebben EEPROM, een niet-vluchtig flashgeheugen dat de waarden behoudt, zelfs als het bord is uitgeschakeld. U kunt de EEPROM resetten met behulp van de EEPROM.schrijven() functie die bytes op nul zet, waardoor het Arduino-bord opnieuw wordt ingesteld. De volgende code moet op uw Arduino IDE worden geüpload door eerst de Arduino UNO met uw systeem te verbinden. Vervolgens wordt met behulp van de Uploaden optie om het Arduino-bord op Arduino IDE te resetten.

#erbij betrekken < EEPROM. H >

leegte opgericht ( ) {
// initialiseren van de Arduino LED-pin als uitvoer
pinModus ( 13 , UITGANG ) ;

voor ( int i = 0 ; i < EEPROM. lengte ( ) ; i ++ ) {
EEPROM. schrijven ( i, 0 ) ;
}

// schakel de Arduino-LED in als u klaar bent
digitaalSchrijf ( 13 , HOOG ) ;
}

leegte lus ( ) {

}

Conclusie

Het resetten van het Arduino-bord is een eenvoudige en veelgebruikte taak voor gebruikers die aan hun projecten werken. Dit is handig als de code vastzit en de enige manier die overblijft is om het bord te resetten. U kunt het Arduino-bord resetten via de ingebouwde reset knop of gebruik maken van de reset-pin . U kunt het Arduino-bord ook resetten met behulp van de reset-functie , watchdog-timermethode , het resetten van de schets in het geheugen of EEPROM-geheugen in je code. De gids voor alle methoden vindt u in het bovenstaande gedeelte van deze handleiding. Kies de methode die het beste bij u past en begin naadloos met coderen met Arduino Board.