Sisukord:

Lihtne ja praktiline Arduino stopper: 4 sammu
Lihtne ja praktiline Arduino stopper: 4 sammu

Video: Lihtne ja praktiline Arduino stopper: 4 sammu

Video: Lihtne ja praktiline Arduino stopper: 4 sammu
Video: Как управлять приводом с помощью Arduino - Robojax 2024, November
Anonim
Lihtne ja praktiline Arduino stopper
Lihtne ja praktiline Arduino stopper

Otsige veebist Arduino stopperit. Tõenäoliselt tegite seda just siis, kui olete siin. Isiklikust kogemusest võin teile öelda, et igasugune internetis olev stopper on kas liiga keeruline (koodis, algajatele) või liiga lihtsustatud ja mitte praktiline, nagu need, mis loevad sekundeid ilma lähtestamata.

Ka sina arvad nii, eks? No arvake ära mis. Ma tegin seda ja veelgi enam, ma võtan oma sisendi otse millis () funktsioonist- lõputu numbririda (kuni 49 päeva või mis iganes). Parim osa? See on ainult üks rida.

Lähtestamine on stopperi tegelik raske osa. Vahepealsete programmeerijate jaoks, kui te pole seda veel teinud, minge edasi ja proovige seda ise teha, koos sekundite, minutite ja tundidega. Saate aru, millest räägin.

Algajatele lugege edasi ja nautige minu meele geeniust.

Nali naljaks, aga lahendus, mille ma välja pakkusin, on päris korralik. Siin on, mis see on:

Samm: lahendus

Lahendus
Lahendus

Nii et probleem on lähtestamine. Me tahame pidevat, korduvat numbrite tsüklit, mis pärineb lõputust järjestikuste numbrite väljundist (millis () - see loeb põhimõtteliselt millisekundeid või tegelikult 1,024 millisekundit, aga mida iganes).

Esimene asi, mis meelde tuleb, on erinevuste kasutamine, nagu aeg1 -aeg2 ja viivitus. Unusta see ära. Selle käivitamiseks kulub vähemalt kuus koodirida ja if -avaldus.

Nii et siin on, kuidas seda teha. Meil on limiit (59). Me tahame, et kõik 0–59 korduks ikka ja jälle. Kuidas?

Mis siis, kui … me võtaksime järelejäänud osa millisfunktsioonist jagatuna 59 -ga. Bingo!

Niisiis, see peaks olema selline:

(60 [algväärtusena, kuna piir on 59] + millis () / 1000 [1000 millisekundit on sekund]) % 60

Ok, selgitame. (%) või moodul, on põhimõtteliselt operaator nagu (+), mis leiab ülejäänud osa. Nagu 9 % 2 = 1.

Niisiis:

  • ülejäänud osa (60 + 0) % 60 = 0
  • ülejäänud osa (60 + 1) % 60 = 1
  • ülejäänud osa (60 + 58) % 60 = 58
  • ülejäänud osa (60 + 59) % 60 = 59
  • ülejäänud osa (60 + 60) % 60 = 60
  • ülejäänud osa (60 + 61) % 60 = 1

Näe!

Nüüd osade kohta.

2. samm: osad

Osad
Osad

Mitte palju, üldse

  1. Iga arduino
  2. Mis tahes ekraan (ma kasutasin 0,96 -tollist OLED -i, kuid saate kasutada kõike, mis teil on, veenduge, et sisestate oma ekraani funktsioonidesse õiged muutujad.)

See on kõik.

3. samm: kood

Siin on. See on üsna selgelt kommenteeritud, nii et probleeme ei tohiks tekkida. 0,96 OLED -i teegid ja init on koodis. Kui see on erinev, asendage see oma kuvariga.

// 0,96 OLED -teegid

#kaasake

#kaasake

#kaasake

#kaasake

// 0,96 OLED Init

#define OLED_RESET 4

Adafruit_SSD1306 ekraan (OLED_RESET);

int sekundit;

int minutit;

int tundi;

tühine seadistus () {

// Veel mõned 0,96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

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

void loop () {

sekundit = (60 + millis () / 1000) % 60;

minutit = (60 + millis () / 60000) % 60; tundi = (25 + millis () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // printida tundide arv pärast kuvari lähtestamist. print (tunnid); display.print ("h:");

// printige miitide arv pärast lähtestamist

kuva.print (minutid);

display.print ("m:");

// prindi sekundite arv pärast kuva nullimist. print (sekundid); display.print ("s");

display.setCursor (0, 0);

display.print ("Stopper"); display.drawLine (0, 18, 128, 18, VALGE); display.display ();

}

4. samm: lõplik vormistamine…

Lõpuks…
Lõpuks…

Nii see on! Nüüd mine tee sellega, mida tahad. Võtke aega munadele või võtke oma naabruskond üle.

Tervist, Aarush

Soovitan: