Wa Koodu

Ẹ̀kọ́ 14/31-3: Àpẹẹrẹ koodu Arduino millis() 3 pẹ̀lú bọ́tìnnì títẹ̀

Ẹ̀kọ́ 14/31-3: Àpẹẹrẹ koodu Arduino millis() 3 pẹ̀lú bọ́tìnnì títẹ̀

Ṣé o ti nilo Arduino rẹ láti rántí ìgbà tí ohun kan ṣẹlẹ̀—bíi títẹ bọtini kan—àti láti ṣe ìgbésẹ̀ ní àkókò pípé lẹ́yìn náà, nígbà tí gbogbo ètò rẹ ń bá a lọ láìdábàá? Èyí jẹ́ ìpèníjà àkànṣe nínú siseto Arduino, àti ojútùú ni iṣẹ́ millis(). Ẹ̀kọ́ yìí, apá kan ti ẹ̀kọ́ Robojax Arduino, ṣàfihàn àpẹẹrẹ tí ó wúlò: ṣíṣe àwárí bí a bá tẹ bọtini kan lẹ́ẹ̀kejì lẹ́yìn ìdádúró 5-ìṣẹ́jú àáyá tí ó ti kọjá láti ìgbà títẹ àkọ́kọ́. Ìlànà yìí jẹ́ ìpìlẹ̀ fún ṣíṣe àwọn iṣẹ́ tí ń dáhùn, tí kò díwọ̀n, níbi tí àkókò ti ṣe pàtàkì.

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

Ìlànà lílo millis() yìí láti tọ́jú àkókò láìdáwọ́ ètò jẹ́ ohun pàtàkì fún ọ̀pọ̀lọpọ̀ àwọn ohun tí a lò ní àgbáyé gidi. Àwọn èrò díẹ̀ nìyí láti ru ọkàn rẹ sókè fún àwọn iṣẹ́ tirẹ:

  • Àwọn Ojú Ìbánisọ̀rọ̀ Bọtini Tí Kò Díwọ̀n: Ṣe ètò kan níbi tí bọtini gbọ́dọ̀ mú duro fún àkókò pípé (bíi 3 ìṣẹ́jú àáyá) kí ó tó tan ẹ̀rọ kan, láti yẹra fún títẹ àìròtẹ́lẹ̀.
  • Àwọn Ìgbésẹ̀ Tí Ó Tẹ̀léra: Ṣe ètò kan níbi tí ìṣẹ̀lẹ̀ kan, bíi ìmúṣẹ ẹ̀rọ ìmọ̀lára ìṣísẹ̀, yóò mú ìgbésẹ̀ kejì ṣiṣẹ́ tí ó nìkan ṣẹlẹ̀ bí ìṣẹ̀lẹ̀ mìíràn bá ṣẹlẹ̀ nínú fèrèsé àkókò kan.
  • Àwọn Aago Ìbánisọ̀rọ̀ Olùmúlò: Kọ́ iṣẹ́ kan tí ó nílò ìfisílẹ̀ "ìfìdí" (bíi títẹ bọtini kejì) nínú àkókò tí a ṣètò láti ṣe iṣẹ́ pàtàkì kan, bíi fífi àṣẹ ranṣẹ́ tàbí bẹ̀rẹ̀ mótò.
  • Ìmúra Ẹ̀rọ Ìmọ̀lára: Lo àmì àkọ́kọ́ láti ẹ̀rọ ìmọ̀lára kan láti bẹ̀rẹ̀ fèrèsé àkókò, nínú èyí tí kíkà ẹ̀rọ ìmọ̀lára kejì, tí ó yàtọ̀, ni a kà sí tí ó wúlò tàbí tí a kọjú kúrò.

Ohun Èlò Tí A Nílò

Iṣẹ́ yìí lo àwọn ẹ̀yà láti inú ohun èlò SunFounder 3-in-1 Arduino, tí ó jẹ́ orísun tí ó dára fún kíkọ́. Ìwọ yóò nílò:

  • Bọ́ọ̀dù Arduino (Uno, Nano, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ)
  • Bọtini títẹ àkókò kan
  • Àwọn okun oníjàngbọ̀n

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

Ìsopọ̀ fún àpẹẹrẹ yìí rọrùn púpọ̀, nípasẹ̀ àwọn resistor ìfà sókè inú Arduino, tí ó mú kí a kò nílò resistor òde. (Nínú fídíò ní 08:29)

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

Nípa lílo INPUT_PULLUP, pin náà ti sopọ̀ sí 5V nínú, nítorí náà ó kà HIGH ní ìgbà deede. Nígbà tí a bá tẹ bọtini náà, ó sopọ̀ pin náà sí GND, tí ó mú kí ó kà LOW. Èyí ni ìrònú tí a yóò lo nínú kóòdù náà.

Àlàyé Kóòdù

Àárín iṣẹ́ yìí ni ìrònú tí ń tọ́jú títẹ bọtini àkọ́kọ́ àti lẹ́yìn náà ṣàyẹ̀wò fún títẹ kejì lẹ́yìn àkókò pípé kan. Kóòdù náà jẹ́ èyí tí kò díwọ̀n, tí ó túmọ̀ sí pé kò ní dáwọ́ ìṣiṣẹ́ àwọn iṣẹ́ mìíràn dúró nínú loop() rẹ.

Ní ìbẹ̀rẹ̀ skẹ́tì náà, ìwọ yóò rí àwọn àṣàyàn tí olùmúlò lè yí padà tí ń ṣàkóso ìwà àkókò:

unsigned long event = 5000;// 5 ìṣẹ́jú àáyá
unsigned long buttonPushed =0;
  • event: Èyí ni àṣàyàn àkókò pàtàkì. Ó ṣètò iye ìdádúró ní mílísẹ́kọ̀ndì. Nínú àpẹẹrẹ yìí, a ṣètò rẹ̀ sí 5000, tí ó dọ́gba pẹ̀lú 5 ìṣẹ́jú àáyá. Ìwọ lè yí iye yìí padà sí iye mìíràn èyíkéyìí láti bá àìní iṣẹ́ rẹ mu.
  • buttonPushed: Àṣàyàn yìí ni a lò gẹ́gẹ́ bíi àmì àti àkókò tí a fipamọ́. Ó bẹ̀rẹ̀ ní 0 àti a mú un dójú ewọ sí iye millis() ní ìgbà àkọ́kọ́ tí a tẹ bọtini náà. Àkókò tí a fipamọ́ yìí ni a lò láti ṣírò ìyàtọ̀ fún ṣíṣe àyẹ̀wò títẹ kejì.

Ìrònú nínú iṣẹ́ loop() ń ṣiṣẹ́ ní ìpele méjì. Àkọ́kọ́, ó ka ipò bọtini náà, àti bí a bá tẹ̀ ẹ́ fún ìgbà àkọ́kọ́ (pb == LOW && buttonPushed == 0), ó kọ àkókò lọ́wọ́lọ́wọ́ nípasẹ̀ millis() sínú àṣàyàn buttonPushed. Ìpele kejì ṣàyẹ̀wò bí a bá ṣì tẹ bọtini náà àti bí a bá ti kọ títẹ àkọ́kọ́ sílẹ̀. Bí ó bá rí bẹ́ẹ̀, ó ṣírò ìyàtọ̀ àkókò láàárín àkókò lọ́wọ́lọ́wọ́ àti àkókò títẹ àkọ́kọ́. Bí ìyàtọ̀ yìí bá tóbi tàbí dọ́gba pẹ̀lú àkókò event rẹ, ó ṣe ìgbésẹ̀ náà—nínú ọ̀ràn yìí, títẹ ìwé kan sí Ojú Ìṣàkóso Serial.

Ìṣàfihàn Iṣẹ́ Láàyè

Nínú fídíò náà, a gbé kóòdù náà sí Arduino, àti a ṣí Ojú Ìṣàkóso Serial láti ṣàkíyèsí ìwà rẹ̀. (Nínú fídíò ní 16:03) Ìwọ yóò rí iye millis() tí ń tẹ̀ jáde láìdáwọ́, tí ń fi àkókò tí ó ti kọjá láti ìgbà tí ètò bẹ̀rẹ̀ hàn. Nígbà tí o bá tẹ bọtini náà fún ìgbà àkọ́kọ́, ìwé kan bíi First push at:5019 ni a tẹ̀ jáde. Bí o bá tẹ bọtini náà lẹ́ẹ̀kan sí i àti kí o mú un dúró fún ju 5 ìṣẹ́jú àáyá lọ láti ìgbà títẹ àkọ́kọ́, ìwé Action after 5 seconds of first push ni a tẹ̀ jáde. Èyí fi hàn pé ìgbésẹ̀ náà nìkan ni a mú ṣiṣẹ́ nígbà tí títẹ kejì bá ṣẹlẹ̀ lẹ́yìn ìdádúró tí a ti ṣètò ti kọjá.

Agbára ìlànà yìí ni pé ìlà Serial.println(millis()) ní ìbẹ̀rẹ̀ loop ń bá a lọ láìdáwọ́, tí ń fi hàn pé ìrònú àkókò kò díwọ̀n àwọn kóòdù mìíràn láti ṣiṣẹ́. Èyí ni àǹfààní ìpìlẹ̀ lílo millis() ju iṣẹ́ delay() lọ.

Àwọn iṣẹ́ tí ó jọmọ́ láti fídíò yìí

Àwọn orí

  • [00:00] Ìfihàn sí millis() àti ẹ̀kọ́ náà
  • [01:19] Kí ni millis() àti ìdí tí a fi ń lò ó?
  • [03:06] Àpẹẹrẹ àkọ́kọ́ tí ó wúlò: títẹ̀ millis() jáde
  • [05:46] Lílò millis() láti mú ìṣẹ̀lẹ̀ kan ṣẹlẹ̀ lẹ́yìn ìṣẹ́jú àáyá 5
  • [08:29] Àpẹẹrẹ 2: Ìgbésẹ̀ bọ́tìnnì tí a tẹ̀ pẹ̀lú ìdúró ìṣẹ́jú àáyá 5
  • [12:14] Àpẹẹrẹ 3: Ṣíṣàwárí títẹ̀ bọ́tìnnì kejì lẹ́yìn ìdúró kan
  • [17:20] Ìfihàn sí iṣẹ́ map()
  • [19:47] Àpẹẹrẹ tí ó wúlò ti ṣíṣe àwọn ìpín ìmọ́lẹ̀ LED

Aworan

Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
918-Lesson 14/31-3: Arduino coding millis() example 3 with push button
Ede: C++
/*
Lesson 14/31: Arduino coding millis() example 3 with push button
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
unsigned long buttonPushed =0;

void setup() {
  Serial.begin(9600);//initialize serial monitor
  Serial.println("Introduction to millis");
  pinMode(2,INPUT_PULLUP);
  


}

void loop() {
  // ilmoFan.com example-2 millis()
  Serial.println(millis());
  int pb = digitalRead(2);// read pin 2
  if(pb ==LOW && buttonPushed ==0)
  {
    buttonPushed =millis();
    Serial.print("First push at:");
    Serial.println(buttonPushed);
  }
  if( pb ==LOW &&  buttonPushed >0 )
  {
   unsigned long difference = millis()- buttonPushed;
      if( difference >= event)
      {
        Serial.println("Action after 5 seconds of first push");
      }
  }
  
}

Orisun & itọkasi

Fáìlìs📁

Iwe Itọsọna Olumulo