ARDUINO IDE Opset foar DCC Controller 

ARDUINO IDE Logo

Arduino IDE opset foar DCC controller

Stap 1. IDE omjouwing opset. Laad de ESP-boards.

As jo ​​​​de Arduino IDE foar it earst ynstalleare, stipet it allinich op ARM basearre boards. Wy moatte stipe tafoegje foar ESP-basearre boards. Navigearje nei File… Foarkarren

IDE-omjouwing opset. Laad de ESP-boards
IDE-omjouwing opset. Laad de ESP-boards

Typ dizze rigel hjirûnder yn 'e Oanfoljende Boards Manager URLS box. Tink derom dat der ûnderstreken yn binne, gjin spaasjes.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Kontrolearje ek it fakje dat seit Verbose sjen litte tidens kompilaasje. Dit jout ús mear ynformaasje as der wat mislearret tidens de kompilaasje.

Tink derom dat de line hjirboppe stipe tafoeget foar sawol esp8266-apparaten as de nijere esp32. De twa json-strings wurde skieden troch in komma.
Selektearje no board ferzje 2.7.4 fan board manager

Arduino IDE opset foar DCC controller

Ynstallearje ferzje 2.7.4. Dit wurket. Ferzje 3.0.0 en heger wurket net foar dit projekt. No, werom yn it menu Tools, selektearje it boerd dat jo sille brûke. Foar dit projekt sil it in nodeMCU 1.0 wêze as in WeMos D1R1

Arduino IDE opset foar DCC controller

Hjir selektearje wy de WeMos D1R1. (feroarje dit fan 'e Nano)

Stap 2. IDE omjouwing opset. Laad ESP8266 Sketch Data Upload add-in.

Wy moatte dizze tafoeging laden om ús te publisearjen (sette) HTML-siden en oare files op it ESP-apparaat. Dizze libje yn 'e gegevensmap yn jo projektmap https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Gean nei de URL boppe en download ESP8266FS-0.5.0.zip.
Meitsje in ark ark yn jo Arduino map. Unzip de ynhâld fan 'e zip file nei dizze ark ark. Jo moatte einigje mei dit;

Arduino IDE opset foar DCC controller

En in nije menu-opsje sil ferskine ûnder Tools ...

Arduino IDE opset foar DCC controller

As jo ​​​​dizze menu-opsje oproppe, sil de IDE de ynhâld fan 'e gegevensmap oplade nei it boerd. Ok, dat is de IDE-omjouwing ynsteld foar algemien ESP8266-gebrûk, no moatte wy wat biblioteken tafoegje oan 'e Arduino / Libraries-map foar dit spesifike projekt.

Stap 3. Download biblioteken en manuell ynstallearje.

Wy moatte dizze biblioteken downloade fan Github; https://github.com/me-no-dev/ESPAsyncTCP

Arduino IDE opset foar DCC controller

Klikje op koade, en download dan zip. It sil gean nei jo download map. Gean nei downloads, fyn de zip, iepenje it en sleep de ynhâld map "ESPAsyncTCP" nei Arduino / bibleteken.
As de mapnamme einiget mei "-master", omneame it dan om "-master" fan 'e ein te ferwiderjen.
ie út downloads

Arduino IDE opset foar DCC controller

Iepenje de .zip foar ESPAsyncTCP-master, en sleep de map ESPAsyncTCP-master fan binnen dit nei Arduino/Libraries

Arduino IDE opset foar DCC controller

Noat: Arduino / biblioteken kinne net brûke de .zip ferzje, jo moatte unzip (slepe) de winske map oer. Wy moatte ek https://github.com/fmalpartida/New-LiquidCrystal
Download de zip en sleep dan de ynhâld nei Arduino / bibleteken en ferwiderje -master-ein.

En as lêste, wy moatte ArduinoJson-5.13.5.zip út de keppeling hjirûnder https://www.arduinolibraries.info/libraries/arduino-json

download en sleep dan de zip-ynhâld nei Arduino / bibleteken

Stap 4. Ynstallearje noch in pear biblioteken mei Arduino Library Manager.

Wy hawwe noch twa biblioteken nedich, en dizze komme fan 'e Arduino Library Manager dy't in seleksje fan ynboude biblioteken hat. Gean nei Tools… Biblioteken beheare…

Arduino IDE opset foar DCC controller
Arduino IDE opset foar DCC controller

Brûk ferzje 1.0.3 fan Adafruit INA219. Dit wurket. 

En ek

Arduino IDE opset foar DCC controller

Brûk ferzje 2.1.0 fan WebSockets fan Markus Sattler, dit wurdt hifke en wurket. Ik haw net hifke lettere ferzjes.
OK dus dat binne alle biblioteken (aka referinsjes) dy't de IDE nedich is om dit projekt te kompilearjen.

Stap 5. Download it ESP_DCC_Controller-projekt fan GitHub en iepenje yn IDE.

Gean nei GitHub en download https://github.com/computski/ESP_DCC_controller

Klikje op de griene knop "Koade", en download de zip. Dan iepenje de zip file en ferpleatse de ynhâld nei de Arduino-map. Omneame de map om de "-main" einiging op de mapnamme te ferwiderjen. Jo moatte einigje mei in map ESP_ DCC_ controller yn jo Arduino map. It sil befetsje in .INO file, ferskate .H en .CPP files en in gegevens map.

Arduino IDE opset foar DCC controller

Dûbelklik op de .INO file om it projekt te iepenjen yn 'e Arduino IDE.
Foardat wy kompilearje, moatte wy konfigurearje nei jo easken ...

Stap 6. Stel jo easken yn Global. h

Dit projekt kin de nodeMCU as WeMo's D1R1 stypje en it kin ek in oantal ferskillende opsjes foar powerboard (motorskild) stypje, plus it kin apparaten stypje op in I2C-bus lykas hjoeddeistige monitor, LCD-display en toetseboerd. En as lêste kin it ek stypje in jogwheel (rotary encoder). De meast basale bou dy't jo kinne dwaan is in WeMo's D1R1- en L298-motorskild.
Tink derom dat de maklikste manier om in opsje út te skeakeljen is in lytse letter n ta te foegjen foar syn namme yn 'e #define statement.
#define nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#definiearje WEMOS_D1R1_AND_L298_SHIELD
Bygelyksample, boppe NODEMCU_OPTION3 is útskeakele mei n, itselde foar nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD is de aktive opsje, en dit sil feroarsaakje dat de kompilator de konfiguraasje foar dit brûke as hjirûnder neamd.

Om troch dizze konfiguraasje te rinnen: 

#elif definiearre(WEMOS_D1R1_AND_L298_SHIELD)

/* Wemos D1-R1 steapele mei L298-skild, tink derom dat de D1-R2 in nijere model is mei ferskate pinouts */
/* Snij de BRAKE jumpers op it L298 skyld. Dizze binne net fereaske en wy wolle net dat se wurde oandreaun troch de I2C-pinnen, om't it it DCC-sinjaal sil korrumpeare.

It bestjoer hat in Arduino-foarmfaktor, de pinnen binne as folget
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 heartbeat en jogwheel drukknop (aktyf hi)
D3 GPIO5 DCC ynskeakelje (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC sinjaal (dir)
D6 GPIO12 DCC sinjaal (dir)
D7 GPIO13 DCC ynskeakelje (pwm)
D8 GPIO0 SDA, mei 12k pullup
D9 GPIO2 SCL, mei 12k pullup
D10 GPIO15 Jog2
de boppesteande binne notysjes foar minsken, lit jo witte hokker ESP GPIOs sille útfiere hokker funksjes. Tink derom dat de Arduino D1-D10 nei GPIO mappings binne oars as de knooppunt MCU D1-D10 nei GPIO mappings */

#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 // as A en B parallel wurde brûkt (2.36 om multimeter RMS te passen)
Wy sille de AD brûke op 'e ESP en net in ekstern I2C-streammonitorapparaat lykas de INA219 útskeakelje
dit mei n USE_ ANALOG_ MEASUREMENT as jo in INA219 wolle brûke

#define PIN_HEARTBEAT 16 // en jogwheel drukknop
#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};
Beskiedt hokker pinnen de DCC-sinjalen sille ride, wy hawwe twa kanalen, dy't yn-fase rinne, sadat wy se tegearre kinne mienskiplik. A-kanaal is dcc_ info [] en B-kanaal is dcc_ info A []. Dizze wurde definieare as makro's en de backslash is in line-ferfolchmarker.

#define PIN_SCL 2 //12k pullup
#define PIN_SDA 0 //12k pullup
#define PIN_JOG1 4
#define PIN_JOG2 15 //12k pulldown

Definiearje de pins (GPIO's) dy't de I2C SCL / SDA oandriuwe en dan ek de jogwheel-ynputen 1 en 2

#define KEYPAD_ADDRESS 0x21 //pcf8574

Wurdt brûkt foar it opsjonele 4 x 4 matrix-toetseboerd, dat wurdt skansearre mei in pcf8574-chip

//addr, en,rw,rs,d4,d5,d6,d7,backlight, polarity. wy brûke dit as in 4-bit apparaat //myn display pinout is rs,rw,e,d0-d7. allinnich d<4-7> wurde brûkt. <210> ferskynt om't bits <012> binne // yn kaart brocht as EN, RW, RS en wy moatte se opnij oarderje per werklike folchoarder op 'e hardware, 3 wurdt yn kaart brocht // nei it efterljocht. <4-7> ferskine yn dy folchoarder op 'e rêchsek en op it display.

#define BOOTUP_LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //YwRobot rêchsek

Wurdt brûkt om de I2C-rucksak te definiearjen en te konfigurearjen dy't de 1602 LCD-werjefte (opsjoneel) driuwt, dit is softconfigurable en d'r binne ferskate rêchsekjes beskikber wêrfan de pinkonfiguraasjes ferskille.
#endif

Stap 7. Kompilearje en upload nei it bestjoer.

No hawwe jo de boerdkombinaasje konfigureare dy't jo wolle brûke, kinne jo it projekt kompilearje. As jo ​​net fan doel te brûken de 4 × 4 matrix toetseboerd, en LCD, gjin probleem, lit yn harren definysjes as de software ferwachtet te konfigurearjen se. It systeem sil goed wurkje oer WiFi sûnder har.
Op de IDE is it tiksymboal (ferifiearje) eins "Kompilearje". Klikje hjirop en jo sille ferskate berjochten sjen ferskine (mits jo Verbose-kompilaasje ynskeakele hawwe) om't it systeem de ferskate bibleteken kompilearret en it allegear keppelet. As alles goed wurket, en it moat as jo alle stappen hjirboppe krekt folge hawwe, dan moatte jo in súksesberjocht sjen ferskine. Jo binne no ree om op de rjochter-pylk (upload) knop te slaan, mar foardat jo dit dogge, kontrolearje jo dat jo de juste COM-poarte foar it bestjoer selektearre hawwe ûnder it menu Tools.
Nei in suksesfolle upload (brûk in goede kwaliteit USB kabel) Jo moatte ek oproppe de Laad ESP8266 Sketch Data menu opsje ûnder Tools. Dit sil de ynhâld fan 'e gegevensmap op it apparaat pleatse (alle HTML-siden).
Do bist klear. Iepenje de seriële monitor, klikje op de resetknop en jo moatte it apparaat sjen litte boot en scan foar I2C-apparaten. Jo kinne no ferbine mei it oer Wifi, en it is ree om te bekabelen oan syn macht board (motor skyld).

Dokuminten / Resources

ARDUINO IDE Opset foar DCC Controller [pdfYnstruksjes
IDE-ynstelle foar DCC-kontrôler, IDE-ynstelle, ynstelle foar DCC-kontrôler, DCC-kontrôler IDE-ynstelle, DCC-kontrôler

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *