பாடம் 14/31-1: Arduino Millis (தாமதம் இல்லாமல்) மற்றும் map செயல்பாடுகள் | SunFounder Robojax
இந்த வழிகாட்டி Arduino millis() செயல்பாட்டை அறிமுகப்படுத்துகிறது, இது நேர அடிப்படையிலான திட்டங்களுக்கான அடிப்படை கருவியாகும், இது தொகுக்கப்படாத குறியீடு செயல்பாட்டை (non-blocking code execution) தேவைப்படுத்துகிறது. delay() போலல்லாமல், இது முழு நிரலையும் நிறுத்திவிடும், millis() பலகை தொடங்கியதிலிருந்து கழிந்த நேரத்தை கண்காணிக்கிறது, இதனால் உங்கள் Arduino பயனுள்ள முறையில் பல பணிகளை செய்ய முடியும். இந்த நுட்பத்தைப் பயன்படுத்தி நீங்கள் உருவாக்கலாம்:
- மற்ற குறியீடு இயங்கும்போது இயங்கும் தொகுக்கப்படாத LED ஒளிரிகள்.
- சென்சார்கள் அல்லது பொத்தான்களால் தூண்டப்படும் நேர கட்டுப்பாட்டு நிகழ்வுகள், எடுத்துக்காட்டாக, பொத்தானை அழுத்திய 5 வினாடிகளுக்குப் பிறகு அணையும் விளக்கு.
- வழக்கமான இடைவெளிகளில் சென்சார் மதிப்புகளை பதிவு செய்யும் எளிய தரவு பதிவு அமைப்புகள்.
- உறையாமல் உள்ளீடுகளுக்கு பதிலளிக்கும் பயனர் இடைமுக அமைப்புகள்.
millis() செயல்பாட்டைப் புரிந்துகொள்வது
millis() செயல்பாடு ஒரு உள்ளமைக்கப்பட்ட Arduino கட்டளை ஆகும், இது Arduino பலகை தற்போதைய நிரலை இயக்கத் தொடங்கியதிலிருந்து மில்லி விநாடிகளின் எண்ணிக்கையை வழங்குகிறது. இது மின்சாரம் இயக்கத்தில் பூஜ்ஜியத்தில் தொடங்கி ஒவ்வொரு மில்லி விநாடிக்கும் அதிகரிக்கிறது. உங்கள் குறியீட்டில் எந்த நேரத்திலும் இந்த செயல்பாட்டை அழைத்து தற்போதைய "இயக்க நேர" மதிப்பைப் பெறலாம். எடுத்துக்காட்டாக, 1 விநாடிக்குப் பிறகு, இது 1000 ஐ வழங்குகிறது; 5 விநாடிகளுக்குப் பிறகு, இது 5000 ஐ வழங்குகிறது. முக்கிய நன்மை என்னவென்றால், இது உங்கள் குறியீட்டை இடைநிறுத்தாது, எனவே மற்ற பணிகள் தொடர்ந்து இயங்கும்போது நேரத்தை சரிபார்க்கலாம்.
delay() ஐ ஏன் தவிர்க்க வேண்டும்?
delay() செயல்பாடு ஒரு நிரலை இடைநிறுத்துவதற்கான எளிய வழியாகும், ஆனால் இது ஒரு தொகுக்கும் செயல்பாடு (blocking function) ஆகும். நீங்கள் delay(5000) ஐ அழைக்கும்போது, Arduino 5 விநாடிகளுக்கு மற்ற எல்லா குறியீடுகளையும் செயல்படுத்துவதை நிறுத்துகிறது, இணைக்கப்பட்ட எந்த கூறுகளையும் உறைய வைக்கிறது. உள்ளீடுகளுக்கு பதிலளிக்க வேண்டிய அல்லது வெளியீடுகளை தொடர்ந்து புதுப்பிக்க வேண்டிய திட்டங்களுக்கு இது சிக்கலானது. millis() ஐப் பயன்படுத்துவது உங்கள் நிரலின் மற்ற பகுதிகளை நிறுத்தாமல் ஒரு குறிப்பிட்ட நேரம் கடந்துவிட்டதா என்பதை சரிபார்க்க அனுமதிக்கிறது, இது பல பணிகளுக்கு ஏற்றதாக அமைகிறது.
தேவையான வன்பொருள்
- Arduino பலகை (Uno, Mega, போன்றவை)
- நிரலாக்கம் மற்றும் மின்சாரத்திற்கான USB கேபிள்
வயரிங் வழிகாட்டி
இந்த எடுத்துக்காட்டுக்கு வெளிப்புற வயரிங் தேவையில்லை. Arduino குறியீட்டை பதிவேற்றவும், சீரியல் மானிட்டர் வெளியீட்டைப் பார்க்கவும் USB வழியாக உங்கள் கணினியுடன் மட்டுமே இணைக்கப்பட வேண்டும்.
குறியீடு விளக்கம்
இந்த முதல் எடுத்துக்காட்டு millis() எவ்வாறு செயல்படுகிறது என்பதற்கான எளிய நிரூபணம் ஆகும். குறியீடு சீரியல் மானிட்டரை துவக்கி, முடிவில்லாத சுழற்சியில் millis() மதிப்பை அச்சிடுகிறது.
void setup() {
Serial.begin(9600);//சீரியல் மானிட்டரை துவக்கு
Serial.println("Introduction to millis");
delay(2000);
}
void loop() {
Serial.println(millis());
}
setup() செயல்பாடு 9600 பாட் வேகத்தில் சீரியல் தொடர்பைத் தொடங்கி வரவேற்பு செய்தியை அச்சிடுகிறது. இங்குள்ள delay(2000) நிரூபணத்திற்காக மட்டுமே, millis() நிரல் இயங்கத் தொடங்கிய தருணத்திலிருந்து எண்ணத் தொடங்குகிறது என்பதைக் காட்டுகிறது. loop() செயல்பாடு தொடர்ந்து millis() இன் தற்போதைய மதிப்பை அச்சிடுகிறது. சீரியல் மானிட்டரைத் திறக்கும்போது, மில்லி விநாடிகளில் நேரம் வேகமாக அதிகரிப்பதைக் காண்பீர்கள். இது millis() ஒரு கவுண்டர் என்பதை விளக்குகிறது, இது ஒருபோதும் நிற்காது, உங்கள் நிரலுக்கு தொடர்ச்சியான நேர குறிப்பை வழங்குகிறது.
இது அடிப்படை கட்டுமானத் தொகுதி ஆகும். வீடியோவில், பயிற்றுவிப்பாளர் ஒரு குறிப்பிட்ட காலத்திற்குப் பிறகு செயல்களைத் தூண்டுவதற்கு இந்த மதிப்பை எவ்வாறு பயன்படுத்துவது என்பதை நிரூபிக்கிறார், எடுத்துக்காட்டாக, ஒரு குறிப்பிட்ட குறியீடு தொகுதியை இயக்குவதற்கு முன் 5000 மில்லி விநாடிகள் (5 விநாடிகள்) கடந்துவிட்டதா என்பதை சரிபார்ப்பது. இது தற்போதைய millis() மதிப்பை ஒரு மாறியில் சேமித்து, பின்னர் முக்கிய சுழற்சியில் ஒப்பிடுவதன் மூலம் செய்யப்படுகிறது.
map() செயல்பாட்டைப் பயன்படுத்தி சதவீத மதிப்புடன் LED ஐ இயக்குவது பாடம் 14/31-4: Arduino குறியீடு map() எடுத்துக்காட்டு 1 இல் உள்ளடக்கப்பட்டுள்ளது.
நேரடி திட்ட நிரூபணம்
வீடியோவில், பயிற்றுவிப்பாளர் இந்த குறியீட்டை பதிவேற்றி சீரியல் மானிட்டரைத் திறக்கிறார். ஆரம்ப 2 விநாடி தாமதத்திற்குப் பிறகு வெளியீடு தொடங்குவதை நீங்கள் காணலாம், இது 1999 க்கு அருகில் ஒரு மதிப்பைக் காட்டுகிறது. பின்னர் எண்கள் வேகமாக அதிகரிக்கின்றன, மில்லி விநாடிகளின் தொடர்ச்சியான எண்ணிக்கையை நிரூபிக்கின்றன. இந்த நேரடி காட்சி செயல்பாடு வேலை செய்கிறது என்பதை உறுதிப்படுத்துகிறது மற்றும் நேரம் எவ்வாறு கண்காணிக்கப்படுகிறது என்பதற்கான தெளிவான காட்சி புரிதலை வழங்குகிறது.
இந்த வீடியோவிலிருந்து தொடர்புடைய திட்டங்கள்
- பாடம் 14/31-2: Arduino குறியீடு millis() எடுத்துக்காட்டு 2 நிகழ்வுடன்
- பாடம் 14/31-3: Arduino குறியீடு millis() எடுத்துக்காட்டு 3 புஷ் பொத்தானுடன்
- பாடம் 14/31-4: Arduino குறியீடு map() எடுத்துக்காட்டு 1
- பாடம் 14/31-5: Arduino குறியீடு map() எடுத்துக்காட்டு 2
அத்தியாயங்கள்
- [00:00] millis() அறிமுகம்
- [01:19] millis() என்றால் என்ன, ஏன் பயன்படுத்த வேண்டும்
- [03:06] millis() இன் நடைமுறை நிரூபணம்
- [05:46] நேர கட்டுப்பாட்டு நிகழ்வைத் தூண்டுவதற்கு millis() ஐப் பயன்படுத்துதல்
- [08:29] புஷ் பொத்தானுடன் எடுத்துக்காட்டு
- [12:14] மேம்பட்ட புஷ் பொத்தான் நேர எடுத்துக்காட்டு
- [17:20] map() செயல்பாட்டின் அறிமுகம்
- [19:47] LED உடன் map() க்கான குறியீடு எடுத்துக்காட்டு
- [22:41] தனிப்பயன் map செயல்பாட்டை உருவாக்குதல்
/*
Lesson 14/31: Arduino coding millis() example 1
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/>.
*/
/*
* Example-1 of using millis() with Arduino
* Written by Ahmad Shamshiri on July 27, 2019
* in Ajax, Ontario, Canada
* Watch video instructio for millis() :https://youtu.be/u2HsiTS8niQ
*/
void setup() {
Serial.begin(9600);//initialize serial monitor
Serial.println("Introduction to millis");
delay(2000);
}
void loop() {
Serial.println(millis());
}// loop end
Common Course Links
Common Course Files
நீங்கள் தேவைப்படும் எண்ணங்கள்
-
அமேசான்SunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
அமேசான்
-
அமேசான்
-
அமேசான்
-
அமேசான்
வளங்கள் மற்றும் மேற்கோள்கள்
-
ஆவணங்கள்Documentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
வெளியுறுப்புPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
கோப்புகள்📁
ஆர்டினோ நூலகங்கள் (ஜிப்)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB