DCC کنٹرولر کے لیے ARDUINO IDE سیٹ اپ
DCC کنٹرولر کے لیے Arduino IDE سیٹ اپ
مرحلہ 1۔ IDE ماحول کا سیٹ اپ۔ ESP بورڈز لوڈ کریں۔
جب آپ پہلی بار Arduino IDE انسٹال کرتے ہیں، تو یہ صرف ARM پر مبنی بورڈز کو سپورٹ کرتا ہے۔ ہمیں ESP پر مبنی بورڈز کے لیے تعاون شامل کرنے کی ضرورت ہے۔ پر نیویگیٹ کریں۔ File… ترجیحات
اس لائن کو نیچے ایڈیشنل بورڈز مینیجر میں ٹائپ کریں۔ URLایس باکس۔ نوٹ کریں کہ اس میں انڈر سکور ہیں، کوئی خالی جگہ نہیں ہے۔ http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
اس باکس کو بھی چیک کریں جو کہتا ہے کہ تالیف کے دوران وربوز دکھائیں۔ اگر تالیف کے دوران کچھ ناکام ہوجاتا ہے تو یہ ہمیں مزید معلومات فراہم کرتا ہے۔
نوٹ کریں کہ اوپر کی لائن esp8266 ڈیوائسز اور نئے esp32 دونوں کے لیے سپورٹ شامل کرتی ہے۔ دو json تاروں کو کوما سے الگ کیا گیا ہے۔
اب بورڈ منتخب کریں۔ ورژن 2.7.4 بورڈ مینیجر سے
ورژن 2.7.4 انسٹال کریں۔ یہ کام کرتا ہے۔ ورژن 3.0.0 اور اس سے زیادہ اس پروجیکٹ کے لیے کام نہیں کرتا ہے۔ اب، ٹولز مینو میں واپس، وہ بورڈ منتخب کریں جسے آپ استعمال کریں گے۔ اس پروجیکٹ کے لیے یہ یا تو نوڈ ایم سی یو 1.0 یا WeMos D1R1 ہوگا۔
یہاں ہم WeMos D1R1 کو منتخب کرتے ہیں۔ (اسے نینو سے تبدیل کرنا)
مرحلہ 2۔ IDE ماحول کا سیٹ اپ۔ ESP8266 اسکیچ ڈیٹا اپ لوڈ ایڈ ان لوڈ کریں۔
ہمیں ایچ ٹی ایم ایل صفحات اور دیگر شائع کرنے کی اجازت دینے کے لیے اس ایڈ کو لوڈ کرنے کی ضرورت ہے۔ files ESP ڈیوائس پر۔ یہ آپ کے پروجیکٹ فولڈر کے اندر موجود ڈیٹا فولڈر میں رہتے ہیں۔ https://github.com/esp8266/arduino-esp8266fs-plugin/releases
پر جائیں۔ URL اوپر اور ESP8266FS-0.5.0.zip ڈاؤن لوڈ کریں۔
اپنے Arduino فولڈر کے اندر ایک ٹولز فولڈر بنائیں۔ زپ کے مواد کو ان زپ کریں۔ file اس ٹولز فولڈر میں۔ آپ کو اس کے ساتھ ختم کرنا چاہئے؛
اور ٹولز کے نیچے ایک نیا مینو آپشن ظاہر ہوگا…
اگر آپ اس مینو آپشن کو استعمال کرتے ہیں تو IDE ڈیٹا فولڈر کے مواد کو بورڈ میں اپ لوڈ کر دے گا۔ ٹھیک ہے تو یہ IDE ماحول ہے جو عام ESP8266 استعمال کے لیے ترتیب دیا گیا ہے، اب ہمیں اس مخصوص پروجیکٹ کے لیے Arduino/Libraries فولڈر میں کچھ لائبریریاں شامل کرنے کی ضرورت ہے۔
مرحلہ 3۔ لائبریریاں ڈاؤن لوڈ کریں اور دستی طور پر انسٹال کریں۔
ہمیں ان لائبریریوں کو گیتھب سے ڈاؤن لوڈ کرنے کی ضرورت ہے۔ https://github.com/me-no-dev/ESPAsyncTCP
کوڈ پر کلک کریں، اور پھر زپ ڈاؤن لوڈ کریں۔ یہ آپ کے ڈاؤن لوڈ فولڈر میں جائے گا۔ ڈاؤن لوڈز میں جائیں، زپ تلاش کریں، اسے کھولیں اور مواد کے فولڈر "ESPAsyncTCP" کو Arduino/لائبریریوں میں گھسیٹیں۔
اگر فولڈر کا نام "-master" کے ساتھ ختم ہوتا ہے، تو پھر "-master" کو آخر سے ہٹانے کے لیے اس کا نام تبدیل کریں۔
یعنی ڈاؤن لوڈز سے
ESPAsyncTCP-master کے لیے .zip کھولیں، اور ESPAsyncTCP-master فولڈر کو اس کے اندر سے Arduino/Libraries میں گھسیٹیں۔
نوٹ: Arduino/لائبریریاں .zip ورژن استعمال نہیں کر سکتیں، آپ کو مطلوبہ فولڈر کو ان زپ (ڈریگ) کرنے کی ضرورت ہے۔ ہمیں بھی ضرورت ہے۔ https://github.com/fmalpartida/New-LiquidCrystal
زپ ڈاؤن لوڈ کریں پھر اس کے مواد کو Arduino/لائبریریوں میں گھسیٹیں اور ماسٹر اینڈ کو ہٹا دیں۔
اور آخر میں، ہمیں نیچے دیئے گئے لنک سے ArduinoJson-5.13.5.zip کی ضرورت ہے۔ https://www.arduinolibraries.info/libraries/arduino-json
ڈاؤن لوڈ کریں اور پھر زپ کے مواد کو Arduino/لائبریریوں میں گھسیٹیں۔
مرحلہ 4۔ Arduino لائبریری مینیجر کا استعمال کرتے ہوئے کچھ اور لائبریریاں انسٹال کریں۔
ہمیں دو اور لائبریریوں کی ضرورت ہے، اور یہ Arduino لائبریری مینیجر سے آتی ہیں جس میں بلٹ ان لائبریریوں کا انتخاب ہوتا ہے۔ ٹولز پر جائیں… لائبریریوں کا نظم کریں…
Adafruit INA1.0.3 کا ورژن 219 استعمال کریں۔ یہ کام کرتا ہے۔
اور بھی
کا ورژن 2.1.0 استعمال کریں۔ Webمارکس سیٹلر کے ساکٹ، یہ تجربہ کیا اور کام کر رہا ہے۔ میں نے بعد کے ورژن کا تجربہ نہیں کیا ہے۔
ٹھیک ہے لہذا یہ تمام لائبریریاں (عرف حوالہ جات) ہیں جن کی IDE کو اس پروجیکٹ کو مرتب کرنے کی ضرورت ہے۔
مرحلہ 5. GitHub سے ESP_DCC_Controller پروجیکٹ ڈاؤن لوڈ کریں اور IDE میں کھولیں۔
GitHub پر جائیں اور ڈاؤن لوڈ کریں۔ https://github.com/computski/ESP_DCC_controller
سبز "کوڈ" بٹن پر کلک کریں، اور زپ ڈاؤن لوڈ کریں۔ پھر زپ کھولیں۔ file اور اس کے مواد کو Arduino فولڈر میں منتقل کریں۔ فولڈر کے نام پر ختم ہونے والے "-main" کو ہٹانے کے لیے فولڈر کا نام تبدیل کریں۔ آپ کو اپنے Arduino فولڈر میں ایک فولڈر ESP_ DCC_ کنٹرولر کے ساتھ ختم کرنا چاہئے۔ اس میں ایک .INO ہوگا۔ fileمختلف .H اور .CPP files اور ڈیٹا فولڈر۔
.INO پر ڈبل کلک کریں۔ file Arduino IDE میں پروجیکٹ کو کھولنے کے لیے۔
اس سے پہلے کہ ہم مرتب کریں، ہمیں آپ کی ضروریات کے مطابق ترتیب دینے کی ضرورت ہے…
مرحلہ 6۔ گلوبل میں اپنی ضروریات طے کریں۔ h
یہ پروجیکٹ nodeMCU یا WeMo's D1R1 کو سپورٹ کر سکتا ہے اور یہ متعدد مختلف پاور بورڈ (موٹر شیلڈ) آپشنز کو بھی سپورٹ کر سکتا ہے، نیز یہ I2C بس پر ڈیوائسز کو سپورٹ کر سکتا ہے جیسے کہ موجودہ مانیٹر، LCD ڈسپلے اور کی پیڈ۔ اور آخر میں یہ جوگ وہیل (روٹری انکوڈر) کو بھی سپورٹ کر سکتا ہے۔ سب سے بنیادی تعمیر جو آپ کر سکتے ہیں WeMo کی D1R1 اور L298 موٹر شیلڈ ہے۔
نوٹ کریں کہ کسی آپشن کو غیر فعال کرنے کا سب سے آسان طریقہ یہ ہے کہ #define سٹیٹمنٹ میں اس کے نام کے سامنے ایک چھوٹا n شامل کریں۔
#nNODEMCU_OPTION3 کی وضاحت کریں۔
#nBOARD_ESP12_SHIELD کی وضاحت کریں۔
#وضاحت کریں۔ WEMOS_D1R1_AND_L298_SHIELD
سابق کے لیےample، اوپر NODEMCU_OPTION3 کو n کے ساتھ غیر فعال کر دیا گیا ہے، وہی nBOARD_ESP12_SHIELD کے لیے۔ WEMOS_D1R1_AND_L298_SHIELD ایک فعال آپشن ہے، اور اس کی وجہ سے کمپائلر اس کے لیے کنفیگریشن استعمال کرے گا جیسا کہ نیچے درج ہے۔
اس ترتیب کے ذریعے چلنے کے لیے:
#elif کی وضاحت کی گئی (WEMOS_D1R1_AND_L298_SHIELD)
/*Wemos D1-R1 L298 شیلڈ کے ساتھ سجا ہوا ہے، نوٹ کریں کہ D1-R2 مختلف پن آؤٹ کے ساتھ ایک نیا ماڈل ہے*/
/* L298 شیلڈ پر بریک جمپر کاٹ دیں۔ ان کی ضرورت نہیں ہے اور ہم نہیں چاہتے کہ وہ I2C پنوں سے چلیں کیونکہ یہ DCC سگنل کو خراب کر دے گا۔
بورڈ میں Arduino فارم فیکٹر ہے، پن مندرجہ ذیل ہیں۔
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 دل کی دھڑکن اور جوگ وہیل پش بٹن (ایکٹو ہائی)
D3 GPIO5 DCC فعال (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC سگنل (dir)
D6 GPIO12 DCC سگنل (dir)
D7 GPIO13 DCC فعال (pwm)
D8 GPIO0 SDA، 12k پل اپ کے ساتھ
D9 GPIO2 SCL، 12k پل اپ کے ساتھ
D10 GPIO15 Jog2
مندرجہ بالا نوٹس انسانوں کے لیے ہیں، آپ کو بتاتا ہے کہ کون سے ESP GPIOs کون سے کام انجام دیں گے۔ نوٹ کریں کہ Arduino D1-D10 سے GPIO میپنگز نوڈ MCU D1-D10 سے GPIO میپنگ سے مختلف ہیں۔ */
#USE_ANALOG_MEASUREMENT کی وضاحت کریں۔
#ANALOG_SCALING 3.9 // متوازی A اور B استعمال کرتے وقت (ملٹی میٹر RMS سے ملنے کے لیے 2.36) کی وضاحت کریں
ہم AD کو ESP پر استعمال کریں گے نہ کہ بیرونی I2C موجودہ مانیٹرنگ ڈیوائس جیسے INA219 کو غیر فعال
اگر آپ INA219 استعمال کرنا چاہتے ہیں تو یہ n USE_ANALOG_ MEASUREMENT کے ساتھ
PIN_HEARTBEAT 16 کی وضاحت کریں //اور جوگ وہیل پش بٹن
#DCC_PINS کی وضاحت کریں
uint32 dcc_info[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12, 12, 0 }; \
uint32 enable_info[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO5, 5, 0 }; \
uint32 dcc_infoA[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO14, 14, 0 }; \
uint32 enable_infoA[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO13,13, 0 };
اس بات کی وضاحت کرتا ہے کہ کون سی پن DCC سگنلز کو چلائے گی، ہمارے پاس دو چینلز ہیں، جو ان فیز چل رہے ہیں تاکہ ہم انہیں ایک ساتھ مل سکیں۔ A-چینل dcc_ info [] ہے اور B- چینل dcc_ info A [] ہے۔ ان کی تعریف میکروز کے طور پر کی گئی ہے اور بیک سلیش ایک لائن تسلسل مارکر ہے۔
PIN_SCL 2 //12k پل اپ کی وضاحت کریں۔
PIN_SDA 0 //12k پل اپ کی وضاحت کریں۔
PIN_JOG1 کی وضاحت کریں 4
PIN_JOG2 15 //12k پل ڈاؤن کی وضاحت کریں۔
پنوں (GPIOs) کی وضاحت کریں جو I2C SCL/SDA چلاتے ہیں اور پھر جوگ وہیل ان پٹ 1 اور 2 بھی
KEYPAD_ADDRESS 0x21 //pcf8574 کی وضاحت کریں
اختیاری 4 x 4 میٹرکس کیپیڈ کے لیے استعمال کیا جاتا ہے، جسے pcf8574 چپ کا استعمال کرکے اسکین کیا جاتا ہے۔
//addr, en,rw,rs,d4,d5,d6,d7,backlight, polarity. ہم اسے 4 بٹ ڈیوائس کے طور پر استعمال کر رہے ہیں //میرا ڈسپلے پن آؤٹ rs,rw,e,d0-d7 ہے۔ صرف d <4-7> استعمال ہوتے ہیں۔ <210> ظاہر ہوتا ہے کیونکہ بٹس <012> کو //EN,RW,RS کے طور پر میپ کیا جاتا ہے اور ہمیں ہارڈ ویئر پر اصل آرڈر کے مطابق انہیں دوبارہ ترتیب دینے کی ضرورت ہوتی ہے، 3 کو بیک لائٹ میں // میپ کیا جاتا ہے۔ <4-7> اسی ترتیب میں بیگ پر اور ڈسپلے پر ظاہر ہوتے ہیں۔
BOOTUP_LCD LiquidCrystal_I2C lcd(0x27، 2، 1، 0، 4، 5، 6، 7، 3، مثبت) کی وضاحت کریں؛ //YwRobot بیگ
I2C بیگ کی وضاحت اور ترتیب دینے کے لیے استعمال کیا جاتا ہے جو 1602 LCD ڈسپلے کو چلاتا ہے (اختیاری)، یہ نرم کنفیگر ایبل ہے اور بہت سے بیک بیگ دستیاب ہیں جن کی پن کنفیگریشن مختلف ہوتی ہے۔
#endif
مرحلہ 7۔ مرتب کریں اور بورڈ پر اپ لوڈ کریں۔
اب آپ نے بورڈ کومبو ترتیب دیا ہے جسے آپ استعمال کرنا چاہتے ہیں، آپ پروجیکٹ کو مرتب کر سکتے ہیں۔ اگر آپ 4×4 میٹرکس کیپیڈ، اور LCD استعمال کرنے کا ارادہ نہیں رکھتے، کوئی حرج نہیں، ان کی تعریفیں چھوڑ دیں جیسا کہ سافٹ ویئر ان کو ترتیب دینے کی توقع رکھتا ہے۔ سسٹم ان کے بغیر وائی فائی پر ٹھیک کام کرے گا۔
IDE پر، ٹک کی علامت (تصدیق) دراصل "مرتب" ہے۔ اس پر کلک کریں اور آپ دیکھیں گے کہ مختلف پیغامات ظاہر ہوتے ہیں (بشرطیکہ آپ نے Verbose compilation کو فعال کیا ہو) کیونکہ سسٹم مختلف لائبریریوں کو مرتب کرتا ہے اور ان سب کو ایک ساتھ جوڑتا ہے۔ اگر سب کچھ ٹھیک کام کرتا ہے، اور اگر آپ نے اوپر دیے گئے تمام مراحل پر عمل کیا تو آپ کو کامیابی کا پیغام نظر آنا چاہیے۔ اب آپ دائیں تیر (اپ لوڈ) بٹن کو مارنے کے لیے تیار ہیں، لیکن ایسا کرنے سے پہلے، چیک کریں کہ آپ نے ٹولز مینو کے تحت بورڈ کے لیے صحیح COM پورٹ کا انتخاب کیا ہے۔
کامیاب اپ لوڈ کرنے کے بعد (اچھی کوالٹی کی USB کیبل استعمال کریں) آپ کو بھی کال کرنے کی ضرورت ہے۔ ESP8266 اسکیچ ڈیٹا مینو لوڈ کریں۔ ٹولز کے تحت آپشن۔ یہ ڈیٹا فولڈر کے مواد کو ڈیوائس پر ڈال دے گا (تمام HTML صفحات)۔
تم نے کر لیا. سیریل مانیٹر کھولیں، ری سیٹ بٹن پر کلک کریں اور آپ کو ڈیوائس بوٹ اور I2C ڈیوائسز کے لیے اسکین نظر آنا چاہیے۔ اب آپ اسے وائی فائی پر منسلک کر سکتے ہیں، اور یہ اپنے پاور بورڈ (موٹر شیلڈ) تک تار لگانے کے لیے تیار ہے۔
دستاویزات / وسائل
![]() |
DCC کنٹرولر کے لیے ARDUINO IDE سیٹ اپ [پی ڈی ایف] ہدایات ڈی سی سی کنٹرولر کے لیے آئی ڈی ای سیٹ اپ، آئی ڈی ای سیٹ اپ، ڈی سی سی کنٹرولر کے لیے سیٹ اپ، ڈی سی سی کنٹرولر آئی ڈی ای سیٹ اپ، ڈی سی سی کنٹرولر |