لومړی ۱۴/۳۱-۵: د Arduino کوډینګ map() بېلګه ۲
دا ټیوټوریل ښیي چې څنګه د Arduino map() فنکشن وکاروو ترڅو د LED روښانتیا د سلنې ارزښت (0–100٪) په کارولو سره کنټرول کړو، پرته له دې چې خام 0–255 حد وکاروو چې د analogWrite() لخوا اړین دی. دا یوه بنسټیزه تخنیک ده چې ستاسو کوډ ساده کوي او دا ډیر هوښیار کوي، ځکه چې تاسو کولی شئ د خپل سري بایټ ارزښتونو پرځای د سلنو په شرایطو کې فکر وکړئ.
دا مهارت د هر هغه پروژې لپاره اړین دی چیرې چې تاسو اړتیا لرئ د سینسر لوستل یا کنټرول سیګنالونه اندازه کړئ. د مثال په توګه، تاسو کولی شئ دا د دې لپاره وکاروئ:
- د LED روښانتیا یا د موټرو سرعت د پوټینشیومیټر لوستلو پر بنسټ کنټرول کړئ.
- د تودوخې سینسر محصول (د بیلګې په توګه، 0–1023) د سیلسیس یا فارنهایټ حد ته واړوئ.
- د جویسټیک انلاګ انپټ نقشه کړئ ترڅو د سرو موټرو موقعیت کنټرول کړئ.
- یو ساده کاروونکي انٹرفیس جوړ کړئ چیرې چې د سلنې ارزښت د وسیلې د بریښنا کچې ټاکلو لپاره کارول کیږي.
د دې درس په پای کې، تاسو به وکولی شئ پاک، ډیر ساتل شوی کوډ ولیکئ چې لوستل او تنظیم کول یې اسانه وي.
هارډویر/اجزاوې
دا پروژه لږترلږه اجزاوې کاروي، چې دا د پیل کونکو لپاره بشپړه مناسبه کوي. تاسو به اړتیا ولرئ:
- د Arduino بورډ (د بیلګې په توګه، Uno).
- یو LED.
- یو 220-ohm ریزسټر.
- جمپر تارونه.
- یو بریډبورډ (اختیاري مګر سپارښت شوی).
د تارونو لارښود
د دې پروژې لپاره تارونه ډیر ساده دي، لکه څنګه چې په ویډیو کې ښودل شوي (په ویډیو کې په 20:47). LED د Arduino د پن 3 سره د 220-ohm اوسني محدودونکي ریزسټر له لارې وصل دی.
د LED انوډ (اوږده پښه) د ریزسټر له لارې پن 3 سره وصل کړئ. د LED کیتوډ (لنډه پښه) د Arduino په ځمکنۍ (GND) پن سره وصل کړئ.
د کوډ تشریح
دا مثال د کاروونکي تعریف شوي فنکشن باندې تمرکز کوي چې د LED روښانتیا کنټرول ساده کوي. کوډ د pwmValue() په نوم د دودیز فنکشن شاوخوا جوړ شوی دی، کوم چې د کوډ هوښیار کولو کلید ده.
راځئ چې د کوډ د تنظیم وړ برخې مات کړو:
int LEDpin = 3; //د LED لپاره پن تعریف شوی
دا کرښه هغه Arduino پن تعریفوي چې LED ورسره وصل دی. تاسو کولی شئ د 3 شمیره ستاسو د Arduino بورډ په هر بل PWM وړ پن بدله کړئ.
د پروژې اصلي برخه دودیز فنکشن pwmValue() ده. دا فنکشن د سلنې ارزښت د انپټ په توګه اخلي او دا د 0–255 حد ته اړوي چې د analogWrite() لخوا کارول کیږي. دا هغه ځای دی چې د 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٪ روښانتیا
Serial.println( pwmValue(b) );//دا په سیریل مانیټر کې چاپ کړئ
analogWrite(LEDpin, pwmValue(b));// LED د 60٪ روښانتیا سره فعال کړئ
دلته، متغیر 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 کوډینګ millis() مثال 2 د پیښې سره
- درس 14/31-3: Arduino کوډینګ millis() مثال 3 د پش بټن سره
- درس 14/31-4: Arduino کوډینګ 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