Настройка на ARDUINO IDE за DCC контролер

Arduino IDE настройка за DCC контролер
Стъпка 1. Настройка на IDE среда. Заредете ESP платките.
Когато за първи път инсталирате Arduino IDE, той поддържа само ARM базирани платки. Трябва да добавим поддръжка за платки, базирани на ESP. Навигирайте до File… Предпочитания


Въведете този ред по-долу в диспечера на допълнителни табла URLS кутия. Имайте предвид, че в него има долни черти, без интервали. http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Също така поставете отметка в квадратчето, което казва Show Verbose по време на компилация. Това ни дава повече информация, ако нещо се провали по време на компилацията.
Обърнете внимание, че редът по-горе добавя поддръжка както за устройства esp8266, така и за по-новите esp32. Двата json низа са разделени със запетая.
Сега изберете дъска версия 2.7.4 от управителя на борда

Инсталирайте версия 2.7.4. Това работи. Версия 3.0.0 и по-нова не работи за този проект. Сега, обратно в менюто Инструменти, изберете дъската, която ще използвате. За този проект ще бъде или nodeMCU 1.0, или WeMos D1R1

Тук избираме WeMos D1R1. (промяна на това от Nano)
Стъпка 2. Настройка на IDE среда. Заредете добавката ESP8266 Sketch Data Upload.
Трябва да заредим тази добавка, за да ни позволи да публикуваме (поставяме) HTML страници и други files на ESP устройството. Те живеят в папката с данни във вашата папка на проекта https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Отидете на URL по-горе и изтеглете ESP8266FS-0.5.0.zip.
Създайте папка Tools във вашата папка Arduino. Разархивирайте съдържанието на zip файла file към тази папка Инструменти. Трябва да завършите с това;

И ще се появи нова опция от менюто под Инструменти…

Ако извикате тази опция от менюто, IDE ще качи съдържанието на папката с данни на дъската. Добре, това е IDE средата, настроена за обща употреба на ESP8266, сега трябва да добавим някои библиотеки към папката Arduino/Libraries за този конкретен проект.
Стъпка 3. Изтеглете библиотеки и ръчно инсталирайте.
Трябва да изтеглим тези библиотеки от Github; https://github.com/me-no-dev/ESPAsyncTCP

Кликнете върху кода и след това изтеглете zip. Ще отиде в папката ви за изтегляне. Отидете в изтегляния, намерете zip файла, отворете го и плъзнете папката със съдържание „ESPAsyncTCP“ към Arduino/библиотеки.
Ако името на папката завършва с „-master“, преименувайте я, за да премахнете „-master“ от края.
т.е. от изтегляния

Отворете .zip за ESPAsyncTCP-master и плъзнете папката ESPAsyncTCP-master отвътре към Arduino/Libraries

Забележка: Arduino/библиотеките не могат да използват .zip версията, трябва да разархивирате (плъзнете) желаната папка. Ние също се нуждаем https://github.com/fmalpartida/New-LiquidCrystal
Изтеглете zip файла, след което плъзнете съдържанието му в Arduino/библиотеки и премахнете края -master.
И накрая, имаме нужда от ArduinoJson-5.13.5.zip от връзката по-долу https://www.arduinolibraries.info/libraries/arduino-json
изтеглете и след това плъзнете съдържанието на zip в Arduino/библиотеки
Стъпка 4. Инсталирайте още няколко библиотеки с помощта на Arduino Library Manager.
Имаме нужда от още две библиотеки и те идват от Arduino Library Manager, който съдържа селекция от вградени библиотеки. Отидете на Инструменти… Управление на библиотеки…


Използвайте версия 1.0.3 на Adafruit INA219. Това работи.
И също

Използвайте версия 2.1.0 на WebГнезда от Markus Sattler, това е тествано и работи. Не съм тествал по-късни версии.
Добре, това са всички библиотеки (известни още като референции), от които IDE се нуждае, за да компилира този проект.
Стъпка 5. Изтеглете проекта ESP_DCC_Controller от GitHub и отворете в IDE.
Отидете на GitHub и изтеглете https://github.com/computski/ESP_DCC_controller
Кликнете върху зеления бутон „Код“ и изтеглете zip файла. След това отворете ципа file и преместете съдържанието му в папката Arduino. Преименувайте папката, за да премахнете края „-main“ от името на папката. Трябва да завършите с папка ESP_ DCC_ контролер във вашата папка Arduino. Той ще съдържа .INO file, различни .H и .CPP files и папка с данни.

Кликнете два пъти върху .INO file за да отворите проекта в Arduino IDE.
Преди да натиснем компилирането, трябва да конфигурираме според вашите изисквания...
Стъпка 6. Задайте вашите изисквания в Global. ч
Този проект може да поддържа nodeMCU или D1R1 на WeMo и също така може да поддържа редица различни опции за захранваща платка (моторен щит), плюс това може да поддържа устройства на I2C шина, като текущи монитор, LCD дисплей и клавиатура. И накрая може да поддържа и джогинг (въртящ се енкодер). Най-елементарната конструкция, която можете да направите, е моторен щит D1R1 и L298 на WeMo.
Обърнете внимание, че най-лесният начин да деактивирате опция е да добавите малка буква n пред нейното име в израза #define.
#define nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#дефинирай WEMOS_D1R1_AND_L298_ЩИТ
Напримерample, по-горе NODEMCU_OPTION3 е деактивиран с n, същото за nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD е активната опция и това ще накара компилатора да използва конфигурацията за това, както е посочено по-долу.
За да преминете през тази конфигурация:
#elif дефинирана(WEMOS_D1R1_AND_L298_SHIELD)
/*Wemos D1-R1 подреден с L298 щит, имайте предвид, че D1-R2 е по-нов модел с различни разводки*/
/*Отрежете джъмперите BRAKE на щита L298. Те не са задължителни и не искаме да се управляват от I2C щифтовете, тъй като ще повредят DCC сигнала.
Платката има Arduino форм фактор, щифтовете са както следва
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 сърдечен ритъм и бутон за джоггуел (активен hi)
D3 GPIO5 DCC активиране (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC сигнал (реж.)
D6 GPIO12 DCC сигнал (реж.)
D7 GPIO13 DCC активиране (pwm)
D8 GPIO0 SDA, с 12k pullup
D9 GPIO2 SCL, с 12k pullup
D10 GPIO15 Jog2
горното са бележки за хора, ви позволяват да знаете кои ESP GPIO кои функции ще изпълняват. Имайте предвид, че Съпоставянията на Arduino D1-D10 към GPIO са различни от съпоставянията на възел MCU D1-D10 към GPIO */
#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //когато използвате A и B паралелно (2.36 за съвпадение на мултицет RMS)
Ще използваме AD на ESP, а не външно I2C устройство за наблюдение на ток, като например INA219 disable
това с n USE_ ANALOG_ MEASUREMENT, ако искате да използвате INA219
#define PIN_HEARTBEAT 16 //и бутон за бягащо колело
#define 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 []. Те се дефинират като макроси, а обратната наклонена черта е маркер за продължение на реда.
#define PIN_SCL 2 //12k изтегляне
#define PIN_SDA 0 //12k изтегляне
#define PIN_JOG1 4
#define PIN_JOG2 15 //12k падащо меню
Дефинирайте щифтовете (GPIO), които задвижват I2C SCL/SDA и след това също входовете 1 и 2 на колелото
#define KEYPAD_ADDRESS 0x21 //pcf8574
Използва се за допълнителната матрична клавиатура 4 x 4, която се сканира с помощта на чип pcf8574
//addr, en, rw, rs, d4, d5, d6, d7, подсветка, полярност. ние използваме това като 4-битово устройство // моят pinout на дисплея е rs,rw,e,d0-d7. използват се само d<4-7>. <210> се появява, защото битове <012> са //картографирани като EN,RW,RS и трябва да ги пренаредим според действителния ред на хардуера, 3 се картографира //към подсветката. <4-7> се появяват в този ред на раницата и на дисплея.
#define BOOTUP_LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, ПОЛОЖИТЕЛЕН); //Раница YwRobot
Използва се за дефиниране и конфигуриране на I2C раницата, която задвижва LCD дисплея 1602 (по избор), това може да се конфигурира меко и има няколко налични раници, чиито конфигурации на щифтове варират.
#endif
Стъпка 7. Компилирайте и качете на дъската.
След като сте конфигурирали комбинираната платка, която възнамерявате да използвате, можете да компилирате проекта. Ако не възнамерявате да използвате 4×4 матрична клавиатура и LCD, няма проблем, оставете техните дефиниции, тъй като софтуерът очаква да ги конфигурира. Системата ще работи добре през WiFi без тях.
В IDE символът за отметка (проверка) всъщност е „Компилиране“. Щракнете върху това и ще видите различни съобщения да се появяват (при условие, че сте активирали Verbose компилация), докато системата компилира различните библиотеки и ги свързва заедно. Ако всичко работи добре и трябва, ако сте изпълнили точно всички стъпки по-горе, тогава трябва да видите съобщение за успех. Вече сте готови да натиснете бутона със стрелка надясно (качване), но преди да направите това, проверете дали сте избрали правилния COM порт за платката в менюто Инструменти.
След успешно качване (използвайте качествен USB кабел) трябва също да извикате Заредете менюто ESP8266 Sketch Data опция под Инструменти. Това ще постави съдържанието на папката с данни на устройството (всички HTML страници).
Ти си готов. Отворете серийния монитор, щракнете върху бутона за нулиране и трябва да видите зареждане на устройството и сканиране за I2C устройства. Вече можете да се свържете с него през Wi-Fi и той е готов за свързване към захранващата платка (моторен щит).
Документи / Ресурси
![]() |
Настройка на ARDUINO IDE за DCC контролер [pdfИнструкции IDE настройка за DCC контролер, IDE настройка, настройка за DCC контролер, DCC контролер IDE настройка, DCC контролер |




