Două moduri de a reîncărca arduino la nivel de software

Pentru a vă reinițializa Arduino fără a apăsa butonul Reset, există două opțiuni. Ambele sunt considerate mai jos. Pentru punerea lor în aplicare, este necesar un minim de legături electrice suplimentare.







Folosim un fir conectat la cel de-al 12-lea contact

În acest caz, LED-ul de pe pinul 13 al Arduino (puteți utiliza LED-ul încorporat), clipește. 12 pini sunt conectați la contactul Reset cu un conductor.

Două moduri de a reîncărca arduino la nivel de software

Fără anumite trucuri suplimentare în software-ul nu se poate face, pentru că la începutul schiței noastre, toate pinii de pe Arduino ia valoare scăzută. Ca rezultat, vom deconecta controlorul nostru. Dar! Trucul este, că primul lucru care are loc în configurarea funcției (): noi oferim HIGH pe pinul 12 care determină resetare PIN noastre (digitalWrite (resetPin, HIGH), și oferă, astfel, un semnal înalt la RESET de contact Arduino.

int led = 13; // pinul 13 va funcționa ca un pin OUTPUT

int resetPin = 12;

// funcția de configurare va fi executată o dată, după ce apăsați reset:

// inițializați pinul digital ca ieșire

Serial.begin (9600); // inițializa conexiune port serial

Serial.println ("reset"); // afișați șirul de resetare pentru a ști că a fost efectuat un restart și

// execută din nou funcția de configurare

// bucla buclă funcționează din nou și din nou:







digitalWrite (condus, HIGH); // aprinde LED-ul (HIGH este tensiunea de alimentare)

întârziere (1000); // așteptați o secundă

digitalWrite (led, LOW); // opriți LED-ul dând comanda LOW

întârziere (1000); // așteptați o secundă

Serial.println ("acest lucru nu se întâmplă niciodată");

// aceasta nu se va întâmpla niciodată, deoarece Arduino se rebootă

Utilizăm doar resetarea software-ului

Două moduri de a reîncărca arduino la nivel de software

În exemplul de mai jos, nu aveți nevoie de nicio conexiune suplimentară. Am inițializat funcția de resetare și apoi resetarea apelului.

resetFunc (); // resetarea apelului

Întregul program pentru repornirea lui Arduino:

// Funcția de configurare funcționează o singură dată după apăsarea resetării:

// inițializați pinul digital ca ieșire.

Serial.begin (9600); // inițializa portul serial

void (* resetFunc) (void) = 0; // declarați funcția de resetare

// acest ciclu este refăcut din nou și din nou:

digitalWrite (condus, HIGH); // activați LED-ul

întârziere (1000); // așteptați o secundă

digitalWrite (led, LOW); // opriți LED-ul, dând comanda LOW

întârziere (1000); // așteptați o secundă

resetFunc (); // resetarea apelului

De ce pot să utilizez resetarea software-ului Arduino?

Arduino reporneste la nivel de software poate fi utilizat atunci când se lucrează cu nRF24L01 + 2,4 transceiver Hz (folosind RF24 bibliotecă de bibliotecă). Această schiță este minunată atunci când receptorul pierde conexiunea și nu mai funcționează. Asigurați-vă de repornire 2.4G Hz modul transmițător radio este destul de dificil, dar restartați Arduino Uno sau Arduino Pro Mini nu face probleme. Programul dvs. ar trebui să funcționeze după cum urmează: "Dacă nu a fost recepționat niciun pachet de date în decurs de 100 ms, Arduino trebuie să repornească." Ca urmare, modulele emițătorului radio sunt reconectate automat și comunicarea este stabilită!

ARDUINO-DIY.COM este o resursă informațională cu cele mai bune instrucțiuni și tutoriale despre utilizarea controlorilor Arduino.

Suntem întotdeauna bucuroși de o cooperare constructivă. Cu toate întrebările, sugestiile și sugestiile, vă rugăm să contactați [email protected].







Trimiteți-le prietenilor: