Arduino uno lecție 3

Să ne întoarcem la prima lecție. unde am rulat LED-ul. Între timp și după ce a fost oa doua întârziere.

În programul folosit acolo (a se vedea codul de mai jos) a existat un defect foarte mare. Timp de pauză între LED-ul pornit / oprit în 1 sec. am folosit funcția delay (). În acest moment, controlerul nu poate executa alte comenzi din bucla principală ()

Primul lucru pe care îl facem este să facem mici ajustări ale funcției buclă (). Pentru a face codul mai compact și elegant, înlocuiți 2 perechi de linii cu o pereche. În loc de a stabili valoarea la HIGH și apoi înapoi la LOW, vom obține valoarea curentă a ledPin și vom inversa. Ie dacă era HIGH, va deveni LOW și invers.

Excelent! Acum vom îmbunătăți întârzierea funcției (). În schimb, vom folosi funcția millis (). Această funcție returnează numărul de milisecunde scurs de la pornirea programului curent. Funcția va depăși (reveni la zero) după aproximativ 50 de zile de funcționare a programului.

O funcție alternativă este micros (). care returnează numărul de microsecunde care au trecut de la lansarea programului curent. Funcția va depăși (va reveni la zero) după aproximativ 70 de minute de funcționare a programului.

În această lecție, vom folosi funcția millis ():

În acest exemplu, am introdus două variabile suplimentare, currentTime și loopTime. În funcția setup (), ambele variabile au aceeași valoare. În funcția buclă (). Variabila curentTime este actualizată de fiecare dată în bucla. Când valoarea curentă este mai mare decât loopTime timp de 1 secundă (loopTime + 1000), LED-ul își schimbă starea și valoarea curentă este atribuită variabilei loopTime.

Rețineți că în acest exemplu nu am utilizat funcția delay () și procesorul poate efectua alte operații.

Articole similare