- پی ڈبلیو ایم (ماڈلن کے ساتھ پلس) کیا ہے؟
- ایس ٹی ایم 32 میں پی ڈبلیو ایم
- ضروری اجزاء
- ایس ٹی ایم 32 کی پن کی تفصیلات
- سرکٹ ڈایاگرام اور رابطے
- پروگرامنگ STM32
پچھلے مضمون میں ہم نے STM32 کا استعمال کرتے ہوئے ADC کے تبادلوں کے بارے میں دیکھا ہے۔ اس ٹیوٹوریل میں ، ہم STM32 میں پی ڈبلیو ایم (پلس کی چوڑائی ماڈلن) کے بارے میں سیکھیں گے اور ہم PWM تکنیک کا استعمال کرتے ہوئے ایل ای ڈی کی چمک یا DC فین کی رفتار کو کیسے کنٹرول کرسکتے ہیں۔
ہم جانتے ہیں کہ سگنل کی دو اقسام ہیں: ینالاگ اور ڈیجیٹل۔ ینالاگ سگنلز میں (3V ، 1V… وغیرہ) جیسے وولٹیجز ہیں اور ڈیجیٹل سگنلز (1 'اور 0's) ہیں۔ سینسر آؤٹ پٹ ینالاگ سگنل کی ہوتے ہیں اور یہ ینالاگ سگنل ADC کا استعمال کرتے ہوئے ڈیجیٹل میں تبدیل ہوجاتے ہیں ، کیوں کہ مائکروقابو کرنے والے صرف ڈیجیٹل کو سمجھتے ہیں۔ ان اے ڈی سی اقدار پر کارروائی کے بعد ، ینالاگ ڈیوائسز کو چلانے کے ل again دوبارہ پیداوار کو ینالاگ شکل میں تبدیل کرنے کی ضرورت ہے۔ اس کے ل we ہم کچھ طریقے استعمال کرتے ہیں جیسے پی ڈبلیو ایم ، ڈیجیٹل ٹو اینالاگ (ڈی اے سی) کنورٹرز وغیرہ۔
پی ڈبلیو ایم (ماڈلن کے ساتھ پلس) کیا ہے؟
پی ڈبلیو ایم ڈیجیٹل ویلیو کا استعمال کرتے ہوئے ینالاگ ڈیوائسز کو کنٹرول کرنے کا ایک طریقہ ہے جیسے موٹر کی رفتار کو کنٹرول کرنا ، لیڈ کی چمک وغیرہ۔ ہم جانتے ہیں کہ اینالاگ سگنل پر موٹر اور لیڈ کام کرتا ہے۔ لیکن PWM خالص مطابق پیداوار فراہم نہیں کرتا ، PWM ینالاگ سگنل کی طرح لگتا ہے جو مختصر دالوں کے ذریعہ بنایا گیا ہے ، جو ڈیوٹی سائیکل کے ذریعہ فراہم کیا جاتا ہے۔
PWM کے ڈیوٹی سائیکل
وقت کا فیصد جس میں پی ڈبلیو ایم سگنل ہائی (وقت پر) رہتا ہے ، کو ڈیوٹی سائیکل کہا جاتا ہے۔ اگر سگنل ہمیشہ ہی رہتا ہے تو یہ 100٪ ڈیوٹی سائیکل میں ہوتا ہے اور اگر یہ ہمیشہ ہی بند رہتا ہے تو یہ 0٪ ڈیوٹی سائیکل ہے۔
ڈیوٹی سائیکل = ٹائم آن کریں / (ٹائم آن کریں + ٹرن آف ٹائم)
ایس ٹی ایم 32 میں پی ڈبلیو ایم
STM32F103C8 میں 15 پی ڈبلیو ایم پن اور 10 اے ڈی سی پن ہیں۔ یہاں 7 ٹائمر ہیں اور ہر PWM آؤٹ پٹ 4 ٹائمر سے منسلک چینل کے ذریعہ فراہم کیا جاتا ہے۔ اس میں 16 بٹ پی ڈبلیو ایم ریزولوشن (2 16) ہے ، یعنی کاؤنٹرز اور متغیرات 65535 تک بڑے ہوسکتے ہیں۔ 72 میگاہرٹز گھڑی کی شرح کے ساتھ ، پی ڈبلیو ایم آؤٹ پٹ میں زیادہ سے زیادہ ایک ملی سیکنڈ کی مدت ہوسکتی ہے۔
- تو 65535 کی قیمت ڈی سی فین کی ایل ای ڈی اور فل اسپیڈ کی مکمل روشن خیالی عطا کرتی ہے (100٪ ڈیوٹی سائیکل)
- اسی طرح 32767 ویلیو ڈی سی فین کی ایل ای ڈی اور ہالف اسپیڈ کی نصف روشن عطا کرتی ہے (50٪ ڈیوٹی سائیکل)
- اور 13107 کی قدر دیتا ہے (20٪) روشن اور (20٪) تیز (20٪ ڈیوٹی سائیکل)
اس ٹیوٹوریل میں ، ہم پی ڈبلیو ایم تکنیک کے ذریعہ ڈی سی فین کی ایل ای ڈی کی چمک اور اس کی رفتار کو مختلف کرنے کے لئے پوٹینومیومیٹر اور ایس ٹی ایم 32 کا استعمال کررہے ہیں۔ ADC ویلیو (0-4095) اور ترمیم شدہ متغیر (PWM ویلیو) ظاہر کرنے کے لئے ایک 16x2 LCD استعمال کیا جاتا ہے جو آؤٹ پٹ (0-65535) ہے۔
دوسرے مائکروکانٹرولر کے ساتھ یہاں پی ڈبلیو ایم کی چند مثالیں ہیں۔
- ایم پی ایل بی اور ایکس سی 8 کے ساتھ پی آئی سی مائکروکنٹرولر کا استعمال کرتے ہوئے پی ڈبلیو ایم تیار کرنا
- راسبیری پائی کے ساتھ امدادی موٹر کنٹرول
- پی ڈبلیو ایم کا استعمال کرتے ہوئے اردوینو بیسڈ ایل ای ڈی ڈمر
- پلنگ کی چوڑائی ماڈیولیشن (PWM) MSP430G2 کا استعمال کرتے ہوئے
یہاں پی ڈبلیو ایم سے متعلق تمام منصوبوں کو چیک کریں۔
ضروری اجزاء
- STM32F103C8
- DC پرستار
- ULN2003 موٹر ڈرائیور IC
- ایل ای ڈی (سرخ)
- LCD (16x2)
- پوٹینومیٹر
- بریڈ بورڈ
- بیٹری 9V
- جمپر تاروں
ڈی سی فین: یہاں استعمال ہونے والا ڈی سی فین پرانے پی سی کا بی ایل ڈی سی فین ہے.اس کو بیرونی رسد کی ضرورت ہے لہذا ہم 9V ڈی سی بیٹری استعمال کررہے ہیں۔
ULN2003 موٹر ڈرائیور آایسی: موٹر کو ایک سمت چلانے کے لئے استعمال کیا جاتا ہے کیونکہ موٹر غیر سمتاتی ہے اور پرستار کے لئے بیرونی طاقت بھی ضروری ہے۔ ULN2003 پر مبنی موٹر ڈرائیور سرکٹ کے بارے میں مزید معلومات حاصل کریں۔ ذیل میں ULN2003 کا تصویر ڈایاگرام ہے:
پن (IN1 سے IN7) ان پٹ ہیں اور (آؤٹ 1 سے OUT 7) اسی طرح کے آؤٹ پٹ پن ہیں۔ COM کو آؤٹ پٹ آلات کے لئے ضروری مثبت سورس وولٹیج دیا جاتا ہے۔
ایل ای ڈی: سرخ رنگ کی قیادت والی روشنی کا استعمال کیا جاتا ہے جو روشنی کی روشنی کو خارج کرتا ہے۔ کسی بھی رنگ کا استعمال کیا جا سکتا ہے۔
پوٹینومیٹر: دو پوٹینومیٹر استعمال کیے جاتے ہیں ایک اے ڈی سی کے مطابق ان پٹ کے لئے وولٹیج ڈیوائڈر کے لئے اور دوسرا لیڈ کی چمک کو کنٹرول کرنے کے لئے۔
ایس ٹی ایم 32 کی پن کی تفصیلات
جیسا کہ ہم دیکھ سکتے ہیں کہ پی ڈبلیو ایم پنوں کو لہر کی شکل میں اشارہ کیا گیا ہے (~) ، اس طرح کے 15 پن ہیں ، اے ڈی سی پنوں کو سبز رنگ میں نمائندگی کیا جاتا ہے ، 10 اے ڈی سی پن موجود ہیں جو ینالاگ آدانوں کے لئے استعمال ہوتے ہیں۔
سرکٹ ڈایاگرام اور رابطے
مختلف اجزاء کے ساتھ STM32 کے رابطوں کی وضاحت ذیل میں کی گئی ہے۔
ینالاگ ان پٹ (ADC) کے ساتھ STM32
سرکٹ کے بائیں جانب موجود پوٹینومیٹر وولٹیج ریگولیٹر کے طور پر استعمال ہوتا ہے جو 3.3V پن سے وولٹیج کو باقاعدہ کرتا ہے۔ پوٹینومیٹر یعنی سینٹر پن سے پوٹینومیٹر کا آؤٹ پٹ STM32 کے ADC پن (PA4) سے منسلک ہے۔
STM32 ایل ای ڈی کے ساتھ
ایس ٹی ایم 32 پی ڈبلیو ایم آؤٹ پٹ پن (پی اے 9) سیریز ریزٹر اور کیپسیٹر کے ذریعہ ایل ای ڈی کے مثبت پن سے منسلک ہے۔
ریزٹر اور کیپسیٹر کے ساتھ ایل ای ڈی
سیریز میں ایک ریزسٹر اور متوازی طور پر ایک کیپسیٹر PWM آؤٹ پٹ سے صحیح ینالاگ لہر پیدا کرنے کے لئے ایل ای ڈی کے ساتھ جڑے ہوئے ہیں کیونکہ PWM پن سے براہ راست پیدا ہونے پر ینالاگ آؤٹ پٹ خالص نہیں ہے۔
STM32 ULN2003 کے ساتھ اور فین کے ساتھ ULN2003
STM32 PWM آؤٹ پٹ پن (PA8) ULN2003 IC کے ان پٹ پن (IN1) سے منسلک ہے اور ULN2003 کے متعلقہ آؤٹ پٹ پن (OUT1) ڈی سی فین کے منفی تار سے جڑا ہوا ہے۔
ڈی سی فین کا مثبت پن ULN2003 IC کے COM پن سے منسلک ہے اور بیرونی بیٹری (9V DC) بھی ULN2003 IC کے اسی COM پن سے منسلک ہے۔ ULN2003 کا GND پن STM32 کے GND پن سے منسلک ہے اور بیٹری منفی اسی GND پن سے منسلک ہے۔
LCD کے ساتھ STM32 (16x2)
ایل سی ڈی پن نمبر |
LCD پن کا نام |
STM32 پن کا نام |
1 |
گراؤنڈ (Gnd) |
گراؤنڈ (G) |
2 |
وی سی سی |
5V |
3 |
VEE |
سینٹر آف پوٹینومیٹر سے پن |
4 |
رجسٹر سلیکٹ (آر ایس) |
پی بی 11 |
5 |
پڑھیں / لکھیں (RW) |
گراؤنڈ (G) |
6 |
(EN) کو فعال کریں |
پی بی 10 |
7 |
ڈیٹا بٹ 0 (DB0) |
کوئی کنکشن نہیں (NC) |
8 |
ڈیٹا بٹ 1 (DB1) |
کوئی کنکشن نہیں (NC) |
9 |
ڈیٹا بٹ 2 (DB2) |
کوئی کنکشن نہیں (NC) |
10 |
ڈیٹا بٹ 3 (DB3) |
کوئی کنکشن نہیں (NC) |
11 |
ڈیٹا بٹ 4 (DB4) |
پی بی 0 |
12 |
ڈیٹا بٹ 5 (DB5) |
پی بی 1 |
13 |
ڈیٹا بٹ 6 (DB6) |
پی سی 13 |
14 |
ڈیٹا بٹ 7 (DB7) |
پی سی 14 |
15 |
ایل ای ڈی مثبت |
5V |
16 |
ایل ای ڈی منفی |
گراؤنڈ (G) |
LCD ڈسپلے کے برعکس کو کنٹرول کرنے کے لئے دائیں جانب ایک پوٹینومیٹر استعمال کیا جاتا ہے۔ مذکورہ بالا جدول LCD اور STM32 کے درمیان تعلق کو ظاہر کرتا ہے۔
پروگرامنگ STM32
پچھلے ٹیوٹوریل کی طرح ، ہم نے بھی FTDI پروگرامر کا استعمال کیے بغیر USB پورٹ کے ذریعے Ardino IDE کے ساتھ STM32F103C8 کا پروگرام بنایا۔ Ardino IDE کے ساتھ پروگرامنگ STM32 کے بارے میں جاننے کے لئے لنک کی پیروی کریں۔ ہم پروگرامنگ آگے بڑھا سکتے ہیں جیسے آرڈینو۔ مکمل کوڈ آخر میں دیا گیا ہے۔
اس کوڈنگ میں ہم اے ڈی سی پن (PA4) سے ان پٹ ینالاگ ویلیو لینے جا رہے ہیں جو بائیں پوٹینومیٹر کے سینٹر پن سے جڑا ہوا ہے اور پھر ینالاگ ویلیو (0-3.3V) کو ڈیجیٹل یا انٹیجر فارمیٹ (0-4095) میں تبدیل کرتا ہے۔ یہ ڈیجیٹل قدر مزید PWM آؤٹ پٹ کے بطور فراہم کی جاتی ہے تاکہ ایل ای ڈی کی چمک اور DC پرستار کی رفتار کو کنٹرول کیا جاسکے۔ اے ڈی سی اور میپڈ ویلیو (PWM آؤٹ پٹ ویلیو) کو ظاہر کرنے کے لئے ایک 16x2 LCD استعمال کیا جاتا ہے۔
پہلے ہمیں LCD ہیڈر فائل کو شامل کرنے ، LCD پنوں کا اعلان کرنے اور نیچے کوڈ کا استعمال کرکے ان کی ابتدا کرنے کی ضرورت ہے۔ یہاں STM32 کے ساتھ LCD انٹرفیس کرنے کے بارے میں مزید معلومات حاصل کریں۔
# شامل کریں
اگلا STM32 کے پن کا استعمال کرتے ہوئے پن کے ناموں کا اعلان اور وضاحت کریں
const int analoginput = PA4؛ // پوٹینومیٹر کانٹ انٹ لیڈڈ سے ان پٹ = PA9؛ // ایل ای ڈی آؤٹ پٹ کونٹ INT فین = PA8؛ // پرستار آؤٹ پٹ
اب سیٹ اپ () کے اندر ، ہمیں کچھ پیغامات ڈسپلے کرنے اور کچھ سیکنڈ کے بعد ان کو صاف کرنے کی ضرورت ہے اور انپٹ پن اور پی ڈبلیو ایم آؤٹ پٹ کو متعین کرنا ہوگا۔
lcd.begin (16،2)؛ // LCD تیار کرنا lcd.clear ()؛ // کلیئرس LCD lcd.setCursor (0،0)؛ // قطار 0 اور کالم 0 lcd.print ("سرکٹ ڈائجسٹ") پر کرسر سیٹ کریں ۔ // دکھاتا ہے سرکٹ ڈائجسٹ lcd.setCursor (0،1)؛ // کالم 0 اور قطار 1 lcd.print ("PWM STM32 استعمال کررہے ہیں") پر کرسر سیٹ کرتا ہے ۔ // STW32 تاخیر (2000) کا استعمال کرتے ہوئے PWM دکھاتا ہے ؛ // تاخیر کا وقت lcd.clear ()؛ // ایل سی ڈی پن موڈ (اینالاگ ان پٹ ، ان پٹ) کو صاف کرتا ہے۔ // سیٹ پن موڈ ینالاگ ان پٹ بطور INPUT پن موڈ (قیادت ، PWM)؛ // سیٹ پن موڈ PWM آؤٹ پٹ پنموڈ (فین ، پی ڈبلیو ایم) کی حیثیت سے قیادت کرتا ہے ۔ // PWM آؤٹ پٹ کے بطور پن موڈ فین سیٹ کریں
ینالاگ ان پٹ پن (PA4) INPUT بذریعہ پن موڈ ( اینالاگ ان پٹ ، INPUT) کے طور پر مقرر کیا گیا ہے ، ایل ای ڈی پن کو PWM آؤٹ پٹ کے ذریعہ مقرر کیا گیا ہے پن موڈ (قیادت میں ، PWM) اور پن پن کو PWM آؤٹ پٹ کے ذریعہ مقرر کیا گیا ہے پن پن (فین ، پی ڈبلیو ایم) کے ذریعے ۔ یہاں پی ڈبلیو ایم آؤٹ پٹ پن ایل ای ڈی (پی اے 9) اور فین (پی اے 8) سے منسلک ہیں۔
اگلی صفر لوپ () فنکشن میں ، ہم اے ڈی سی پن (PA4) سے ینالاگ سگنل پڑھتے ہیں اور اسے ایک انٹیجر متغیر میں اسٹور کرتے ہیں جو اینٹیول وولٹیج کو ڈیجیٹل انٹیجر ویلیوز (0-4095) میں کوڈ انٹ ویلیوڈسی = اینالاگ ریڈ (اینالاگ ان پٹ) کا استعمال کرکے تبدیل کرتا ہے۔)؛
یہاں نوٹ کرنے والی اہم بات یہ ہے کہ پی ڈبلیو ایم پنوں ہیں جو ایس ٹی ایم 32 کے چینلز میں 16 بٹ ریزولوشن (0-65535) ہے لہذا ہمیں نقشہ بنانے کی ضرورت ہے جیسے نقشہ کی تقریب کا استعمال کرتے ہوئے ینالاگ قدروں کے ساتھ نیچے کی طرح
INT نتیجہ = نقشہ (ویلیوڈ سی ، 0 ، 4095 ، 0 ، 65535)۔
اگر نقشہ سازی کا استعمال نہیں کیا جاتا ہے تو ہم پوٹینومیٹر کی مختلف رفتار کے ذریعہ پنکھے کی پوری رفتار یا ایل ای ڈی کی پوری چمک نہیں پائیں گے۔
پھر ہم پی ڈبلیو ایم رائٹ (فین ، نتیجہ ) افعال کا استعمال کرکے پرستار کے لئے پی ڈبلیو ایم رائٹ (قیادت ، نتیجہ) اور پی ڈبلیو ایم آؤٹ پٹ کو استعمال کرکے ایل ای ڈی کو PWM آؤٹ پٹ لکھتے ہیں۔
آخر کار ہم ینالاگ ان پٹ ویلیو (اے ڈی سی ویلیو) اور آؤٹ پٹ ویلیوز (پی ڈبلیو ایم ویلیوز) کو ایل سی ڈی ڈسپلے پر درج ذیل کمانڈز کا استعمال کرکے ڈسپلے کرتے ہیں۔
lcd.setCursor (0،0)؛ // قطار 0 اور کالم 0 lcd.print ("ADC value =") پر کرسر سیٹ کرتا ہے ۔ // الفاظ "" lcd.print (valueadc) پرنٹ کرتا ہے ۔ // ڈسپلے ویلیوڈک lcd.setCursor (0،1)؛ // کالم 0 اور قطار 1 lcd.print ("آؤٹ پٹ =") پر کرسر سیٹ کریں ؛ // " lcd.print (نتیجہ) میں الفاظ پرنٹ کرتا ہے ۔ // قیمت کے نتائج دکھاتا ہے
ایک مظاہرے ویڈیو کے ساتھ مکمل کوڈ ذیل میں دیا گیا ہے۔