Ẹ̀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é.
È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:
- Ẹkọ 14/31-1: Arduino Millis (ko si idaduro) ati awọn iṣẹ map | SunFounder Robojax
- Ẹkọ 14/31-3: Arduino coding millis() apẹẹrẹ 3 pẹlu bọtini titẹ
- Ẹkọ 14/31-4: Arduino coding map() apẹẹrẹ 1
- Ẹkọ 14/31-5: Arduino coding map() apẹẹrẹ 2
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
/*
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
Ohun ti o le nilo
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
Miiran
Orisun & itọkasi
-
Ita gbangbaPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Fáìlìs📁
Iwe Itọsọna Olumulo
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB