DCC कंट्रोलरसाठी ARDUINO IDE सेटअप
DCC कंट्रोलरसाठी Arduino IDE सेट-अप
पायरी 1. IDE पर्यावरण सेट-अप. ईएसपी बोर्ड लोड करा.
जेव्हा तुम्ही पहिल्यांदा 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 स्केच डेटा अपलोड अॅड-इन लोड करा.
आम्हाला एचटीएमएल पृष्ठे आणि इतर प्रकाशित (पुटणे) करण्याची परवानगी देण्यासाठी हे अॅड-इन लोड करणे आवश्यक आहे fileESP डिव्हाइसवर s. हे तुमच्या प्रोजेक्ट फोल्डरमधील डेटा फोल्डरमध्ये राहतात https://github.com/esp8266/arduino-esp8266fs-plugin/releases
वर जा URL वर आणि ESP8266FS-0.5.0.zip डाउनलोड करा.
तुमच्या Arduino फोल्डरमध्ये टूल्स फोल्डर तयार करा. झिपची सामग्री अनझिप करा file या टूल्स फोल्डरमध्ये. आपण यासह समाप्त केले पाहिजे;
आणि टूल्स अंतर्गत एक नवीन मेनू पर्याय दिसेल…
तुम्ही तो मेनू पर्याय वापरल्यास, IDE डेटा फोल्डरमधील सामग्री बोर्डवर अपलोड करेल. ठीक आहे त्यामुळे सामान्य ESP8266 वापरासाठी IDE वातावरण तयार केले आहे, आता आम्हाला या विशिष्ट प्रकल्पासाठी Arduino/Libraries फोल्डरमध्ये काही लायब्ररी जोडण्याची गरज आहे.
पायरी 3. लायब्ररी डाउनलोड करा आणि व्यक्तिचलितपणे स्थापित करा.
आम्हाला ही लायब्ररी Github वरून डाउनलोड करायची आहे; 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
zip डाउनलोड करा नंतर त्यातील सामग्री Arduino/libraries वर ड्रॅग करा आणि -master ending काढून टाका.
आणि शेवटी, आम्हाला खालील लिंकवरून ArduinoJson-5.13.5.zip आवश्यक आहे https://www.arduinolibraries.info/libraries/arduino-json
डाउनलोड करा आणि नंतर झिप सामग्री Arduino/लायब्ररीमध्ये ड्रॅग करा
पायरी 4. Arduino Library Manager वापरून आणखी काही लायब्ररी स्थापित करा.
आम्हाला आणखी दोन लायब्ररींची गरज आहे, आणि त्या 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 च्या 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)
/*वेमोस 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 GPIO कोणते कार्य करतील हे तुम्हाला कळू देते. लक्षात घ्या की द Arduino D1-D10 ते GPIO मॅपिंग नोड MCU D1-D10 ते GPIO मॅपिंग वेगळे आहेत */
#USE_ANALOG_MEASUREMENT परिभाषित करा
#ANALOG_SCALING 3.9 परिभाषित करा // A आणि B समांतर वापरताना (2.36 मल्टीमीटर RMS जुळण्यासाठी)
आम्ही 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_ माहिती [] आणि B-चॅनेल dcc_ माहिती A [] आहे. हे मॅक्रो म्हणून परिभाषित केले आहेत आणि बॅकस्लॅश एक लाइन-कंटिन्युएशन मार्कर आहे.
#PIN_SCL 2 //12k पुलअप परिभाषित करा
#PIN_SDA 0 //12k पुलअप परिभाषित करा
#PIN_JOG1 परिभाषित करा 4
#PIN_JOG2 15 //12k पुलडाउन परिभाषित करा
पिन (GPIO) परिभाषित करा जे I2C SCL/SDA चालवतात आणि नंतर जॉगव्हील इनपुट 1 आणि 2 देखील
# KEYPAD_ADDRESS 0x21 //pcf8574 परिभाषित करा
पर्यायी 4 x 4 मॅट्रिक्स कीपॅडसाठी वापरले जाते, जे pcf8574 चिप वापरून स्कॅन केले जाते
//addr, en,rw,rs,d4,d5,d6,d7,बॅकलाइट, 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 बॅकपॅक
2 LCD डिस्प्ले (पर्यायी) चालविणारा I1602C बॅकपॅक परिभाषित आणि कॉन्फिगर करण्यासाठी वापरला जातो, हे सॉफ्ट कॉन्फिगर करण्यायोग्य आहे आणि अनेक बॅकपॅक उपलब्ध आहेत ज्यांचे पिन कॉन्फिगरेशन बदलते.
#endif
पायरी 7. संकलित करा आणि बोर्डवर अपलोड करा.
आता तुम्ही वापरत असलेला बोर्ड कॉम्बो कॉन्फिगर केला आहे, तुम्ही प्रकल्प संकलित करू शकता. जर तुमचा 4×4 मॅट्रिक्स कीपॅड आणि एलसीडी वापरायचा नसेल, तर काही हरकत नाही, सॉफ्टवेअरने त्यांना कॉन्फिगर करण्याची अपेक्षा केल्यानुसार त्यांच्या व्याख्या सोडा. त्यांच्याशिवाय वायफायवर सिस्टीम चांगले काम करेल.
IDE वर, टिक चिन्ह (पडताळणी) प्रत्यक्षात "कंपाइल" आहे. यावर क्लिक करा आणि सिस्टम विविध लायब्ररी संकलित करते आणि सर्व एकत्र जोडते म्हणून तुम्हाला विविध संदेश दिसतील (जर तुम्ही वर्बोज संकलन सक्षम केले असेल). जर सर्व काही चांगले कार्य करत असेल आणि जर तुम्ही वरील सर्व चरणांचे अचूक पालन केले असेल तर तुम्हाला यशाचा संदेश दिसला पाहिजे. तुम्ही आता उजवे-बाण (अपलोड) बटण दाबण्यासाठी तयार आहात, परंतु तुम्ही हे करण्यापूर्वी, तुम्ही टूल्स मेनू अंतर्गत बोर्डसाठी योग्य COM पोर्ट निवडला आहे का ते तपासा.
यशस्वी अपलोड केल्यानंतर (चांगल्या गुणवत्तेची USB केबल वापरा) तुम्हाला देखील कॉल करणे आवश्यक आहे ESP8266 स्केच डेटा मेनू लोड करा टूल्स अंतर्गत पर्याय. हे डिव्हाइसवर डेटा फोल्डरची सामग्री ठेवेल (सर्व HTML पृष्ठे).
तुमचे काम झाले. सीरियल मॉनिटर उघडा, रीसेट बटणावर क्लिक करा आणि तुम्हाला डिव्हाइस बूट दिसेल आणि I2C डिव्हाइसेससाठी स्कॅन करा. तुम्ही आता ते Wifi वरून कनेक्ट करू शकता आणि ते त्याच्या पॉवर बोर्ड (मोटर शील्ड) पर्यंत वायर करण्यासाठी तयार आहे.
कागदपत्रे / संसाधने
![]() |
DCC कंट्रोलरसाठी ARDUINO IDE सेटअप [pdf] सूचना डीसीसी कंट्रोलरसाठी आयडीई सेट अप, आयडीई सेट अप, डीसीसी कंट्रोलरसाठी सेट अप, डीसीसी कंट्रोलर आयडीई सेट अप, डीसीसी कंट्रोलर |