سبق 14/31-4: آرڈوینو کوڈنگ map() مثال 1
یہ سبق آرڈوینو پروگرامنگ پر ایک سیریز کا حصہ ہے اور map() فنکشن کے عملی استعمال پر مرکوز ہے۔ اس سبق میں، آپ سیکھیں گے کہ فیصد ویلیو (0–100) کو PWM (پلس وڈتھ ماڈیولیشن) ویلیو (0–255) میں کیسے تبدیل کیا جائے تاکہ LED کی چمک کو کنٹرول کیا جا سکے۔ دستی طور پر یہ حساب کرنے کے بجائے کہ 60% برابر ہے 153 کے، map() فنکشن آپ کے لیے لکیری تبدیلی سنبھالتا ہے، جس سے آپ کا کوڈ صاف اور زیادہ بدیہی بن جاتا ہے۔
یہ تکنیک بہت سی حقیقی دنیا کی ایپلیکیشنز کے لیے ضروری ہے جہاں آپ کو سینسر ریڈنگز یا صارف کے ان پٹ کو مختلف رینجز میں ترجمہ کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، آپ اسے استعمال کر سکتے ہیں:
- پوٹینشیومیٹر ریڈنگ کی بنیاد پر DC موٹر کی رفتار کو کنٹرول کرنے کے لیے۔
- درجہ حرارت سینسر کی خام ویلیو کو 0-100% پیمانے پر ظاہر کرنے کے لیے۔
- جوئسٹک کوآرڈینیٹس کو سروو موٹر زاویوں میں نقشہ بنانے کے لیے۔
- ایمبیئنٹ لائٹ سینسر کی بنیاد پر LED کی چمک کو ایڈجسٹ کرنے کے لیے۔
- 0-5V اینالاگ ریڈنگ کو 0-1023 ڈیجیٹل ویلیو میں یا اس کے برعکس تبدیل کرنے کے لیے۔
ہارڈویئر/اجزاء
اس پروجیکٹ کے ساتھ آگے بڑھنے کے لیے، آپ کو درج ذیل اجزاء کی ضرورت ہوگی:
- آرڈوینو بورڈ (Uno، Nano، وغیرہ)
- ایک LED
- ایک 220-اوہم ریزسٹر
- جمپر تار
- ایک بریڈ بورڈ (اختیاری، لیکن تجویز کردہ)
وائرنگ گائیڈ
ویڈیو میں، انسٹرکٹر LED فیڈنگ پر پچھلے سبق سے وائرنگ سیٹ اپ کا استعمال کرتے ہوئے پروجیکٹ کا مظاہرہ کرتا ہے۔ سرکٹ سیدھا ہے: LED کے اینوڈ (لمبی ٹانگ) کو 220-اوہم ریزسٹر سے جوڑیں، اور اس ریزسٹر کے دوسرے سرے کو آرڈوینو کے ڈیجیٹل پن 3 سے جوڑیں۔ LED کے کیتھوڈ (چھوٹی ٹانگ) کو براہ راست آرڈوینو کے گراؤنڈ (GND) پن سے جوڑیں۔
کوڈ کی وضاحت
اس مثال کا کوڈ بہت مختصر ہے، جس کی بنیادی منطق setup() فنکشن میں موجود ہے۔ آئیے صارف کے قابل ترتیب حصوں کو توڑتے ہیں۔
int LEDpin = 3; //LED کے لیے پن کی وضاحت
یہ لائن آرڈوینو پن کی وضاحت کرتی ہے جس سے آپ کی LED منسلک ہے۔ اس مثال میں، یہ پن 3 پر سیٹ ہے، جو PWM کے قابل پن ہے، اینالاگ آؤٹ پٹ کے لیے ضروری ہے۔ اگر آپ اپنی LED کو مختلف PWM پن سے جوڑتے ہیں تو آپ یہ نمبر تبدیل کر سکتے ہیں۔
int b=8;//60% چمک
یہ کلیدی متغیر ہے جسے آپ مختلف چمک کی سطحوں کو جانچنے کے لیے تبدیل کریں گے۔ یہ مطلوبہ چمک کو فیصد کے طور پر ظاہر کرتا ہے۔ کوڈ میں تبصرہ کہتا ہے "60%"، لیکن ویڈیو میں مظاہرے کے مقاصد کے لیے ویلیو 8 پر سیٹ ہے۔ آپ اسے 0 اور 100 کے درمیان کسی بھی عدد میں تبدیل کر سکتے ہیں۔ مثال کے طور پر، b = 60 سیٹ کرنا 60% چمک کی سطح کی نمائندگی کرے گا۔
int brightness = map(b, 0, 100, 0,255);
یہ سبق کا مرکز ہے۔ map() فنکشن آپ کی فیصد ویلیو (b) لیتا ہے اور اسے اس کی اصل رینج (0 سے 100) سے نئی ہدف رینج (0 سے 255) میں تبدیل کرتا ہے۔ نتیجہ brightness متغیر میں محفوظ ہوتا ہے، جو پھر LED پن پر اینالاگ ویلیو لکھنے کے لیے استعمال ہوتا ہے۔
analogWrite(LEDpin, brightness);// LED کو 60% چمک کے ساتھ آن کریں
آخر میں، یہ لائن نقشہ شدہ ویلیو کو analogWrite() کا استعمال کرتے ہوئے LED پن پر بھیجتی ہے۔ یہ LED کے ڈیوٹی سائیکل کو سیٹ کرتا ہے، مؤثر طریقے سے اس کی چمک کو کنٹرول کرتا ہے۔ اس طریقہ کار کی خوبصورتی یہ ہے کہ آپ کو صرف b متغیر کو تبدیل کرنے کی ضرورت ہے تاکہ LED کو کنٹرول کیا جا سکے، اور map() فنکشن تمام ضروری حسابات سنبھالتا ہے۔
لائیو پروجیکٹ/مظاہرہ
ویڈیو میں، انسٹرکٹر کوڈ اپ لوڈ کرتا ہے اور b متغیر کو تبدیل کرنے کے اثر کا مظاہرہ کرتا ہے۔ جب b کو 8 پر سیٹ کیا جاتا ہے، سیریل مانیٹر نقشہ شدہ ویلیو 20 پرنٹ کرتا ہے، اور LED واضح طور پر مدھم ہوتی ہے۔ b کو 90 میں تبدیل کرنے سے نقشہ شدہ ویلیو 229 ہوتی ہے، جس سے LED بہت زیادہ روشن ہوتی ہے۔ b کو 100 پر سیٹ کرنے سے 255 نقشہ ہوتا ہے، جو مکمل چمک ہے۔ یہ عملی مظاہرہ واضح طور پر دکھاتا ہے کہ کس طرح map() فنکشن صارف دوست فیصد ویلیوز کے ساتھ اینالاگ آؤٹ پٹس کو کنٹرول کرنے کے عمل کو آسان بناتا ہے۔
اس ویڈیو سے متعلقہ پروجیکٹس
- سبق 14/31-1: آرڈوینو ملیس (بغیر تاخیر) اور map فنکشنز | سن فاؤنڈر روبوجیکس
- سبق 14/31-2: آرڈوینو کوڈنگ millis() مثال 2 ایونٹ کے ساتھ
- سبق 14/31-3: آرڈوینو کوڈنگ millis() مثال 3 پش بٹن کے ساتھ
- سبق 14/31-5: آرڈوینو کوڈنگ map() مثال 2
ابواب
- [00:00] روبوجیکس کے ذریعہ آرڈوینو کورس کا تعارف
- [01:19] millis() کیا ہے اور اسے کیوں استعمال کریں
- [05:46] مثال 1: وقت والے ایونٹ کے لیے millis() کا استعمال
- [08:29] مثال 2: پش بٹن کے ساتھ millis() کا استعمال
- [12:14] مثال 3: تاخیر کے بعد دوسرے بٹن پریس کا پتہ لگانا
- [17:20] map() فنکشن کا تعارف
- [19:47] map() مثال کے لیے کوڈ واک تھرو
- [20:41] map() فنکشن کا لائیو مظاہرہ
/*
Lesson 14/31: Arduino coding map( ) 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/>.
*/
int LEDpin = 3; //defind pin for LED
void setup() {
Serial.begin(9600);//initialize serial monitor with 9600 baud
pinMode(LEDpin, OUTPUT);//set pin as output
int b=8;//60% brightness
int brightness = map(b, 0, 100, 0,255);
Serial.println(brightness);//print it on serial monitor
analogWrite(LEDpin, brightness);// turn the LED on with 60% brightness
}
void loop() {
}
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزون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 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