- ضروری سامان
- سرکٹ ڈایاگرام اور کنکشن
- پروگرامنگ ایس ٹی ایم 32 ایل ڈی سی کیلئے اردوینو استعمال کرتے ہوئے
- پروگرام کو STM32F103C8T6 پر اپ لوڈ کرنا
کسی بھی مائکرو کنٹرولر منصوبے کے ل. ، ڈسپلے یونٹ کو اس کے ساتھ مداخلت کرنا اس منصوبے کو بہت آسان اور صارف کے ساتھ بات چیت کرنے کی اپیل کرتا ہے۔ مائکروکنٹرولرز کے لئے عام طور پر استعمال شدہ ڈسپلے یونٹ 16 × 2 الفا عددی ڈسپلے ہے۔ اس قسم کی ڈسپلے نہ صرف صارف کو اہم معلومات ظاہر کرنے کے لئے کارآمد ہیں بلکہ منصوبے کے ابتدائی ترقیاتی مرحلے کے دوران ڈیبگنگ ٹول کے طور پر بھی کام کرسکتی ہیں۔ تو ، اس ٹیوٹوریل میں ہم سیکھیں گے کہ ہم STM32F103C8T6 STM32 ڈویلپمنٹ بورڈ کے ساتھ 16 × 2 LCD ڈسپلے کو کس طرح انٹرفیس کرسکتے ہیں اور Ardino IDE کا استعمال کرکے اس کو پروگرام کرسکتے ہیں۔ ایسے افراد کے لئے جو اردوینو سے واقف ہیں یہ ٹیوٹوریل صرف کیک واک ہوگا کیونکہ وہ دونوں بہت مماثل ہیں۔ ایس ٹی ایم 32 بلیو گولی بورڈ کے بارے میں مزید جاننے کے ل to ہمارے شروع ٹیوٹوریل کی پیروی کریں۔
ضروری سامان
- STM32 بلیو گولی ترقیاتی بورڈ
- 16 × 2 LCD ڈسپلے
- ایف ٹی ڈی آئی پروگرامر
- مربوط تاروں
- LCD
مختصر انٹرو 16 × 2 ڈاٹ میٹرکس LCD ڈسپلے
جیسا کہ پہلے بتایا گیا ہے کہ اینرجیہ آئی ڈی ایک خوبصورت لائبریری فراہم کرتی ہے جو کیک کا ایک ٹکڑا بناتا ہے لہذا ڈسپلے کے ماڈیول کے بارے میں کچھ جاننا لازمی نہیں ہے۔ لیکن ، کیا یہ ظاہر کرنا دلچسپ نہیں ہوگا کہ ہم کیا استعمال کر رہے ہیں !!
نام 16 × 2 سے ظاہر ہوتا ہے کہ ڈسپلے میں 16 کالم اور 2 قطاریں ہیں ، جو مل کر (16 * 2) 32 خانوں کی تشکیل کرتی ہیں۔ نیچے دی گئی تصویر میں ایک سنگل خانہ کچھ ایسا ہی نظر آئے گا
ایک ہی باکس میں 40 قطاریں (ڈاٹ) ہوتی ہیں جس کے میٹرکس آرڈر ہوتے ہیں جس میں 5 قطار اور 8 کالم ہوتے ہیں ، یہ 40 پکسلز ایک ساتھ مل کر ایک کردار بناتے ہیں۔ اسی طرح ، تمام خانوں کا استعمال کرتے ہوئے 32 حروف کو ظاہر کیا جاسکتا ہے۔ اب پن آؤٹ پر ایک نظر ڈالتے ہیں۔
LCD میں کل 16 پن ہیں ، جیسا کہ اوپر دکھایا گیا ہے ، ان کو چار گروپوں میں درجہ بندی کیا جاسکتا ہے جیسا کہ مندرجہ ذیل ہیں
ماخذ پن (1 ، 2 اور 3): یہ پن ڈسپلے کے ل the طاقت اور اس کے برعکس کی سطح کا ذریعہ ہیں
کنٹرول پن (4 ، 5 اور 6): یہ پن LCD انٹرفیسنگ آایسی میں رجسٹرز کو سیٹ / کنٹرول کرتے ہیں (مزید یہ نیچے دیئے گئے لنک میں پایا جاسکتا ہے)
ڈیٹا / کمانڈ پن (7 سے 14): یہ پن ان معلومات فراہم کرتے ہیں کہ LCD پر کس معلومات کو ظاہر کرنا چاہئے۔
ایل ای ڈی پن (15 اور 16): ان پنوں کو ضرورت پڑنے پر ایل سی ڈی کے بیک لائٹ کو چمکانے کے لئے استعمال کیا جاتا ہے (اختیاری)۔
اگر آپ ان LCD ڈسپلے کے بارے میں مزید جاننا چاہتے ہیں تو ان 16 پنوں میں سے ، صرف 10 پنوں کو LCD کے مناسب کام کے لئے استعمال کرنا ہے جب آپ اس 16x2 LCD مضمون پر جائیں۔
سرکٹ ڈایاگرام اور کنکشن
انٹرفیس 16 * 2 ڈاٹ میٹرکس LCD STM32F103C8T6 STM32 بلیو گولی بورڈ کے ساتھ سرکٹ ڈایاگرام ذیل میں دکھایا گیا ہے۔ یہ فرائزنگ سوفٹ ویئر کا استعمال کرتے ہوئے بنایا گیا ہے۔
جیسا کہ آپ دیکھ سکتے ہیں کہ روٹی بورڈ پر مکمل کنکشن بنا ہوا ہے۔ ہمیں ایس ٹی ایم 32 مائکروکانٹرولر پروگرام کرنے کے لئے ایف ٹی ڈی آئی بورڈ کی ضرورت ہے ۔ ہمارے پچھلے سبق کی طرح ، ہم نے FTDI بورڈ کو STM32 پر وائرڈ کیا ہے ، FDTI پروگرامر کا Vcc اور گراؤنڈ پن بالترتیب STM32 کے 5V پن اور گراؤنڈ پن سے جڑا ہوا ہے۔ ایس ٹی ایم 32 بورڈ اور ایل سی ڈی کو طاقت دینے کے لئے استعمال کیا جاتا ہے کیونکہ دونوں ہی 5 + وی قبول کر سکتے ہیں۔ FTDI بورڈ کا Rx اور Tx پن STM32 کے A9 اور A10 پن سے منسلک ہے تاکہ ہم بورڈ کو براہ راست بوٹ لوڈر کے بغیر پروگرام کرسکیں۔
اگلے LCD کو STM32 بورڈ سے جوڑنا ہے۔ ہم LCD کو 4 بٹ موڈ میں استعمال کرنے جارہے ہیں ، لہذا ہمیں 4 ڈیٹا بٹ پن (DB4 سے DB7) اور دو کنٹرول پن (RS اور EN) کو STM32 بورڈ سے جوڑنا ہے جیسا کہ STM32F103C8T6 LCD انٹرفیسنگ سرکٹ میں دکھایا گیا ہے اوپر آریھ اس کے علاوہ نیچے دی گئی جدول آپ کو رابطے میں مدد فراہم کرے گی۔
LCD پن نمبر |
LCD پن کا نام |
STM32 پن کا نام |
1 |
گراؤنڈ (Gnd) |
گراؤنڈ (G) |
2 |
وی سی سی |
5V |
3 |
VEE |
گراؤنڈ (G) |
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) |
ایک بار جب رابطے ہوجائیں تو ہم آرڈینوو IDE کھول سکتے ہیں اور اس کا پروگرامنگ شروع کرسکتے ہیں۔
پروگرامنگ ایس ٹی ایم 32 ایل ڈی سی کیلئے اردوینو استعمال کرتے ہوئے
جیسا کہ اس ٹیوٹوریل میں بتایا گیا ہے کہ ہم اپنے ایس ٹی ایم 32 مائکروکانٹرولر کو پروگرام کرنے کے لئے ارڈینو آئ ڈی ای کا استعمال کریں گے ۔ لیکن ، آرڈوینو IDE بطور ڈیفالٹ STM32 بورڈ انسٹال نہیں ہوگا ، لہذا ہمیں ایک پیکیج ڈاؤن لوڈ کرنا ہے اور اسی کے لئے آرڈینو آئ ڈی ای تیار کرنا ہے۔ یہ بالکل وہی ہے جو ہم نے اپنے سابقہ ٹیوٹوریل میں Ardino IDE کا استعمال کرتے ہوئے STM32F103C8T6 کے ساتھ شروع کیا تھا۔ لہذا اگر آپ نے انسٹال نہیں کیا ہے تو ضروری پیکیجز اس ٹیوٹوریل میں واپس آ جائیں اور یہاں جاری رکھنے سے پہلے اس کی پیروی کریں۔
ارڈینو آئ ڈی ای میں ایک بار جب STM32 بورڈ انسٹال ہوجاتا ہے ، تو ہم پروگرامنگ شروع کرسکتے ہیں۔ یہ پروگرام ایک ارڈینو بورڈ کی طرح ہی ہے ، صرف ایک ہی چیز جو بدل جائے گی وہ پن کے نام ہیں کیوں کہ ایس ٹی ایم 32 اور اردوینو کے لئے نوٹیفیکیشن مختلف ہیں ۔ مکمل پروگرام اس صفحے کے آخر میں دیا گیا ہے ، لیکن پروگرام کی وضاحت کے لئے میں نے اسے چھوٹے معنی خیز ٹکڑوں میں تقسیم کردیا ہے جیسا کہ ذیل میں دکھایا گیا ہے۔
ہمارے مائکروکنٹرولرز کو پروگرام کرنے کے لئے اریڈوینو کو استعمال کرنے کا ایک نمایاں فائدہ یہ ہے کہ ارڈینو کے پاس تقریبا every ہر مشہور سینسر اور ایکچیوٹرز کے لئے ریڈی میڈ لائبریریاں ہیں۔ تو یہاں ہم LCD لائبریری کو شامل کرکے اپنے پروگرام کا آغاز کرتے ہیں جس سے پروگرامنگ بہت آسان ہوجاتی ہے۔
# شامل کریں
اگلی لائن میں ہمیں یہ بتانا ہوگا کہ ہم STP32 کے کس GPIO پنوں نے LCD ڈسپلے کنٹرول اور ڈیٹا لائنوں کو جوڑا ہے۔ ایسا کرنے کے ل we ، ہمیں اپنے ہارڈ ویئر کی جانچ پڑتال کرنی ہوگی ، آسانی کے ل you آپ سب سے اوپر دیئے گئے ٹیبل کا بھی حوالہ دے سکتے ہیں جو STM32 کے GPIO پن کے خلاف LCD کے پن ناموں کی فہرست رکھتا ہے۔ پنوں کا ذکر کرنے کے بعد ہم LCDidCrystal فنکشن کا استعمال کرکے LCD کی ابتدا کرسکتے ہیں ۔ جیسا کہ ذیل میں دکھایا گیا ہے ہم اپنے LCD کا نام " lcd " رکھتے ہیں۔
const int RSS = PB11، en = PB10، d4 = PB0، d5 = PB1، d6 = PC13، d7 = PC14؛ // LCD سے منسلک ہے کے ساتھ پن ناموں کا ذکر LiquidCrystal LCD (روپے، میں، D4، D5، D6، D7)؛ // ایل سی ڈی شروع کریں
اگلا ، ہم سیٹ اپ فنکشن کے اندر قدم رکھتے ہیں ۔ یہاں پہلے ہم نے ذکر کیا ہے کہ ہم کس قسم کا LCD استعمال کررہے ہیں۔ چونکہ یہ 16 * 2 LCD ہے لہذا ہم lcd.begin (16،2) لائن استعمال کرتے ہیں ۔ باطل سیٹ اپ فنکشن کے اندر کا کوڈ صرف ایک بار عمل میں آجاتا ہے۔ لہذا ہم اسے انٹرو ٹیکسٹ ڈسپلے کرنے کیلئے استعمال کرتے ہیں جو اسکرین پر 2 سیکنڈ کے لئے آتا ہے اور پھر کلیئر ہوجاتا ہے۔ اس پوزیشن کا ذکر کرنے کے لئے جہاں ٹیکسٹ نمودار ہونا ہے ہم lcd.setcursor فنکشن کا استعمال کرتے ہیں اور اس ٹیکسٹ کو پرنٹ کرنے کے لئے ہم lcd.print فنکشن استعمال کرتے ہیں ۔ مثال کے طور پر lcd.setCursor (0،0) کرسر کو پہلی صف اور پہلے کالم پر سیٹ کرے گا جہاں ہم " انٹرفیسنگ LCD " اور فنکشن lcd.setCursor (0،1) پرنٹ کریں گے۔ کرسر کو دوسرے صف کے پہلے کالم میں لے جاتا ہے جہاں ہم " سرکٹ ڈائیجسٹ " لائن پرنٹ کرتے ہیں ۔
باطل سیٹ اپ () c lcd.begin (16 ، 2)؛ // ہم 16 * 2 LCD lcd.setCursor (0 ، 0) استعمال کر رہے ہیں۔ // پہلی صف میں پہلا کالم lcd.print ("انٹرفیسنگ LCD")؛ // اس lcd.setCursor پرنٹ کریں (0، 1)؛ // سیکنڈ صف میں پہلا کالم lcd.print ("- سرکٹ ڈائیجسٹ")؛ // اس تاخیر کو پرنٹ کریں (2000)؛ // دو سیکنڈ تک انتظار کریں lcd.clear ()؛ // سکرین صاف کریں}
تعارفی متن کی نمائش کے بعد ہم نے تاخیر پیدا کرکے پروگرام کو 2 سیکنڈ تک روک لیا تاکہ صارف صارف انٹرو میسج پڑھ سکے۔ یہ تاخیر لائن تاخیر (2000) کے ذریعہ تیار کی گئی ہے جہاں 2000 مل سیکنڈ میں تاخیر کی قیمت ہے۔ تاخیر کے بعد ہم lcd.clear () فنکشن کا استعمال کرتے ہوئے LCD کو صاف کرتے ہیں جو LCD پر موجود تمام متن کو ختم کرکے LCD کو صاف کرتا ہے۔
باطل لوپ کے اندر ، ہم پہلی لائن پر "STM32 - بلو گولی" اور دوسری لائن پر سیکنڈ کی قدر ظاہر کرتے ہیں ۔ ملیس () فنکشن سے سیکنڈ کی ویلیو حاصل کی جاسکتی ہے۔ Millis اس () وقت MCU طاقت ہے سے incrementing کی صحیح ہو جاتا ہے جس میں ایک ٹائمر ہے. قیمت ملی سیکنڈ کی شکل میں ہے لہذا ہم اسے اپنے LCD پر ظاہر کرنے سے پہلے اسے 1000 سے تقسیم کردیتے ہیں۔
باطل لوپ () c lcd.setCursor (0، 0)؛ // پہلی صف میں پہلا کالم lcd.print ("STM32 -Blue Pill")؛ // اس lcd.setCursor پرنٹ کریں (0، 1)؛ // سیکنڈ صف میں پہلا کالم lcd.print (ملیس () / 1000)؛ // سیکنڈ کی قدر پرنٹ کریں }
پروگرام کو STM32F103C8T6 پر اپ لوڈ کرنا
جیسا کہ مندرجہ بالا پیراگراف میں بحث کی گئی ہے ، آپ کوڈ اپ لوڈ ہوتے ہی آؤٹ پٹ کو دیکھ سکتے ہیں۔ لیکن یہ پروگرام اگلی بار کام نہیں کرے گا جب آپ بورڈ کو طاقتور بنائیں گے ، کیونکہ بورڈ ابھی پروگرامنگ کے موڈ میں ہے۔ لہذا ایک بار جب پروگرام اپ لوڈ ہوجائے تو بوٹ 0 پر جمپر کو 0 پوزیشن پر تبدیل کیا جانا چاہئے جیسا کہ ذیل میں دکھایا گیا ہے ۔ اس کے علاوہ ، چونکہ یہ پروگرام پہلے ہی STM32 بورڈ پر اپ لوڈ ہوچکا ہے ، ہمیں FTDI بورڈ کی ضرورت نہیں ہے اور ایس ٹی ایم 32 بورڈ کے مائیکرو USB پورٹ کے ساتھ ساتھ ذیل میں بھی دکھایا جاسکتا ہے۔
ایس ٹی ایم 32 بورڈ کے ساتھ ایل سی ڈی ڈسپلے کو استعمال کرنے میں مدد کرنے کے لئے یہ صرف ایک آسان انٹرفیسنگ پروجیکٹ ہے ، لیکن مزید آپ اس کا استعمال ڈاؤن لوڈ ، اتارنا پروجیکٹس کی تعمیر کے ل. کرسکتے ہیں۔ امید ہے کہ آپ سبق کو سمجھ گئے ہوں گے اور اس سے کچھ مفید سیکھیں گے۔ اگر آپ کو کام کرنے میں کسی پریشانی کا سامنا کرنا پڑا تو ، براہ کرم اس مسئلے کو پوسٹ کرنے کے لئے کمنٹ سیکشن کا استعمال کریں یا دیگر تکنیکی سوالات کے لئے فورم کا استعمال کریں۔ STM32 کے ساتھ LCD ڈسپلے کا مکمل کام بھی ذیل میں دیا گیا ویڈیو کے بطور پایا جاسکتا ہے ۔