Obsah:

Jednoduché a praktické stopky Arduino: 4 kroky
Jednoduché a praktické stopky Arduino: 4 kroky

Video: Jednoduché a praktické stopky Arduino: 4 kroky

Video: Jednoduché a praktické stopky Arduino: 4 kroky
Video: Контрольная лампа переменного тока с диммером Arduino AC 2024, November
Anonim
Jednoduché a praktické stopky Arduino
Jednoduché a praktické stopky Arduino

Na webe vyhľadajte stopky Arduino. Ak ste tu, pravdepodobne ste to urobili. Z osobnej skúsenosti vám môžem povedať, že akékoľvek stopky na internete sú buď príliš zložité (v kóde pre začiatočníkov), alebo sú príliš zjednodušené a nepraktické ako tie, ktoré jednoducho počítajú sekundy bez resetovania.

Tiež si to myslíš, čo? No hádajte čo. Dokázal som to a čo viac, priamo beriem svoj vstup z funkcie millis ()- nekonečného radu čísel (do 49 dní alebo čohokoľvek). Najlepšia časť? Je to len jeden riadok.

Resetovanie je skutočnou tvrdou súčasťou stopiek. Pokiaľ ide o stredne pokročilých, programátori, ak ste to ešte neurobili, pokračujte a pokúste sa to urobiť sami, so sekundami, minútami a hodinami spoločne. Pochopíte, o čom hovorím.

Začiatočníci, čítajte ďalej a vychutnajte si genialitu svojej mysle.

Žartujem, ale riešenie, ktoré som prišiel, je celkom úhľadné. Čo to je?

Krok 1: Riešenie

Riešenie
Riešenie

Problém je teda reset. To, čo chceme, je nepretržitý, opakujúci sa cyklus čísel z nekonečného výstupu sekvenčných čísel (milis () - v zásade počíta milisekundy alebo vlastne 1,024 milisekundy, ale čokoľvek).

Prvá vec, ktorá vám príde na myseľ, je použiť rozdiel, napríklad time1 -time2 a oneskorenie. Zabudni to. Na spustenie je potrebných najmenej šesť riadkov kódu a príkaz if.

Tu je postup, ako to urobiť. Máme limit (59). Chceme, aby sa všetko od 0 do 59 opakovalo znova a znova. Ako?

Čo keby … vzali sme zvyšok … milisovej funkcie delené 59 …. Bingo!

Malo by to byť takto:

(60 [ako počiatočná hodnota, pretože limit je 59] + milis () / 1000 [1 000 milisekúnd je sekunda]) % 60

Ok, vysvetlím. (%) alebo modul, je v zásade operátor ako (+), ktorý nájde zvyšok. Rovnako ako 9 % 2 = 1.

Takže:

  • zvyšok (60 + 0) % 60 = 0
  • zvyšok (60 + 1) % 60 = 1
  • zvyšok (60 + 58) % 60 = 58
  • zvyšok (60 + 59) % 60 = 59
  • zvyšok (60 + 60) % 60 = 60
  • zvyšok (60 + 61) % 60 = 1

Vidíte!

Teraz k častiam.

Krok 2: Časti

Časti
Časti

Vôbec nie

  1. Akékoľvek arduino
  2. Akýkoľvek displej (použil som 0,96 palcový OLED, ale môžete použiť čokoľvek, len nezabudnite do funkcií zobrazovania vášho displeja vložiť správne premenné.)

To je všetko.

Krok 3: Kód

Tu máš Je to dosť jasne komentované, takže by nemali byť žiadne problémy. V kóde sú knižnice a init pre 0,96 OLED. Ak je odlišný, nahraďte ho vlastným displejom.

// 0,96 knižnice OLED

#zahrnúť

#zahrnúť

#zahrnúť

#zahrnúť

// 0,96 OLED Init

#define OLED_RESET 4

Displej Adafruit_SSD1306 (OLED_RESET);

int sekundy;

int minúty;

int hodiny;

neplatné nastavenie () {

// Ešte niekoľko 0,96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

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

prázdna slučka () {

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

minúty = (60 + milis () / 60 000) % 60; hodiny = (25 + mil () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // vytlač počet hodín od resetovania display.print (hodiny); display.print ("h:");

// vytlačte počet minút od resetovania

display.print (minúty);

display.print ("m:");

// vytlač počet sekúnd od resetovania display.print (sekúnd); display.print ("s");

display.setCursor (0, 0);

display.print („stopky“); display.drawLine (0, 18, 128, 18, BIELY); display.display ();

}

Krok 4: Dokončenie …

Na záver…
Na záver…

Takže to je všetko! Teraz si s ním choďte robiť, čo chcete. Načasujte si vajíčka alebo ovládnite svoje okolie.

Na zdravie, Aarush

Odporúča: