Cum să resetați Arduino Uno prin software: Metode explicate

  • Software-ul resetat Arduino Uno Se poate face folosind indicatori de funcție sau folosind un pin digital.
  • Resetarea automată are loc la conectarea plăcii prin USB datorită controlului debitului ATmega8U2.
  • Această resetare poate fi dezactivată prin tăierea unei urme pe placa Arduino pentru a preveni resetările nedorite.

Cum să recunoști un Arduino-4 contrafăcut

De multe ori, când lucrezi cu o farfurie Arduino Uno, este necesar să-l repornim fără intervenție fizică, fie pentru că dispozitivul se află într-o locație greu accesibilă, fie pentru că dorim să automatizăm procesul în cadrul codului. Din fericire, există mai multe metode de a efectua a resetare Arduino Uno prin software, fiecare cu propriile avantaje și aplicații specifice.

În acest articol vom vedea diferite moduri de a reporni a Arduino Uno prin cod, de la utilizarea indicatoarelor de funcție până la utilizarea pinilor digitali pentru a genera o resetare externă. Vom explora, de asemenea, funcționarea Resetare automată la conectarea prin portul serial și cum să o evităm dacă provoacă probleme în proiectele noastre.

Resear Arduino Uno folosind indicatori de funcție

Una dintre cele mai utilizate metode de a reporni a Arduino Uno din cod este folosirea a indicatorul funcției. Ideea este să atribuiți adresa de memorie 0 unui pointer de funcție și să o apelați astfel încât procesorul să execute o resetare a sistemului. Puteți afla mai multe despre proiectele conexe la ghid al Arduino Uno.

Codul de bază pentru această metodă este următorul:

String letra = "";  
int x = 2;  

void(* resetSoftware)(void) = 0;  

void setup(){  
  Serial.begin(9600);  
  Serial.println("Iniciando.");  
}  

void loop() {  
  if (Serial.available() > 0) {  
    letra = Serial.readString();  
    Serial.println(letra);  
    if(letra.indexOf("v") > -1){  
      x = x + 5;  
      Serial.println(x);  
      Serial.println("Reseteado.");  
      delay(500);  
      resetSoftware();  
    }  
  }  
}  

În acest caz, când litera „v” este trimisă la monitorul serial, placa adaugă 5 variabilei x, tipărește noua valoare și apoi execută resetarea prin invocare resetSoftware(). Acest lucru readuce microcontrolerul la starea sa inițială ca și cum butonul de resetare ar fi fost apăsat. Pentru alte metode de programare, puteți consulta Ghid despre utilizarea millis în Arduino.

Resetarea Arduino Uno folosind un PIN digital

O altă modalitate de a efectua o resetare soft este conectarea unui pin digital la pinul de resetare a farfurii. Acest lucru se realizează printr-un simplu fir între un pin de ieșire (cum ar fi 10) și pinul RESET al Arduino. Această metodă este utilă dacă căutați o soluție rapidă fără a modifica bootloader-ul.

Codul pentru această metodă este următorul:

String letra = "";  
int x = 2;  

void setup(){  
  digitalWrite(10, HIGH);  
  Serial.begin(9600);  
  Serial.println("Iniciando.");  
  pinMode(10, OUTPUT);  
}  

void loop() {  
  if (Serial.available() > 0) {  
    letra = Serial.readString();  
    Serial.println(letra);  
    if(letra.indexOf("v") > -1){  
      x = x + 5;  
      Serial.println(x);  
      Serial.println("Reseteado.");  
      delay(500);  
      digitalWrite(10, LOW);  
    }  
  }  
}  

În acest caz, trimiterea literei „v” prin monitorul serial scade starea logică a pinului 10, ceea ce determină o resetare a plăcii. Este o alternativă practică atunci când trebuie să reporniți sistemul din software fără a modifica codul bootloader-ului. Dacă aveți nevoie de mai multe informații despre conectivitatea Arduino, vă recomandăm să citiți despre ArduinoNano.

Resetare automată a Arduino atunci când este conectat prin portul serial

Farfurii Arduino Uno Au un mecanism de resetare automată atunci când se stabilește o conexiune prin portul serial. Acest lucru se întâmplă deoarece linia DTR a cipul ATmega8U2 este conectată printr-un condensator de 100 nF la linia de resetare a procesorului ATmega328. Când DTR-ul este activat, pe linia de resetare este generat un impuls care determină repornirea Arduino. Aceasta este o caracteristică utilă în multe proiecte, cum ar fi cele care implică afișaje OLED, pe care le puteți explora în Ghid pentru afișajele OLED de 0.96 inchi.

Acest mecanism permite încărcător de încărcare au un timp de așteptare mai scurt și facilitează încărcarea noilor programe fără a fi nevoie să apăsați manual butonul de resetare. Cu toate acestea, în unele cazuri, acest lucru poate fi un dezavantaj dacă codul depinde de o conexiune serială constantă.

Cum să evitați resetarea automată când utilizați USB

Dacă resetarea automată la conectarea Arduino la un computer cauzează probleme cu funcționarea proiectului, există o soluție simplă pentru a-l dezactiva. Placa include a pistă mică care poate fi tăiată pentru a evita acest comportament. Această modificare poate fi făcută cu ușurință dacă cunoașteți elementele de bază ale electronicii, așa cum este explicat în Ghid pentru driverele de motoare pas cu pas.

Pentru a face acest lucru, localizați pur și simplu urma pe partea de jos a plăcii lângă conectorul USB și tăiați-o cu un tăietor sau un bisturiu. Dacă funcția de repornire automată trebuie restabilită în viitor, aceasta poate fi reactivată prin lipirea unui jumper mic între cele două puncte de pe pistă.

A ști cum să dezactivezi resetarea automată oferă un control mai mare asupra modului în care se comportă Arduino atunci când primește date de la computer. Stăpânește aceste metode pentru a reseta a Arduino Uno Oferă o mai mare flexibilitate în dezvoltarea proiectelor electronice, permițând automatizarea, depanarea și îmbunătățirea comportamentului sistemelor încorporate fără a fi nevoie de intervenție manuală.

Arduino watchdog
Articol asociat:
Arduino Watchdog: Cum funcționează

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.