பாடம் 14/31-5: Arduino குறியீட்டு map() எடுத்துக்காட்டு 2
இந்த டுடோரியல், Arduino இன் map() செயல்பாட்டைப் பயன்படுத்தி, analogWrite() தேவைப்படும் மூல 0–255 வரம்பிற்குப் பதிலாக சதவீத மதிப்பை (0–100%) பயன்படுத்தி LED இன் பிரகாசத்தைக் கட்டுப்படுத்துவது எப்படி என்பதை நிரூபிக்கிறது. இது ஒரு அடிப்படை நுட்பமாகும், இது உங்கள் குறியீட்டை எளிதாக்குகிறது மற்றும் தன்னிச்சையான பைட் மதிப்புகளைக் காட்டிலும் சதவீதங்களில் சிந்திக்க முடியும் என்பதால் இது மிகவும் உள்ளுணர்வுடன் செயல்பட வைக்கிறது.
சென்சார் அளவீடுகளை அளவிட அல்லது கட்டுப்பாட்டு சிக்னல்களை மாற்ற வேண்டிய எந்தத் திட்டத்திற்கும் இந்தத் திறன் அவசியம். எடுத்துக்காட்டாக, இதைப் பயன்படுத்தலாம்:
- பொட்டென்டியோமீட்டரின் வாசிப்பின் அடிப்படையில் LED இன் பிரகாசம் அல்லது மோட்டாரின் வேகத்தைக் கட்டுப்படுத்த.
- வெப்பநிலை சென்சாரின் வெளியீட்டை (எ.கா., 0–1023) செல்சியஸ் அல்லது பாரன்ஹீட் வரம்பிற்கு மாற்ற.
- செர்வோ மோட்டாரின் நிலையைக் கட்டுப்படுத்த ஜாய்ஸ்டிக்கின் அனலாக் உள்ளீட்டை வரைபடமாக்க.
- சதவீத மதிப்பு சாதனத்தின் சக்தி அளவை அமைக்கப் பயன்படும் எளிய பயனர் இடைமுகத்தை உருவாக்க.
இந்தப் பாடத்தின் முடிவில், படிக்கவும் சரிசெய்யவும் எளிதான, தூய்மையான மற்றும் அதிக பராமரிக்கக்கூடிய குறியீட்டை எழுத முடியும்.
வன்பொருள்/கூறுகள்
இந்தத் திட்டம் குறைந்தபட்ச கூறுகளைப் பயன்படுத்துகிறது, இது தொடக்கநிலையாளர்களுக்கு ஏற்றது. உங்களுக்கு இது தேவைப்படும்:
- ஒரு Arduino போர்டு (எ.கா., Uno).
- ஒரு LED.
- 220-ஓம் மின்தடை.
- ஜம்பர் கம்பிகள்.
- ஒரு பிரெட்போர்டு (விருப்பம் ஆனால் பரிந்துரைக்கப்படுகிறது).
வயரிங் வழிகாட்டி
இந்தத் திட்டத்திற்கான வயரிங் மிகவும் எளிது, வீடியோவில் (வீடியோவில் 20:47 இல்) நிரூபிக்கப்பட்டுள்ளது. LED ஆனது 220-ஓம் மின்னோட்ட-கட்டுப்படுத்தும் மின்தடை வழியாக Arduino இன் பின் 3 உடன் இணைக்கப்பட்டுள்ளது.
LED இன் அனோடை (நீண்ட கால்) மின்தடை வழியாக பின் 3 உடன் இணைக்கவும். LED இன் கேத்தோடை (குறுகிய கால்) Arduino இன் தரை (GND) பின்னுடன் இணைக்கவும்.
குறியீடு விளக்கம்
இந்த எடுத்துக்காட்டு, LED இன் பிரகாசத்தைக் கட்டுப்படுத்தும் பயனர்-வரையறுக்கப்பட்ட செயல்பாட்டில் கவனம் செலுத்துகிறது. குறியீடு pwmValue() எனப்படும் தனிப்பயன் செயல்பாட்டைச் சுற்றி கட்டமைக்கப்பட்டுள்ளது, இது குறியீட்டை உள்ளுணர்வுடன் செயல்பட வைப்பதற்கான முக்கியமாகும்.
குறியீட்டின் உள்ளமைக்கக்கூடிய பகுதிகளைப் பிரிப்போம்:
int LEDpin = 3; //defind pin for LED
இந்த வரி LED இணைக்கப்பட்ட Arduino பின்னை வரையறுக்கிறது. உங்கள் Arduino போர்டில் உள்ள வேறு எந்த PWM-திறன் கொண்ட பின்னுக்கும் 3 என்ற எண்ணை மாற்றலாம்.
திட்டத்தின் மையமானது தனிப்பயன் செயல்பாடு pwmValue() ஆகும். இந்த செயல்பாடு அதன் உள்ளீடாக ஒரு சதவீத மதிப்பை எடுத்து, analogWrite() பயன்படுத்தும் 0–255 வரம்பிற்கு மாற்றுகிறது. இங்குதான் map() செயல்பாடு அதன் மந்திரத்தைச் செய்கிறது.
int pwmValue(int percent)
{
if(percent >=0 && percent <=100)
{
return map(percent, 0,100, 0,255);
}else
{
return 0;
}
}
இந்த செயல்பாட்டைப் பயன்படுத்த, உங்கள் விரும்பிய பிரகாச சதவீதத்துடன் அதை அழைக்கவும். செயல்பாடு analogWrite() க்கான சரியான மதிப்பைத் திருப்பித் தரும். எடுத்துக்காட்டாக, pwmValue(60) 153 ஐத் திருப்பித் தரும், இது 255 இன் 60% ஆகும். செயல்பாடு உள்ளீட்டு சதவீதம் 0 மற்றும் 100 க்கு இடையில் இருப்பதை உறுதிசெய்ய ஒரு பாதுகாப்பு சரிபார்ப்பையும் உள்ளடக்கியது, இந்த வரம்பிற்கு வெளியே இருந்தால் 0 ஐத் திருப்பித் தரும்.
setup() செயல்பாட்டில், இது எவ்வாறு பயன்படுத்தப்படுகிறது என்பதை நீங்கள் காணலாம்:
int b=5;//60% brightness
Serial.println( pwmValue(b) );//print it on serial monitor
analogWrite(LEDpin, pwmValue(b));// turn the LED on with 60% brightness
இங்கே, b மாறி உங்கள் விரும்பிய பிரகாச சதவீதத்திற்கு அமைக்கப்பட்டுள்ளது. pwmValue(b) செயல்பாடு பின்னர் வரைபட மதிப்பை சீரியல் மானிட்டரில் அச்சிடவும் LED இன் பிரகாசத்தை அமைக்கவும் பயன்படுத்தப்படுகிறது. LED இன் பிரகாசத்தை மாற்ற, நீங்கள் b இன் மதிப்பை மட்டுமே மாற்ற வேண்டும். map() செயல்பாடு உங்களுக்குத் தேவையான அனைத்து கணக்கீடுகளையும் கையாளுகிறது.
நேரடி திட்டம்/நிரூபணம்
வீடியோவில், வழங்குநர் b மாறியின் மதிப்பை மாற்றி Arduino க்கு குறியீட்டை பதிவேற்றுவதன் மூலம் திட்டத்தை நிரூபிக்கிறார். b 60 ஆக அமைக்கப்படும்போது, குறியீடு அதை 153 ஆக வரைபடமாக்குகிறது மற்றும் LED 60% பிரகாசத்தில் ஒளிரும். b ஐ 90 ஆக மாற்றுவது 229 ஆக வரைபடமாக்குகிறது, இது LED ஐ குறிப்பிடத்தக்க வகையில் பிரகாசமாக்குகிறது. அதை 100 ஆக அமைப்பது 255 ஆக வரைபடமாக்குகிறது, இது அதிகபட்ச பிரகாசம். map() செயல்பாடு உள்ளுணர்வு சதவீத மதிப்பைப் பயன்படுத்தி LED ஐக் கட்டுப்படுத்த அனுமதிக்கிறது என்பதை நிரூபணம் தெளிவாகக் காட்டுகிறது, அதே நேரத்தில் சீரியல் மானிட்டர் பின்னுக்கு அனுப்பப்படும் சரியான 0–255 மதிப்பை உறுதிப்படுத்துகிறது (வீடியோவில் 21:29 இல்).
இந்த வீடியோவிலிருந்து தொடர்புடைய திட்டங்கள்
- பாடம் 14/31-1: Arduino Millis (தாமதம் இல்லை) மற்றும் map செயல்பாடுகள் | SunFounder Robojax
- பாடம் 14/31-2: Arduino coding millis() எடுத்துக்காட்டு 2 நிகழ்வுடன்
- பாடம் 14/31-3: Arduino coding millis() எடுத்துக்காட்டு 3 புஷ் பட்டனுடன்
- பாடம் 14/31-4: Arduino coding map() எடுத்துக்காட்டு 1
அத்தியாயங்கள்
- [00:00] Millis மற்றும் map செயல்பாடுகளுக்கான அறிமுகம்
- [01:19] Millis என்றால் என்ன, ஏன் அதைப் பயன்படுத்த வேண்டும்
- [05:46] செயல்பட நிகழ்வுடன் Millis ஐப் பயன்படுத்துதல்
- [08:35] Millis எடுத்துக்காட்டு 2 புஷ் பட்டனுடன்
- [12:14] Millis எடுத்துக்காட்டு 3 இரண்டு பட்டன் அழுத்தங்களைச் சரிபார்த்தல்
- [17:20] map() செயல்பாட்டிற்கான அறிமுகம்
- [19:47] சதவீதத்தை LED பிரகாசத்திற்கு வரைபடமாக்குவதற்கான குறியீடு எடுத்துக்காட்டு
- [20:47] map() செயல்பாட்டின் நேரடி நிரூபணம்
- [22:41] வரைபடமாக்கலைக் கையாள தனிப்பயன் செயல்பாட்டை உருவாக்குதல்
/*
Lesson 14/31-5: Arduino coding map( ) example-2
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/>.
*/
int LEDpin = 3; //defind pin for LED
void setup() {
Serial.begin(9600);//initialzie serial monitor with 9600 baud
pinMode(LEDpin, OUTPUT);//set pin as output
int b=5;//60% brightness
Serial.println( pwmValue(b) );//print it on serial monitor
analogWrite(LEDpin, pwmValue(b));// turn the LED on with 60% brightness
}
void loop() {
}
/*
* pwmValue(int percent)
* @param precent is value between 0 to 100
* @return it returns the mapped value from 0 to 255
* written by Ahmad Shamshiri on Dec 9, 2022
*
*/
int pwmValue(int percent)
{
if(percent >=0 && percent <=100)
{
return map(percent, 0,100, 0,255);
}else
{
return 0;
}
} //pwmValue end
நீங்கள் தேவைப்படும் எண்ணங்கள்
-
அமேசான்SunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
அமேசான்
-
அமேசான்
-
அமேசான்
-
அமேசான்
-
மற்றவை
வளங்கள் மற்றும் மேற்கோள்கள்
-
வெளியுறுப்புPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
கோப்புகள்📁
பயனர் கையேடு
-
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