Wa Koodu

Ẹ̀kọ́ 14/31-2: Àpẹẹrẹ koodu Arduino millis() 2 pẹ̀lú ìṣẹ̀lẹ̀

Ẹ̀kọ́ 14/31-2: Àpẹẹrẹ koodu Arduino millis() 2 pẹ̀lú ìṣẹ̀lẹ̀

Nínú ẹ̀kọ́ yìí, ìwọ yóò kọ́ bí o ṣe le lo iṣẹ́ millis() ti Arduino láti mú ìgbésẹ̀ kan ṣẹlẹ̀ nìkan lẹ́yìn àkókò tí a yàn kalẹ̀, láìdínà kòódù rẹ̀ tó kù. Èyí jẹ́ ọ̀nà pàtàkì fún ṣíṣe àwọn iṣẹ́ Arduino tí ń dáhùn níbi tí ọ̀pọ̀ iṣẹ́ ti nílò láti ṣiṣẹ́ ní àkókò kan náà, bíi mí mọ́ iná LED nígbà tí o ń ka àwọn sẹ́nsà tàbí ṣíṣe àbójútó titẹ bọ́tìnì. Àpẹẹrẹ pàtó yìí fọkàn sí mí mọ́ ìṣẹ̀lẹ̀ kan lẹ́yìn ìṣẹ́jú àáyá márùn-ún, ṣùgbọ́n ìmọ̀ yìí lè ṣiṣẹ́ fún ọ̀pọ̀lọpọ̀ àwọn ọ̀nà gidi ní àgbáyé.

Ọkọ̀ Sunfounder tí a kó papọ̀

Èyí ni àwọn àpẹẹrẹ díẹ̀ tí ó wúlò nípa bí o ṣe le lo àpẹẹrẹ yìí nínú àwọn iṣẹ́ tirẹ̀:

  • Mí mọ́ pẹ̀lú ìdúró: Tan afẹ́fẹ́ tàbí pọ̀ǹpù nìkan lẹ́yìn tí ètò náà ti ń ṣiṣẹ́ fún àkókò tí a yàn.
  • Àwọn ìdènà ààbò: Nílò bọ́tìnì kan láti tẹ̀ àti mú ní àkókò díẹ̀ kí o tó ṣe ìgbésẹ̀ ewu kan, bíi bíbẹ̀rẹ̀ mọ́tò.
  • Àwọn ìkìlọ̀ tí ó dá lórí àkókò: Mú ìkìlọ̀ tàbí ìfìyèsí ṣẹlẹ̀ bí ìwọ̀n sẹ́nsà kan kò bá yípadà nínú àkókò kan pàtó.
  • Àwọn àkókò tí kò dínà: Ṣẹ̀dá "watchdog" timer tí yóò tún ètò bẹ̀rẹ̀ bí ó bá dákẹ́ jẹ́ẹ́.

Ìṣòro pàtàkì tí èyí yanjú ni àìle ṣe iṣẹ́ pẹ̀lú iṣẹ́ delay(). Nígbà tí o bá lo delay(5000), Arduino dúró láti ṣiṣẹ́ kòódù mìíràn fún ìṣẹ́jú àáyá márùn-ún yẹn. Èyí dára fún àwọn ètò tí ó rọrùn, ṣùgbọ́n ó di ìṣòro ńláǹlà nínú àwọn iṣẹ́ tí ó díjù níbi tí o nílò láti ka àwọn sẹ́nsà, ṣe àtúnṣe àwọn àfihàn, tàbí gbọ́ fún titẹ bọ́tìnì nígbà tí o ń dúró. Iṣẹ́ millis(), tí ó ń ka àwọn milliseconds láti ìgbà tí a ti tan bọ́ọ̀dù náà, gbà ọ́ láàyè láti ṣàyẹ̀wò àkókò láìdínà ètò náà.

Ohun èlò Tí A Nílò

  • Bọ́ọ̀dù Arduino (Uno, Nano, Mega, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ)
  • Bọ́tìnì tí a ń tẹ̀
  • Àwọn okun oníjàngbọ̀n

Ìtọ́sọ́nà Asopọ̀

Asopọ̀ fún àpẹẹrẹ yìí rọrùn púpọ̀. Ó lo resistor ìfààwọ́ inú, nítorí náà kò sí resistor ìta tí a nílò fún bọ́tìnì náà.

  • So ẹsẹ̀ kan ti bọ́tìnì náà pọ̀ mọ́ pín GND lórí Arduino.
  • So ẹsẹ̀ kejì ti bọ́tìnì náà pọ̀ mọ́ pín oní nọ́ńbà 2 lórí Arduino.

Nítorí pé a lo INPUT_PULLUP nínú kòódù, pín náà yóò ka HIGH nígbà tí a kò tẹ bọ́tìnì náà àti LOW nígbà tí a tẹ̀ ẹ́, nípa sísopọ̀ pín náà mọ́ ilẹ̀. (nínú fídíò ní 08:29)

Lílóye Kòódù Náà

Kòódù yìí ṣàfihàn àkókò tí ó dá lórí ìṣẹ̀lẹ̀ kan. Ètò náà ń tẹ̀ àwọn iye millis() lọ́wọ́lọ́wọ́ sí Serial Monitor. Nígbà tí a bá tẹ bọ́tìnì náà àti mú un, àti pé Arduino ti ń ṣiṣẹ́ fún ó kéré tán ìṣẹ́jú àáyá márùn-ún, yóò tẹ̀ "Take action" sí Serial Monitor. Ohun pàtàkì ni pé àyẹ̀wò millis() kò dáwọ́ títẹ̀ àkókò náà lọ́wọ́.

Ẹ jẹ́ kí a pín àwọn apá tí olùṣàmúlò lè ṣàtúnṣe nínú kòódù náà:

unsigned long event = 5000;// 5 seconds

Èyí ni àwọn onírúiyè tí ó ṣe pàtàkì jùlọ láti ṣàtúnṣe. Ó ṣàlàyé iye àkókò "ìṣẹ̀lẹ̀" rẹ nínú milliseconds. Nínú àpẹẹrẹ yìí, a gbé e sí 5000, tí ó dọ́gba pẹ̀lú ìṣẹ́jú àáyá márùn-ún. Láti yí ìdúró náà padà, ṣàtúnṣe nọ́ńbà yìí. Fún àpẹẹrẹ, gbígbe e sí 10000 yóò mú kí ìgbésẹ̀ náà ṣẹlẹ̀ lẹ́yìn ìṣẹ́jú àáyá mẹ́wàá. Ó ṣe pàtàkì láti lo irú data unsigned long, nítorí iye millis() lè dàgbà púpọ̀ àti pé yóò kọjá iye tí ó pọ̀ jù fún irú data int ti ìwọ̀n, tí yóò fa àṣìṣe nínú ìfiwéra. (nínú fídíò ní 05:46)

pinMode(2,INPUT_PULLUP);

Ìlà yìí ṣètò pín oní nọ́ńbà 2 gẹ́gẹ́ bí ìfàwọ̀n àti kíkópa resistor ìfààwọ́ inú rẹ̀. Èyí jẹ́ ìgbésẹ̀ ìtòlẹ́sẹẹsẹ pàtàkì tí ó gbà ọ́ láàyè láti so bọ́tìnì kan láìsí resistor ìta. Pín náà yóò ka HIGH ní àìṣe àyípadà àti pé yóò lọ sí LOW nígbà tí a bá tẹ bọ́tìnì náà, nípa sísopọ̀ rẹ̀ mọ́ ilẹ̀. Bí o bá fẹ́ lo pín mìíràn, yí nọ́ńbà 2 padà níbí àti nínú ìlà digitalRead(2) nínú loop. (nínú fídíò ní 08:46)

Ìmọ̀ inú loop() rọrùn. Ó ka ipò bọ́tìnì náà. Bí a bá tẹ bọ́tìnì náà (pb == LOW), ó ṣàyẹ̀wò bí àkókò lọ́wọ́lọ́wọ́ (millis()) tó bá ti tóbi tàbí dọ́gba pẹ̀lú àkókò event rẹ. Bí àwọn ipò méjèèjì bá jẹ́ òtítọ́, ó tẹ̀ ìfiranṣẹ́ ìgbésẹ̀ náà. Ìyókù loop, tí ó ń tẹ̀ àkókò náà, ń bá a lọ láìdínà, tí ó ń fi agbára millis() hàn lórí delay().

Àpẹẹrẹ yìí ṣàyẹ̀wò àkókò láti ìgbà tí Arduino bẹ̀rẹ̀. Àpẹẹrẹ kẹta nínú àwọn fídíò yìí gbé e lọ nípa kíkọ àkókò titẹ bọ́tìnì àkọ́kọ́ àti mí mọ́ ìgbésẹ̀ nìkan bí titẹ kejì bá ṣẹlẹ̀ ní ó kéré tán ìṣẹ́jú àáyá márùn-ún lẹ́yìn náà. Ìmọ̀ yẹn ni a ṣàlàyé nínú Ẹ̀kọ́ 14/31-3: Arduino coding millis() àpẹẹrẹ 3 pẹ̀lú bọ́tìnì.

Ìṣàfihàn Iṣẹ́ Ààyè

Nígbà tí o bá gbé kòódù náà sílẹ̀ àti ṣí Serial Monitor (ní 9600 baud), ìwọ yóò rí ọ̀pọ̀lọpọ̀ nọ́ńbà tí ń bá a lọ, tí ó ń ṣàfihàn milliseconds láti ìgbà tí a ti tan bọ́ọ̀dù náà. Bí o bá tẹ àti mú bọ́tìnì náà kí ìṣẹ́jú àáyá márùn-ún tó kọjá, kò sí ohun tí yóò ṣẹlẹ̀. Ṣùgbọ́n, bí o bá tẹ àti mú bọ́tìnì náà lẹ́yìn ààmì ìṣẹ́jú àáyá márùn-ún, ìwọ yóò rí ìfiranṣẹ́ "Take action" tí a tẹ̀ nínú Serial Monitor. Ìgbésẹ̀ náà yóò máa tẹ̀ síwájú níwọ̀n ìgbà tí o bá mú bọ́tìnì náà. Èyí ṣàfihàn àkókò tí kò dínà tí ó gbà láàyè fún kòódù mìíràn (títẹ̀) láti ṣiṣẹ́ láìsí ìdínà. (nínú fídíò ní 10:52)

Awọn iṣẹ ti o ni ibatan lati fidio yii

Fidio yii jẹ apakan ti ẹ̀yà pupọ lori awọn iṣẹ akoko ati awọn iṣẹ map ti Arduino. Ṣawari awọn ẹkọ miiran ti a ṣẹda lati orisun kanna yii:

Awọn ipin

  • [00:00] Ifihan si millis() ati SunFounder Kit
  • [01:19] Kini millis() ati idi ti o fi lo dipo delay()?
  • [03:06] Ifihan ti o wulo: titẹ iye millis() jade
  • [05:46] Ṣiṣẹda iṣẹlẹ pẹlu millis() ati unsigned long
  • [08:29] Sisopọ ati koodu bọtini titẹ pẹlu INPUT_PULLUP
  • [10:52] Ṣiṣe apẹẹrẹ iṣẹlẹ pẹlu bọtini titẹ
  • [12:14] Asọtẹlẹ ti apẹẹrẹ 3: wiwa titẹ bọtini keji
  • [17:20] Ifihan si iṣẹ map()
  • [19:47] Koodu ati ifihan iṣẹ map() pẹlu LED kan

Aworan

Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
917-Lesson 14/31-2: Arduino coding millis() example 2 with event
Ede: C++
/*
Lesson 14/31: Arduino coding millis() example 2 with event
Get this code and watch video Download and resource page https://robojax.com/RJT597
YouTube video https://www.youtube.com/watch?v=lqgzQohNiIM
 
  
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been download from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */


unsigned long event = 5000;// 5 seconds
void setup() {
  Serial.begin(9600);//initialize serial monitor
  Serial.println("Introduction to millis");
  pinMode(2,INPUT_PULLUP);
  


}

void loop() {
  // Robojax.com millis() example 1
  Serial.println(millis());
  int pb = digitalRead(2);// read pin 2
  if(pb ==LOW)
  {
      if(millis() >= event)
      {
        Serial.println("Take action");
      }// if end
  }// if end
  
}// loop end

Orisun & itọkasi

Fáìlìs📁

Iwe Itọsọna Olumulo