Casharka 14/31-2: Tixraaca Arduino ee millis() tusaale 2 oo leh dhacdo
Cashigarkani, waxaad ku baran doontaa sida loo isticmaalo shaqada Arduino millis() si aad u kiciso ficil kaliya ka dib marka muddo cayiman ay dhaafto, dhammaan iyada oo aan la joojin inta ka hartay barnaamijkaaga. Tani waa farsamo aasaasi u ah abuurista mashruucyada Arduino ee jawaabta leh halkaas oo hawlo badan ay u baahan yihiin inay si isku mid ah u socdaan, sida hillaacinta LED-yada inta aad akhrinayso dareemayaasha ama la socodka riixista badhanka. Tusaalahan gaarka ah wuxuu diiradda saarayaa kicinta dhacdo shan ilbiriqsi kadib, laakiin macquulka ayaa lagu dabaqi karaa xaalado badan oo dhab ah oo adduunka ah.
Waa kuwan tusaalooyin wax ku ool ah oo dhowr ah oo ku saabsan sida loo isticmaali karo qaabkan mashruucyadaada:
- Kicinta dib u dhacday: Daar marawaxad ama matoor kaliya ka dib marka nidaamku uu shaqeynayo muddo cayiman.
- Xiritaanka amniga: U baahan in badhan la riixo oo la hayo muddo ka hor inta aan la qaban fal khatar ah, sida bilaabista matoor.
- Baraarujinta waqtiga ku salaysan: Kici qaylo ama ogeysiis haddii akhrinta dareemaha aan isbeddelin gudaha muddo cayiman.
- Timer-yada aan xannibin: Abuur "watchdog" timer kaas oo dib u bilaaba qalabka haddii uu noqdo mid aan jawaabayn.
Dhibaatada asaasiga ah ee tani xalliso waa xaddidnaanta shaqada delay(). Markaad isticmaasho delay(5000), Arduino wuxuu joojiyaa fulinta wax kood oo kale ah shanta ilbiriqsi eeas. Tani waxay fiican tahay qoraallada fudud, laakiin waxay noqotaa dhibaato weyn mashruucyada kakan halkaas oo aad u baahan tahay inaad akhrido dareemayaasha, cusboonaysiiso shaashadaha, ama dhageysato riixista badhanka inta aad sugayso. Shaqada millis(), taas oo tirinaysa milisekonnada tan iyo markii looxa la shiday, waxay kuu ogolaaneysaa inaad hubiso waqtiga iyada oo aan la joojin barnaamijka.
Qalabka Loo Baahan Yahay
- Looxa Arduino (Uno, Nano, Mega, iwm.)
- Badhan riixid ah
- Fiilooyin isku xira
Hagaha Xidhiidhinta
Xidhiidhinta tusaalahan waa mid aad u fudud. Waxay isticmaashaa resistor-ka kor u jiidashada ee gudaha, marka looma baahna resistor dibadeed oo badhanka ah.
- Ku xir hal lug oo ka mid ah badhanka riixida pin-ka GND ee Arduino.
- Ku xir lugta kale ee badhanka riixida pin-ka dijitaalka ah ee 2 ee Arduino.
Sababtoo ah waxaan isticmaalnaa INPUT_PULLUP koodka, pin-ku wuxuu akhrin doonaa HIGH marka badhanka la riixin, iyo LOW marka la riixo, isagoo ku xira pin-ka dhulka. (fiidiyowga 08:29)
Fahamka Koodka
Koodkani wuxuu muujinayaa timer dhacdo ku salaysan oo fudud. Barnaamijku wuxuu si joogto ah u daabacaa qiimaha millis() hadda ee Kormeerka Taxanaha ah. Marka badhanka riixida la riixo oo la hayo, iyo Arduino uu shaqeynayay ugu yaraan 5 ilbiriqsi, waxay daabici doontaa "Take action" Kormeerka Taxanaha ah. Furaha ayaa ah in hubinta millis() aysan joojin daabacaadda joogtada ah ee waqtiga.
Aynu kala furfurno qaybaha koodka ee isticmaaluhu beddeli karo:
unsigned long event = 5000;// 5 ilbiriqsi
Kani waa doorsoome ugu muhiimsan ee la qaabeeyo. Wuxuu qeexayaa muddada "dhacdadaada" ee milisekonnada. Tusaalahan, waxaa loo dejiyay 5000, taas oo u dhiganta 5 ilbiriqsi. Si aad u beddesho dib u dhaca, si fudud wax ka beddel lambarkan. Tusaale ahaan, dejinta 10000 waxay ka dhigi doontaa ficilka inuu kiciyo 10 ilbiriqsi kadib. Waa lagama maarmaan in la isticmaalo nooca xogta unsigned long, sababtoo ah qiimaha millis() wuxuu kori karaa si aad u weyn oo ugu dambeyn wuxuu ka gudbi doonaa qiimaha ugu badan ee doorsoome caadi ah oo int ah, taasoo keenta qalad isbarbardhigga. (fiidiyowga 05:46)
pinMode(2,INPUT_PULLUP);
Sadarkan wuxuu qaabeeyaa pin-ka dijitaalka ah ee 2 sidii gelin waxaana uu kiciyaa resistor-kiisa kor u jiidashada ee gudaha. Tani waa tillaabo qaabaynta muhiim ah oo kuu ogolaaneysa inaad ku xirto badhan iyada oo aan la helin resistor dibadeed. Pin-ku wuxuu akhrin doonaa HIGH asal ahaan wuxuuna u tagi doonaa LOW marka badhanka la riixo, isagoo ku xira dhulka. Haddii aad rabto inaad isticmaasho pin ka duwan, beddel lambarka 2 halkan iyo sadarka digitalRead(2) gudaha loop-ka. (fiidiyowga 08:46)
Macquulka gudaha loop() waa mid toos ah. Wuxuu akhriyaa xaaladda badhanka. Haddii badhanka la riixo (pb == LOW), wuxuu markaa hubinayaa in waqtiga hadda (millis()) uu ka weyn yahay ama la mid yahay waqtigaaga event ee qeexan. Haddii labada shuruudoodba ay run yihiin, wuxuu daabacaa fariinta ficilka. Inta ka hartay loop-ka, kaas oo daabacaya waqtiga, wuxuu sii socdaa isagoon xannibin, isagoo muujinaya awoodda millis() ee ka badan delay().
Tusaalahan wuxuu hubinayaa waqtiga laga soo bilaabo marka Arduino uu bilaabmayo. Tusaalaha saddexaad ee taxanaha fiidiyowga ayaa ku dhisan kani isagoo duubaya waqtiga riixista badhanka koowaad iyo kicinta ficil kaliya haddii riixista labaad ay dhacdo ugu yaraan 5 ilbiriqsi kadib. Macquulkaas waxaa lagu daboolay Casharka 14/31-3: Arduino coding millis() tusaale 3 oo leh badhan riixid.
Muuujinta Mashruuca Tooska ah
Markaad soo geliso koodka oo aad furto Kormeerka Taxanaha ah (9600 baud), waxaad arki doontaa qulqul joogto ah oo tirooyin ah, oo matalaya milisekonnada tan iyo markii looxa la shiday. Haddii aad riixdo oo aad hayso badhanka riixida ka hor inta 5 ilbiriqsi aysan dhaafin, waxba ma dhici doonaan. Si kastaba ha ahaatee, haddii aad riixdo oo aad hayso badhanka ka dib calaamadda 5-ilbiriqsi, waxaad arki doontaa fariinta "Take action" oo lagu daabacay Kormeerka Taxanaha ah. Ficilku wuxuu sii daabici doonaa inta badhanka la hayo. Tani waxay muujinaysaa timer aan xannibin kaas oo u oggolaanaya koodka kale (daabacaadda) inuu si habsami leh u socdo. (fiidiyowga 10:52)
Mashruucyada la xiriira fiidiyowgan
Fiidiyowgan wuxuu qayb ka yahay taxane badan oo ku saabsan hawlgallada wakhtiga iyo khariidaynta ee Arduino. Baloog kale oo laga sameeyay isla ilahan asalka ah:
- Casharka 14/31-1: Arduino Millis (aan daahin) iyo hawlgallada map | SunFounder Robojax
- Casharka 14/31-3: Arduino coding millis() tusaale 3 oo leh badhan riixid
- Casharka 14/31-4: Arduino coding map() tusaale 1
- Casharka 14/31-5: Arduino coding map() tusaale 2
Cutubyada
- [00:00] Hordhac ku saabsan millis() iyo SunFounder Kit
- [01:19] Waa maxay millis() iyo sababta loo isticmaalo halkii delay()?
- [03:06] Tusaale ficil ah: daabacaadda qiimaha millis()
- [05:46] Abuurista dhacdo leh millis() iyo unsigned long
- [08:29] Ku xiridda iyo codeynta badhan riixid oo leh INPUT_PULLUP
- [10:52] Ku shubista tusaalaha dhacdada oo leh badhan riixid
- [12:14] Horudhac tusaalaha 3: ogaanshaha riixidda badhanka labaad
- [17:20] Hordhac ku saabsan hawlgalka map()
- [19:47] Codeynta iyo tusaalaynta hawlgalka map() oo leh LED
/*
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
Waad u baahan tahay
-
AmaazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amaazon
-
Amaazon
-
Amaazon
-
Amaazon
-
Qal
Kheyraadka & Tixraacyada
-
DibeddaPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Faylasha📁
Buugga Isticmaalaha
-
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