کوډ ولټوئ

لومړی ۱۴/۳۱-۵: د Arduino کوډینګ map() بېلګه ۲

لومړی ۱۴/۳۱-۵: د 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).

د دې ویډیو څخه اړوند پروژې

فصلونه

  • [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] د نقشه کولو اداره کولو لپاره دودیز فنکشن جوړول

انځورونه

Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
920-Lesson 14/31-5: Arduino coding map() example 2
ژبه: C++
/*
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
 

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

فایلونه📁

د کارونکي لارښود