Sadržaj:

Jednostavna, praktična Arduino štoperica: 4 koraka
Jednostavna, praktična Arduino štoperica: 4 koraka

Video: Jednostavna, praktična Arduino štoperica: 4 koraka

Video: Jednostavna, praktična Arduino štoperica: 4 koraka
Video: DIY 1 кВт синусоидальный инвертор 12 В до 220 В, jlcpcb 2024, Jun
Anonim
Jednostavna, praktična Arduino štoperica
Jednostavna, praktična Arduino štoperica

Pretražite Arduino štopericu na webu. Vjerovatno ste to upravo učinili, ako ste ovdje. Iz vlastitog iskustva mogu vam reći da je svaka štoperica na internetu ili previše složena (u kodu, za početnike), ili je previše pojednostavljena i nije praktična, poput onih koje samo broje sekunde bez resetiranja.

I ti tako misliš, a? Pa pogodi šta. Uradio sam to, i šta više, direktno uzimam svoj unos iz funkcije millis ()- beskonačnog niza brojeva (do 49 dana ili bilo šta drugo). Najbolji dio? To je samo jedna linija.

Resetiranje je stvarni tvrdi dio štoperice. Za srednjoškolce, programeri, ako već niste, pokušajte to učiniti sami, sa sekundama, minutama i satima zajedno. Shvatit ćeš o čemu govorim.

Za početnike, čitajte dalje i uživajte u genijalnosti svog uma.

Šalim se, ali rješenje koje sam smislio je prilično uredno. Evo šta je to:

Korak 1: Rješenje

Rjesenje
Rjesenje

Dakle, problem je resetiranje. Ono što želimo je kontinuirani, ponavljajući ciklus brojeva, od beskrajnog ispisa sekvencijalnih brojeva (millis () - u osnovi broji milisekunde, ili zapravo 1,024 milisekunde, ali svejedno).

Prvo što mi pada na pamet je korištenje razlike, poput time1 -time2 i kašnjenja. Zaboravi to. Za pokretanje je potrebno najmanje šest redova koda i if naredba.

Evo kako to učiniti. Imamo ograničenje (59). Želimo da se sve od 0 do 59 ponavlja iznova i iznova. Kako?

Što ako … uzeli smo ostatak … funkcije millis podijeljen sa 59 …. Bingo!

Dakle, trebalo bi da izgleda ovako:

(60 [kao početna vrijednost jer je granica 59] + millis () / 1000 [1000 milisekundi je sekunda]) % 60

U redu, hajde da objasnim. (%) ili modul, u osnovi je operator poput (+) koji pronalazi ostatak. Kao 9 % 2 = 1.

Dakle:

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

Vidite!

A sada o dijelovima.

Korak 2: Dijelovi

The Parts
The Parts

Uopšte ne mnogo

  1. Bilo koji arduino
  2. Bilo koji ekran (koristio sam OLED od 0,96 , ali možete koristiti sve što imate, samo ubacite prave varijable u funkcije prikaza vašeg ekrana.)

To je to.

Korak 3: Kôd

Izvolite. Prilično je jasno komentirano, tako da ne bi trebalo biti problema. Biblioteke i init za OLED od 0,96 su u kodu. Zamijenite ih vlastitim ekranima ako je drugačiji.

// 0,96 OLED biblioteke

#include

#include

#include

#include

// 0,96 OLED prva

#define OLED_RESET 4

Adafruit_SSD1306 ekran (OLED_RESET);

int sekundi;

int minute;

int sati;

void setup () {

// Još 0,96 OLED počet

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

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

void loop () {{100} {101}

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

minute = (60 + millis () / 60000) % 60; sati = (25 + millis () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // ispisuje broj sati od resetiranja display.print (sati); display.print ("h:");

// ispisuje broj minuta nakon resetiranja

display.print (minute);

display.print ("m:");

// ispisuje broj sekundi od resetiranja display.print (sekunde); display.print ("s");

display.setCursor (0, 0);

display.print ("Štoperica"); display.drawLine (0, 18, 128, 18, BIJELO); display.display ();

}

Korak 4: Završnica…

En Finalment…
En Finalment…

To je to! Sada idi radi šta hoćeš s tim. Odvojite vremena za jaja ili preuzmite svoje susjedstvo.

Živjeli, Aarush

Preporučuje se: