ARDUINO IDE Set Up para sa DCC Controller
Arduino IDE set-up para sa DCC controller
Hakbang 1. IDE environment set-up. I-load ang mga ESP board.
Sa una mong pag-install ng Arduino IDE, sinusuportahan lamang nito ang mga board na nakabatay sa ARM. Kailangan nating magdagdag ng suporta para sa mga board na nakabatay sa ESP. Mag-navigate sa File… Mga Kagustuhan
I-type ang linyang ito sa ibaba sa Additional Boards Manager URLS kahon. Tandaan na mayroong mga salungguhit dito, walang mga puwang. http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Lagyan din ng check ang kahon na nagsasabing Show Verbose sa panahon ng compilation. Nagbibigay ito sa amin ng higit pang impormasyon kung may mabibigo sa panahon ng compilation.
Tandaan na ang linya sa itaas ay nagdaragdag ng suporta para sa parehong esp8266 device at sa mas bagong esp32. Ang dalawang json string ay pinaghihiwalay ng kuwit.
Ngayon piliin ang board bersyon 2.7.4 mula sa board manager
I-install ang bersyon 2.7.4. Gumagana ito. Bersyon 3.0.0 at mas mataas ay hindi gumagana para sa proyektong ito. Ngayon, bumalik sa Tools menu, piliin ang board na iyong gagamitin. Para sa proyektong ito ito ay alinman sa isang nodeMCU 1.0 o isang WeMos D1R1
Dito pipiliin namin ang WeMos D1R1. (pagbabago nito mula sa Nano)
Hakbang 2. IDE environment set-up. I-load ang ESP8266 Sketch Data Upload add-in.
Kailangan naming i-load ang add-in na ito upang payagan kaming mag-publish (maglagay) ng mga HTML na pahina at iba pa files sa ESP device. Nakatira ang mga ito sa folder ng data sa loob ng folder ng iyong proyekto https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Pumunta sa URL sa itaas at i-download ang ESP8266FS-0.5.0.zip.
Gumawa ng folder ng Tools sa loob ng iyong Arduino folder. I-unzip ang mga nilalaman ng zip file sa folder ng Tools na ito. Dapat mong tapusin ito;
At may lalabas na bagong opsyon sa menu sa ilalim ng Tools...
Kung gagamitin mo ang opsyon sa menu na iyon, ia-upload ng IDE ang mga nilalaman ng folder ng data sa board. Ok kaya iyon ang IDE environment na naka-set up para sa pangkalahatang paggamit ng ESP8266, ngayon kailangan nating magdagdag ng ilang mga aklatan sa Arduino/Libraries folder para sa partikular na proyektong ito.
Hakbang 3. Mag-download ng mga aklatan at manu-manong i-install.
Kailangan nating i-download ang mga aklatang ito mula sa Github; https://github.com/me-no-dev/ESPAsyncTCP
Mag-click sa code, at pagkatapos ay i-download ang zip. Mapupunta ito sa iyong folder ng mga download. Pumunta sa mga pag-download, hanapin ang zip, buksan ito at i-drag ang folder ng nilalaman na "ESPAsyncTCP" sa Arduino/mga aklatan.
Kung ang pangalan ng folder ay nagtatapos sa "-master", pagkatapos ay palitan ang pangalan nito upang alisin ang "-master" mula sa dulo.
ie mula sa mga pag-download
Buksan ang .zip para sa ESPAsyncTCP-master, at i-drag ang ESPAsyncTCP-master folder mula sa loob nito patungo sa Arduino/Libraries
Tandaan: Hindi magagamit ng Arduino/library ang .zip na bersyon, kailangan mong i-unzip (i-drag) ang gustong folder. Kailangan din natin https://github.com/fmalpartida/New-LiquidCrystal
I-download ang zip pagkatapos ay i-drag ang nilalaman nito sa Arduino/library at alisin ang -master na pagtatapos.
At sa wakas, kailangan namin ng ArduinoJson-5.13.5.zip mula sa link sa ibaba https://www.arduinolibraries.info/libraries/arduino-json
i-download at pagkatapos ay i-drag ang mga nilalaman ng zip sa Arduino/library
Hakbang 4. Mag-install ng ilang higit pang mga aklatan gamit ang Arduino Library Manager.
Kailangan namin ng dalawa pang aklatan, at ang mga ito ay nagmula sa Arduino Library Manager na nagtataglay ng seleksyon ng mga built-in na aklatan. Pumunta sa Tools... Pamahalaan ang Mga Aklatan...
Gamitin ang bersyon 1.0.3 ng Adafruit INA219. Gumagana ito.
At gayundin
Gamitin ang bersyon 2.1.0 ng WebMga socket mula kay Markus Sattler, ito ay nasubok at gumagana. Hindi ko pa nasubukan ang mga susunod na bersyon.
OK kaya iyon ang lahat ng mga aklatan (aka mga sanggunian) na kailangan ng IDE upang i-compile ang proyektong ito.
Hakbang 5. I-download ang proyektong ESP_DCC_Controller mula sa GitHub at buksan sa IDE.
Pumunta sa GitHub at i-download https://github.com/computski/ESP_DCC_controller
Mag-click sa berdeng "Code" na buton, at i-download ang zip. Pagkatapos ay buksan ang zip file at ilipat ang mga nilalaman nito sa folder ng Arduino. Palitan ang pangalan ng folder upang alisin ang "-main" na nagtatapos sa pangalan ng folder. Dapat kang magkaroon ng isang folder na ESP_ DCC_ controller sa iyong Arduino folder. Maglalaman ito ng isang .INO file, iba't ibang .H at .CPP files at isang folder ng data.
I-double click ang .INO file upang buksan ang proyekto sa Arduino IDE.
Bago namin pindutin ang compile, kailangan naming i-configure ang iyong mga kinakailangan...
Hakbang 6. Itakda ang iyong mga kinakailangan sa Global. h
Maaaring suportahan ng proyektong ito ang nodeMCU o D1R1 ng WeMo at maaari rin itong suportahan ang ilang iba't ibang opsyon sa power board (motor shield), at maaari nitong suportahan ang mga device sa isang I2C bus gaya ng kasalukuyang monitor, LCD display at keypad. At sa wakas maaari din itong suportahan ang isang jogwheel (rotary encoder). Ang pinakapangunahing build na maaari mong gawin ay ang D1R1 at L298 motor shield ng WeMo.
Tandaan na ang pinakamadaling paraan upang hindi paganahin ang isang opsyon ay magdagdag ng lowercase n sa harap ng pangalan nito sa #define na pahayag.
#define nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#define WEMOS_D1R1_AND_L298_SHIELD
Para kay example, sa itaas NODEMCU_OPTION3 ay hindi pinagana na may n, pareho para sa nBOARD_ESP12_SHIELD. Ang WEMOS_D1R1_AND_L298_SHIELD ay ang aktibong opsyon, at magiging sanhi ito ng compiler na gamitin ang configuration para dito bilang nakalista sa ibaba.
Upang dumaan sa config na ito:
#elif tinukoy(WEMOS_D1R1_AND_L298_SHIELD)
/*Wemos D1-R1 na nakasalansan ng L298 shield, tandaan na ang D1-R2 ay isang mas bagong modelo na may iba't ibang mga pinout*/
/*Putulin ang BRAKE jumper sa L298 shield. Ang mga ito ay hindi kinakailangan at hindi namin nais na ang mga ito ay hinihimok ng mga I2C pin dahil masisira nito ang signal ng DCC.
Ang board ay may Arduino form factor, ang mga pin ay ang mga sumusunod
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 heartbeat at jogwheel pushbutton (aktibong hi)
D3 GPIO5 DCC enable (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC signal (dir)
D6 GPIO12 DCC signal (dir)
D7 GPIO13 DCC enable (pwm)
D8 GPIO0 SDA, na may 12k pullup
D9 GPIO2 SCL, na may 12k pullup
D10 GPIO15 Jog2
ang nasa itaas ay mga tala para sa mga tao, nagpapaalam sa iyo kung aling mga ESP GPIO ang gaganap kung aling mga function. Tandaan na ang Ang Arduino D1-D10 hanggang GPIO mappings ay iba sa node MCU D1-D10 to GPIO mappings */
#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //kapag gumagamit ng A at B nang magkatulad (2.36 upang tumugma sa multimeter RMS)
Gagamitin namin ang AD sa ESP at hindi isang panlabas na I2C kasalukuyang monitoring device gaya ng INA219 disable.
ito ay may n USE_ ANALOG_ MEASUREMENT kung gusto mong gumamit ng INA219
#define PIN_HEARTBEAT 16 //at jogwheel pushbutton
#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 };
Tinutukoy kung aling mga pin ang magdadala sa mga signal ng DCC, mayroon kaming dalawang channel, na tumatakbo nang in-phase upang maisama namin ang mga ito. Ang A-channel ay dcc_ info [] at ang B-channel ay dcc_ info A []. Ang mga ito ay tinukoy bilang mga macro at ang backslash ay isang line-continuation marker.
#define PIN_SCL 2 //12k pullup
#define PIN_SDA 0 //12k pullup
#define PIN_JOG1 4
#define PIN_JOG2 15 //12k pulldown
Tukuyin ang mga pin (GPIOs) na nagtutulak sa I2C SCL/SDA at pagkatapos din ang mga input ng jogwheel 1 at 2
#define KEYPAD_ADDRESS 0x21 //pcf8574
Ginagamit para sa opsyonal na 4 x 4 matrix keypad, na na-scan gamit ang pcf8574 chip
//addr, en,rw,rs,d4,d5,d6,d7,backlight, polarity. ginagamit namin ito bilang isang 4 bit device //ang aking display pinout ay rs,rw,e,d0-d7. d<4-7> lang ang ginagamit. Lumalabas ang <210> dahil ang mga bit <012> ay //nakamapa bilang EN,RW,RS at kailangan nating ayusin muli ang mga ito sa bawat aktwal na pagkakasunod-sunod sa hardware, ang 3 ay nakamapang //sa backlight. Lumilitaw ang <4-7> sa ganoong pagkakasunud-sunod sa backpack at sa display.
#define BOOTUP_LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //YwRobot backpack
Ginagamit upang tukuyin at i-configure ang I2C backpack na nagtutulak sa 1602 LCD display (opsyonal), ito ay softconfigurable at mayroong ilang mga backpack na magagamit na ang mga configuration ng pin ay nag-iiba.
#endif
Hakbang 7. Mag-compile at mag-upload sa board.
Ngayon ay na-configure mo na ang board combo na balak mong gamitin, maaari mong i-compile ang proyekto. Kung hindi mo nilalayong gamitin ang 4×4 matrix keypad, at LCD, walang problema, iwanan ang kanilang mga kahulugan habang inaasahan ng software na i-configure ang mga ito. Ang system ay gagana nang maayos sa WiFi nang wala ang mga ito.
Sa IDE, ang simbolo ng tik (i-verify) ay talagang "Mag-compile". I-click ito at makikita mo ang iba't ibang mga mensahe na lilitaw (sa kondisyon na pinagana mo ang Verbose compilation) habang pinagsama-sama ng system ang iba't ibang mga library at iniuugnay ang lahat ng ito. Kung gumagana nang maayos ang lahat, at dapat kung sinunod mo ang lahat ng hakbang sa itaas nang eksakto, dapat mong makita ang isang mensahe ng tagumpay na lalabas. Handa ka na ngayong pindutin ang right-arrow (upload) na button, ngunit bago mo gawin ito, suriin kung napili mo ang tamang COM port para sa board sa ilalim ng Tools menu.
Pagkatapos ng matagumpay na pag-upload (gumamit ng magandang kalidad na USB cable) kailangan mo ring i-invoke ang I-load ang menu ng ESP8266 Sketch Data opsyon sa ilalim ng Tools. Ilalagay nito ang mga nilalaman ng folder ng data sa device (lahat ng mga pahina ng HTML).
Tapos ka na. Buksan ang serial monitor, i-click ang reset button at dapat mong makita ang boot ng device at mag-scan para sa mga I2C device. Maaari ka na ngayong kumonekta dito sa pamamagitan ng Wifi, at handa na itong mag-wire hanggang sa power board nito (motor shield).
Mga Dokumento / Mga Mapagkukunan
![]() |
ARDUINO IDE Set Up para sa DCC Controller [pdf] Mga tagubilin IDE Set Up para sa DCC Controller, IDE Set Up, Set Up para sa DCC Controller, DCC Controller IDE Set Up, DCC Controller |