ARDUINO IDE ตั้งค่าสำหรับคอนโทรลเลอร์ DCC
การตั้งค่า Arduino IDE สำหรับคอนโทรลเลอร์ DCC
ขั้นตอนที่ 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
ทำเครื่องหมายในช่องที่ระบุว่า Show Verbose ระหว่างการรวบรวม สิ่งนี้จะให้ข้อมูลเพิ่มเติมแก่เราหากมีบางอย่างล้มเหลวระหว่างการรวบรวม
โปรดทราบว่าบรรทัดด้านบนเพิ่มการรองรับทั้งอุปกรณ์ esp8266 และ esp32 ที่ใหม่กว่า สตริง json ทั้งสองรายการคั่นด้วยเครื่องหมายจุลภาค
ตอนนี้เลือกบอร์ด เวอร์ชั่น 2.7.4 จากผู้จัดการบอร์ด
ติดตั้งเวอร์ชัน 2.7.4 มันได้ผล เวอร์ชัน 3.0.0 และสูงกว่าใช้ไม่ได้กับโปรเจ็กต์นี้ ตอนนี้ กลับมาในเมนูเครื่องมือ เลือกบอร์ดที่คุณจะใช้ สำหรับโปรเจ็กต์นี้ จะเป็น nodeMCU 1.0 หรือ WeMos D1R1
ที่นี่เราเลือก WeMos D1R1 (เปลี่ยนจากนาโน)
ขั้นตอนที่ 2 การตั้งค่าสภาพแวดล้อม IDE โหลด Add-in อัปโหลดข้อมูลร่าง ESP8266
เราจำเป็นต้องโหลด Add-in นี้เพื่อให้เราสามารถเผยแพร่ (ใส่) หน้า HTML และอื่น ๆ fileบนอุปกรณ์ 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/libraries
หากชื่อโฟลเดอร์ลงท้ายด้วย "-master" ให้เปลี่ยนชื่อเป็นลบ "-master" ออกจากส่วนท้าย
เช่นจากการดาวน์โหลด
เปิด .zip สำหรับ ESPAsyncTCP-master และลากโฟลเดอร์ ESPAsyncTCP-master จากภายในนี้ไปยัง Arduino/Libraries
บันทึก: Arduino/libraries ไม่สามารถใช้เวอร์ชัน .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 ซึ่งมีห้องสมุดในตัวให้เลือกมากมาย ไปที่เครื่องมือ… จัดการไลบรารี…
ใช้ Adafruit INA1.0.3 เวอร์ชัน 219 มันได้ผล
และยังมี
ใช้เวอร์ชัน 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 และแผงปุ่มกด และสุดท้ายก็สามารถรองรับ jogwheel (ตัวเข้ารหัสแบบหมุน) ได้ด้วย โครงสร้างพื้นฐานที่สุดที่คุณสามารถทำได้คือเกราะป้องกันมอเตอร์ D1R1 และ L298 ของ WeMo
โปรดทราบว่าวิธีที่ง่ายที่สุดในการปิดใช้งานตัวเลือกคือเพิ่มตัวพิมพ์เล็ก n หน้าชื่อในคำสั่ง #define
#กำหนด 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 เป็นรุ่นใหม่กว่าที่มี pinout ที่แตกต่างกัน*/
/*ตัดจัมเปอร์ BRAKE บนชีลด์ L298 สิ่งเหล่านี้ไม่จำเป็นและเราไม่ต้องการให้พวกมันขับเคลื่อนด้วยพิน I2C เนื่องจากจะทำให้สัญญาณ DCC เสียหาย
บอร์ดมีฟอร์มแฟคเตอร์ Arduino โดยมีพินดังนี้
D0 GPIO3 RX
D1 GPIO1 เท็กซัส
การเต้นของหัวใจ D2 GPIO16 และปุ่มกด jogwheel (ไฮใช้งาน)
เปิดใช้งาน 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
#define ANALOG_SCALING 3.9 // เมื่อใช้ A และ B ขนานกัน (2.36 เพื่อให้ตรงกับมัลติมิเตอร์ RMS)
เราจะใช้ AD บน ESP และไม่ใช่อุปกรณ์ตรวจสอบกระแส I2C ภายนอก เช่น การปิดใช้งาน INA219
สิ่งนี้ด้วย USE_ ANALOG_ MEASUREMENT หากคุณต้องการใช้ INA219
#define PIN_HEARBEAT 16 // และปุ่มกด jogwheel
#กำหนด 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
#กำหนด PIN_SDA 0 //ดึงขึ้น 12k
#กำหนด PIN_JOG1 4
#define PIN_JOG2 15 //ดึงลง 12k
กำหนดพิน (GPIO) ที่ขับเคลื่อน I2C SCL/SDA จากนั้น jogwheel จะเป็นอินพุต 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 จอแอลซีดี (0x27, 2, 1, 0, 4, 5, 6, 7, 3, บวก); //กระเป๋าเป้ YwRobot
ใช้เพื่อกำหนดและกำหนดค่ากระเป๋าเป้ I2C ที่ขับเคลื่อนจอแสดงผล LCD 1602 (อุปกรณ์เสริม) สามารถกำหนดค่าได้แบบนุ่มนวล และมีกระเป๋าเป้หลายแบบให้เลือกซึ่งมีการกำหนดค่าพินที่แตกต่างกัน
#สิ้นสุด
ขั้นตอนที่ 7 รวบรวมและอัพโหลดขึ้นบอร์ด
ตอนนี้คุณได้กำหนดค่าคอมโบบอร์ดที่คุณต้องการใช้แล้ว คุณสามารถคอมไพล์โปรเจ็กต์ได้ หากคุณไม่ต้องการใช้แผงปุ่มกดเมทริกซ์ 4×4 และ LCD ก็ไม่มีปัญหา ให้คงคำจำกัดความไว้ตามที่ซอฟต์แวร์คาดว่าจะกำหนดค่า ระบบจะทำงานได้ดีผ่าน WiFi หากไม่มี
บน IDE สัญลักษณ์ขีด (ตรวจสอบ) จริงๆ แล้วคือ "คอมไพล์" คลิกที่นี่แล้วคุณจะเห็นข้อความต่างๆ ปรากฏขึ้น (หากคุณเปิดใช้งานการคอมไพล์ Verbose) ขณะที่ระบบรวบรวมไลบรารีต่างๆ และเชื่อมโยงเข้าด้วยกัน หากทุกอย่างทำงานได้ดี และหากคุณทำตามขั้นตอนทั้งหมดข้างต้นทุกประการ คุณจะเห็นข้อความแสดงความสำเร็จปรากฏขึ้น ตอนนี้คุณพร้อมที่จะกดปุ่มลูกศรขวา (อัพโหลด) แล้ว แต่ก่อนที่คุณจะดำเนินการนี้ ตรวจสอบให้แน่ใจว่าคุณได้เลือกพอร์ต COM ที่ถูกต้องสำหรับบอร์ดภายใต้เมนูเครื่องมือ
หลังจากอัปโหลดสำเร็จ (ใช้สาย USB คุณภาพดี) คุณต้องเรียกใช้ไฟล์ โหลดเมนูข้อมูลร่าง ESP8266 ตัวเลือกภายใต้เครื่องมือ สิ่งนี้จะใส่เนื้อหาของโฟลเดอร์ข้อมูลลงในอุปกรณ์ (หน้า HTML ทั้งหมด)
คุณทำเสร็จแล้ว เปิดจอภาพแบบอนุกรม คลิกปุ่มรีเซ็ต แล้วคุณจะเห็นอุปกรณ์บู๊ตและสแกนหาอุปกรณ์ I2C ตอนนี้คุณสามารถเชื่อมต่อผ่าน Wifi ได้แล้ว และพร้อมที่จะต่อเข้ากับแผงจ่ายไฟ (แผงป้องกันมอเตอร์)
เอกสาร / แหล่งข้อมูล
![]() |
ARDUINO IDE ตั้งค่าสำหรับคอนโทรลเลอร์ DCC [พีดีเอฟ] คำแนะนำ การตั้งค่า IDE สำหรับตัวควบคุม DCC, การตั้งค่า IDE, การตั้งค่าสำหรับตัวควบคุม DCC, การตั้งค่า IDE ของตัวควบคุม DCC, ตัวควบคุม DCC |