Բովանդակություն:

Պարզ, գործնական Arduino վայրկյանաչափ. 4 քայլ
Պարզ, գործնական Arduino վայրկյանաչափ. 4 քայլ

Video: Պարզ, գործնական Arduino վայրկյանաչափ. 4 քայլ

Video: Պարզ, գործնական Arduino վայրկյանաչափ. 4 քայլ
Video: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, Նոյեմբեր
Anonim
Պարզ, գործնական Arduino վայրկյանաչափ
Պարզ, գործնական Arduino վայրկյանաչափ

Համացանցում փնտրեք Arduino վայրկյանաչափ: Դուք հավանաբար պարզապես դա արել եք, եթե այստեղ եք: Անձնական փորձից ես կարող եմ ձեզ ասել, որ ինտերնետում ցանկացած վայրկյանաչափ կամ չափազանց բարդ է (ծածկագրով ՝ սկսնակների համար), կամ չափազանց պարզեցված է, և ոչ գործնական, ինչպես այնպիսիները, որոնք պարզապես հաշվում են վայրկյանները ՝ առանց վերակայելու:

Դուք նույնպես այդպես եք կարծում, հա՞: Դե գուշակիր ինչ: Ես դա արեցի, և ավելին, ես ուղղակիորեն վերցնում եմ իմ ներդրումը millis () գործառույթից ՝ թվերի անվերջ տող (մինչև 49 օր, կամ որևէ այլ բան): Լավագույն մասը? Դա միայն մեկ տող է:

Վերականգնելը վայրկյանաչափի իրական ծանր մասն է: Միջանկյալ ծրագրավորողների համար, եթե դա դեռ չեք արել, առաջ գնացեք և փորձեք դա անել ինքներդ ՝ վայրկյաններով, րոպեներով և ժամերով միասին: Դուք կստանաք այն, ինչի մասին ես խոսում եմ:

Սկսնակների համար, կարդացեք և զվարճացեք իմ մտքի հանճարով:

Կատակ եմ անում, բայց լուծումը, որը ես գտա, բավականին կոկիկ է: Ահա թե ինչ է դա.

Քայլ 1: Լուծում

Լուծումը
Լուծումը

Այսպիսով, խնդիրը վերակայելն է: Այն, ինչ մենք ցանկանում ենք, թվերի շարունակական, կրկնվող ցիկլ է ՝ հաջորդական թվերի անվերջ ելքից (միլիլ () - այն հիմնականում հաշվում է միլիվայրկյան, կամ իրականում 1.024 միլիվայրկյան, բայց ինչ էլ որ լինի):

Առաջին բանը, որ գալիս է մտքի, տարբերությունն օգտագործելն է, ինչպես ժամանակը 1 -time2 և ուշացումը: Մոռացիր դա. Բեռնման համար անհրաժեշտ է առնվազն վեց տող կոդ և if հայտարարություն:

Այսպիսով, ահա թե ինչպես դա անել: Մենք ունենք սահմանափակում (59): Մենք ցանկանում ենք, որ 0 -ից 59 -ը ամեն ինչ կրկնել անընդհատ: Ինչպե՞ս:

Ի՞նչ կլիներ, եթե… վերցնեինք միլիիսի ֆունկցիայի մնացորդը ՝ բաժանված 59 -ի… Բինգո!

Այսպիսով, այն պետք է լինի այսպես.

(60 [որպես սկզբնական արժեք, քանի որ սահմանը 59 է] + միլիլ () / 1000 [1000 միլիվայրկյան վայրկյան է]) % 60

Լավ, բացատրեմ: (%) կամ մոդուլ, հիմնականում (+) նման օպերատոր է, որը գտնում է մնացորդը: Ինչպես 9 % 2 = 1:

Այսպիսով,

  • մնացորդ (60 + 0) % 60 = 0
  • մնացորդ (60 + 1) % 60 = 1
  • մնացորդ (60 + 58) % 60 = 58
  • մնացորդ (60 + 59) % 60 = 59
  • մնացորդ (60 + 60) % 60 = 60
  • մնացորդ (60 + 61) % 60 = 1

Տեսնել!

Հիմա, մասերի համար:

Քայլ 2: Մասեր

Մասերը
Մասերը

Ոչ շատ, բոլորովին:

  1. Arանկացած arduino
  2. Displayանկացած էկրան (ես օգտագործել եմ 0.96 դյույմանոց OLED- ը, բայց դուք կարող եք օգտագործել այն, ինչ ունեք, պարզապես համոզվեք, որ ճիշտ փոփոխականները տեղադրեք ձեր ցուցադրման ցուցադրման գործառույթների մեջ):

Վերջ:

Քայլ 3: Կոդ

Ահա դու գնացիր: Այն բավականին հստակ մեկնաբանված է, ուստի խնդիրներ չպետք է լինեն: Գրադարանները և 0,96 OLED- ի init- ը ծածկագրում են: Փոխարինեք այն ձեր սեփական էկրաններով, եթե այն այլ է:

// 0.96 OLED գրադարաններ

#ներառում

#ներառում

#ներառում

#ներառում

// 0.96 OLED սկիզբ

#սահմանեք OLED_RESET 4

Adafruit_SSD1306 էկրան (OLED_RESET);

int վայրկյան;

int րոպե;

ինտ ժամեր;

void setup () {

// Եվս 0.96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay (); display.setTextSize (2); display.setTextColor (ՍՊԻՏԱԿ); }

դատարկ շրջան () {

վայրկյան = (60 + միլիլ () / 1000) % 60;

րոպե = (60 + միլիլ () / 60000) % 60; ժամ = (25 + միլիլ () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // տպել ցուցադրման վերականգնման պահից ժամերի քանակը: տպել (ժամ); display.print ("h:");

// տպել վերականգնումից ի վեր միյուտների թիվը

ցուցադրում: տպել (րոպե);

display.print ("m:");

// տպել ցուցադրման վերականգնումից ի վեր վայրկյանների քանակը: տպել (վայրկյաններ); display.print («ներ»);

display.setCursor (0, 0);

display.print («վայրկյանաչափ»); display.drawLine (0, 18, 128, 18, ՍՊԻՏԱԿ); display.display ();

}

Քայլ 4: Վերջնական ավարտ…

Վերջնական…
Վերջնական…

Ուրեմն վերջ! Հիմա գնա, ինչ ուզում ես դրա հետ: Timeամանակ տվեք մի քանի ձու կամ գրավեք ձեր հարևանը:

Ողջույն, Ահարուշ

Խորհուրդ ենք տալիս: