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, Listopad
Anonim
Jednoduché, praktické stopky Arduino
Jednoduché, praktické stopky Arduino

Hledejte na webu stopky Arduino. Pokud jste tady, pravděpodobně jste to udělali. Z osobní zkušenosti vám mohu říci, že jakékoli stopky na internetu jsou buď příliš složité (v kódu pro začátečníky), nebo příliš zjednodušené a nepraktické, jako ty, které stále počítají sekundy bez resetování.

To si taky myslíš, co? No hádejte co. Udělal jsem to, a co víc, přímo přebírám svůj vstup z funkce millis ()- nekonečné řady čísel (do 49 dnů nebo cokoli jiného). Nejlepší část? Je to jen jeden řádek.

Resetování je skutečná tvrdá část stopek. Pro středně pokročilé programátory, pokud jste tak ještě neučinili, pokračujte a zkuste to udělat sami, se sekundami, minutami a hodinami dohromady. Dostanete, o čem mluvím.

Pro začátečníky pokračujte ve čtení a užijte si genialitu své mysli.

Dělám si srandu, ale řešení, které jsem vymyslel, je docela úhledné. Co to je:

Krok 1: Řešení

Řešení
Řešení

Problém je tedy v resetování. Chceme kontinuální, opakující se cyklus čísel, z nekonečného výstupu sekvenčních čísel (milis () - v podstatě počítá milisekundy, nebo vlastně 1,024 milisekundy, ale cokoli).

První věc, která vás napadne, je použití rozdílu, jako time1 -time2 a zpoždění. Zapomeň na to. Ke spuštění je potřeba nejméně šest řádků kódu a příkaz if.

Zde je návod, jak to udělat. Máme limit (59). Chceme, aby se vše od 0 do 59 opakovalo znovu a znovu. Jak?

Co kdybychom… vzali jsme zbytek… milis funkce děleno 59…. Bingo!

Mělo by to tedy být takto:

(60 [jako počáteční hodnota, protože limit je 59] + milis () / 1000 [1000 milisekund je sekunda]) % 60

Dobře, vysvětlíme to. (%) nebo modul, je v podstatě operátor jako (+), který najde zbytek. Stejně jako 9 % 2 = 1.

Tak:

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

Vidět!

Nyní k dílům.

Krok 2: Díly

Části
Části

Vůbec ne

  1. Jakékoli arduino
  2. Jakýkoli displej (použil jsem 0,96 OLED, ale můžete použít, co máte, jen nezapomeňte do funkcí zobrazení vašeho displeje vložit správné proměnné.)

A je to.

Krok 3: Kód

Tady to máš Je to docela jasně komentované, takže by neměly být žádné problémy. V kódu jsou knihovny a init pro 0,96 OLED. Pokud se liší, nahraďte ho vlastním displejem.

// 0,96 knihovny OLED

#zahrnout

#zahrnout

#zahrnout

#zahrnout

// 0,96 OLED Init

#define OLED_RESET 4

Displej Adafruit_SSD1306 (OLED_RESET);

int sekund;

int minuty;

int hodiny;

neplatné nastavení () {

// Ještě 0,96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay (); display.setTextSize (2); display.setTextColor (BÍLÁ); }

prázdná smyčka () {

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

minut = (60 + milis () / 60 000) % 60; hodiny = (25 + milis () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // vytiskne počet hodin od resetu display.print (hodin); display.print ("h:");

// vytiskněte počet minut od resetu

display.print (minuty);

display.print ("m:");

// vytiskne počet sekund od resetu display.print (sekund); display.print ("s");

display.setCursor (0, 0);

display.print („stopky“); display.drawLine (0, 18, 128, 18, BÍLÁ); display.display ();

}

Krok 4: En Finalment…

Na závěr…
Na závěr…

Tak to je vše! Nyní si s tím jděte dělat, co chcete. Načasujte vajíčka nebo ovládněte své okolí.

Na zdraví, Aarushe

Doporučuje: