Kazalo:

Preprosta, praktična štoparica Arduino: 4 koraki
Preprosta, praktična štoparica Arduino: 4 koraki

Video: Preprosta, praktična štoparica Arduino: 4 koraki

Video: Preprosta, praktična štoparica Arduino: 4 koraki
Video: Использование драйвера шагового двигателя L298N Для управления 4-проводным шаговым двигателем 2024, November
Anonim
Preprosta, praktična štoparica Arduino
Preprosta, praktična štoparica Arduino

Poiščite štoparico Arduino v spletu. Verjetno ste to storili, če ste tukaj. Iz osebnih izkušenj vam lahko povem, da je katera koli štoparica na internetu preveč zapletena (v kodi za začetnike) ali pa je preveč poenostavljena in ni praktična, kot tiste, ki štejejo sekunde brez ponastavitve.

Tudi ti tako misliš, kajne? Pa ugani kaj. To sem naredil in še več, neposredno vzamem svoj vnos iz funkcije millis ()- neskončne vrstice številk (do 49 dni ali karkoli). Najboljši del? To je samo ena vrstica.

Ponastavitev je dejanski trdi del štoparice. Za vmesne, programerji, če tega še niste storili, poskusite to narediti sami, skupaj s sekundami, minutami in urami. Razumeš, o čem govorim.

Za začetnike, berite naprej in uživajte v genialnosti svojega uma.

Šalim se, vendar je rešitev, ki sem jo prišel, precej čedna. Evo, kaj je to:

1. korak: Rešitev

Rešitev
Rešitev

Torej je težava ponastavitev. Kar želimo, je neprekinjen, ponavljajoč se cikel števil, iz neskončnega izpisa zaporednih števil (millis () - v bistvu šteje milisekunde ali dejansko 1,024 milisekunde, pa vseeno).

Prva stvar, ki mi pride na misel, je uporaba razlike, na primer time1 -time2 in zamuda. Pozabi to. Za zagon potrebuje vsaj šest vrstic kode in stavek if.

Torej, kako to storiti. Imamo omejitev (59). Želimo, da se vse od 0 do 59 ponavlja vedno znova. Kako?

Kaj pa, če… vzamemo preostanek… funkcije milis, deljeno s 59…. Bingo!

Torej bi moralo biti tako:

(60 [kot začetna vrednost, ker je omejitev 59] + milis () / 1000 [1000 milisekund je sekunda]) % 60

Ok, razložim. (%) ali modul je v bistvu operator, podoben (+), ki najde preostanek. Kot 9 % 2 = 1.

Torej:

  • ostanek (60 + 0) % 60 = 0
  • ostanek (60 + 1) % 60 = 1
  • ostanek (60 + 58) % 60 = 58
  • ostanek (60 + 59) % 60 = 59
  • ostanek (60 + 60) % 60 = 60
  • ostanek (60 + 61) % 60 = 1

Glej!

Zdaj pa za dele.

2. korak: Deli

Deli
Deli

Sploh ne veliko

  1. Vsak arduino
  2. Vsak zaslon (uporabil sem 0,96 -palčni OLED, vendar lahko uporabite karkoli, le vstavite prave spremenljivke v funkcije prikaza vašega zaslona.)

To je to.

3. korak: Koda

Izvolite. To je precej jasno komentirano, zato ne bi smelo biti težav. Knjižnice in init za 0,96 OLED so v kodi. Če je drugačen, ga zamenjajte z lastnim zaslonom.

// 0,96 knjižnice OLED

#vključi

#vključi

#vključi

#vključi

// 0,96 OLED Init

#define OLED_RESET 4

Zaslon Adafruit_SSD1306 (OLED_RESET);

int sekunde;

int minute;

int ure;

void setup () {

// Še nekaj 0,96 OLED začet

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay (); display.setTextSize (2); display.setTextColor (BELO); }

void loop () {

sekunde = (60 + milis () / 1000) % 60;

minute = (60 + milis () / 60000) % 60; ure = (25 + milis () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // natisnemo število ur od ponastavitve display.print (ure); display.print ("h:");

// natisnemo število minut od ponastavitve

display.print (minute);

display.print ("m:");

// natisnemo število sekund od ponastavitve display.print (sekunde); display.print ("s");

display.setCursor (0, 0);

display.print ("štoparica"); display.drawLine (0, 18, 128, 18, BELO); display.display ();

}

4. korak: Zaključek…

En zaključek…
En zaključek…

Torej to je to! Zdaj pa pojdi z njim, kar hočeš. Vzemite si nekaj jajc ali pa prevzemite svojo sosesko.

Na zdravje, Aarush

Priporočena: