{"id":2739,"date":"2019-04-28T23:41:51","date_gmt":"2019-04-28T21:41:51","guid":{"rendered":"http:\/\/yarogniew.net\/arduino\/?p=2739"},"modified":"2021-08-14T21:34:21","modified_gmt":"2021-08-14T19:34:21","slug":"millisdelay-biblioteka-zastepujaca-f-delay","status":"publish","type":"post","link":"https:\/\/arduino.net.pl\/index.php\/millisdelay-biblioteka-zastepujaca-f-delay\/","title":{"rendered":"millisDelay library, u\u017cyteczna biblioteka zast\u0119puj\u0105ca delay()"},"content":{"rendered":"\n<p>Okaza\u0142o si\u0119, \u017ce nie mog\u0119 u\u017cywa\u0107 biblioteki <strong><a href=\"http:\/\/arduino.net.pl\/index.php\/jack-christensen-biblioteka-timer\/\">Timer<\/a><\/strong> razem z <strong>CayenneMQTTESP8266<\/strong> poniewa\u017c wyst\u0119puje konflikt klas. Potrzebowa\u0142em funkcji, kt\u00f3ra b\u0119dzie odmierza\u0142a czas po zanotowaniu ustania ruchu przez <a href=\"http:\/\/yarogniew.net\/arduino\/index.php\/rcwl-0516-mikrofalowy-sensor-ruchu\/\">czujnik mikrofalowy<\/a>. Oczywi\u015bcie zatrzymuj\u0105ca prac\u0119 procesora funkcja delay() nie wchodzi w rachub\u0119. W czasie gdy procesor jest blokowany inny czujnik mo\u017ce potrzebowa\u0107 uwagi. Znalaz\u0142em w necie <a href=\"https:\/\/www.forward.com.au\/pfod\/ArduinoProgramming\/TimingDelaysInArduino.html#using\">artyku\u0142<\/a> i podobn\u0105 do <em>Timer<\/em> bibliotek\u0119 <strong>millisDelay<\/strong>. \u015awietnie si\u0119 nadaje do mojego projektu.<\/p>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/github.com\/ansonhe97\/millisDelay\">millisDelay GitHub<\/a><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">keywords.txt<\/h5>\n\n\n\n<p>millisDelay KEYWORD1<br>start KEYWORD2<br>stop KEYWORD2<br>repeat KEYWORD2<br>restart KEYWORD2<br>finish KEYWORD2<br>justFinished KEYWORD2<br>isRunning KEYWORD2<br>getStartTime KEYWORD2<br>remaining KEYWORD2<br>delay KEYWORD2<\/p>\n\n\n\n<p><strong>Najprostszy szkic zast\u0119puj\u0105cy funkcj\u0119 delay()<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\n#include &lt;millisDelay.h&gt;\n\nint led = 13;\n\/\/ Pin 13 has an LED connected on most Arduino boards.\n\nmillisDelay ledDelay;\n\nvoid setup() {\n  \/\/ initialize the digital pin as an output.\n  pinMode(led, OUTPUT);\n  digitalWrite(led, HIGH); \/\/ turn led on\n\n  \/\/ start delay\n  ledDelay.start(10000);\n}\n\nvoid loop() {\n  \/\/ check if delay has timed out\n  if (ledDelay.justFinished()) {\n    digitalWrite(led, LOW); \/\/ turn led off\n  }\n}\n<\/pre><\/div>\n\n\n<p><strong>Zastosowanie metody repeat()<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\n#include &lt;millisDelay.h&gt;\n\nint led = 13;\n\/\/ Pin 13 has an LED connected on most Arduino boards.\nbool ledOn = false; \/\/ keep track of the led state\n\nmillisDelay ledDelay;\n\nvoid setup() {\n  \/\/ initialize the digital pin as an output.\n  pinMode(led, OUTPUT);   \/\/ initialize the digital pin as an output.\n  digitalWrite(led, LOW); \/\/ turn led off\n  ledOn = false;\n\n  \/\/ start delay\n  ledDelay.start(1500);\n}\n\nvoid loop() {\n  \/\/ check if delay has timed out\n  if (ledDelay.justFinished()) {\n    ledDelay.repeat(); \/\/ start delay again without drift\n    \/\/ toggle the led\n    ledOn = !ledOn;\n    if (ledOn) {\n      digitalWrite(led, HIGH); \/\/ turn led on\n    } else {\n      digitalWrite(led, LOW); \/\/ turn led off\n    }\n  }\n}\n<\/pre><\/div>\n\n\n<p>Opr\u00f3cz obja\u015bnionych przyk\u0142adami metod <strong>start(zw\u0142oka)<\/strong>, <strong>justFinished()<\/strong> i <strong>repeat()<\/strong>, biblioteka <strong>millisDelay<\/strong> u\u017cywa te\u017c nast\u0119puj\u0105cych metod: <\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>stop()<\/strong>, kt\u00f3ra pauzuje odliczanie zw\u0142oki (<strong><em>justFinished()<\/em><\/strong><em> nadal przyjmuje warto\u015b\u0107 false<\/em>), <\/li><li><strong>isRunning()<\/strong> dzi\u0119ki kt\u00f3rej sprawdzamy czy odliczanie trwa, <\/li><li><strong>restart()<\/strong> ponawia odliczanie z wcze\u015bniej okre\u015blon\u0105 zw\u0142ok\u0105, <\/li><li><strong>finish()<\/strong> wymusza wcze\u015bniejsze zako\u0144czenie odliczania zw\u0142oki, <\/li><li><strong>remaining()<\/strong> zwraca ilo\u015b\u0107 milisekund a\u017c odliczanie zw\u0142oki si\u0119 zako\u0144czy <\/li><li><strong>delay()<\/strong> zwraca warto\u015b\u0107 zw\u0142oki ustalonej metod\u0105 <strong>start()<\/strong><\/li><\/ol>\n\n\n\n<h5 class=\"wp-block-heading\">LINKI<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.forward.com.au\/pfod\/ArduinoProgramming\/TimingDelaysInArduino.html#using\">How to code Timers and Delays in Arduino<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Okaza\u0142o si\u0119, \u017ce nie mog\u0119 u\u017cywa\u0107 biblioteki Timer razem z CayenneMQTTESP8266 poniewa\u017c wyst\u0119puje konflikt klas. Potrzebowa\u0142em funkcji, kt\u00f3ra b\u0119dzie odmierza\u0142a czas po zanotowaniu ustania ruchu przez czujnik mikrofalowy. Oczywi\u015bcie zatrzymuj\u0105ca&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[98],"class_list":["post-2739","post","type-post","status-publish","format-standard","hentry","category-arduino","tag-timer"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/2739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/comments?post=2739"}],"version-history":[{"count":11,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/2739\/revisions"}],"predecessor-version":[{"id":4545,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/2739\/revisions\/4545"}],"wp:attachment":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media?parent=2739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/categories?post=2739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/tags?post=2739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}