Բովանդակություն:

Ամենահեշտ Arduino VESC մոնիտորը ՝ 4 քայլ
Ամենահեշտ Arduino VESC մոնիտորը ՝ 4 քայլ

Video: Ամենահեշտ Arduino VESC մոնիտորը ՝ 4 քայլ

Video: Ամենահեշտ Arduino VESC մոնիտորը ՝ 4 քայլ
Video: Clock Shield համար Arduino, հավաքում է իրեն ժամերին, ուրբաթօրյա DIY 2024, Նոյեմբեր
Anonim
Ամենահեշտ Arduino VESC մոնիտորը
Ամենահեշտ Arduino VESC մոնիտորը

Ողջու՜յն, այս նախագծում մենք կդարձնենք հեշտ VESC մոնիտոր: Սա օգտակար կլինի, երբ ցանկանում եք վերահսկել ձեր ջերմաստիճանը և պարզել այնպիսի խնդիրներ, ինչպիսին ես ունեի Vesc- ի գերտաքացման հետ (որը ես պարզեցի հենց այս մոնիտորի միջոցով) կամ կարող եք օգտագործել այն պարզապես ձեր տախտակին կամ ղեկին ցուցադրումը կցելու և ձեր արագությունը դիտելու համար:, վազքը, մարտկոցի տոկոսը և շատ ավելին: Այսպիսով, եկեք անցնենք շենքին:

Քայլ 1: Մասեր

Մասեր
Մասեր
Մասեր
Մասեր

1. - Arduino (ես օգտագործում եմ UNO, բայց կարող եք նաև օգտագործել ցանկացած այլ տախտակ, ներառյալ esp8266 կամ esp32)

2.

3. - էկրան (ես օգտագործում եմ 124 x 32 Oled, բայց դուք կարող եք օգտագործել ցանկացած այլ ՝ փոխելով գրադարանը)

4. - ըստ ցանկության - տախտակ (սա այն մարդկանց համար է, ովքեր չեն ցանկանում զոդել կամ նրանց համար, ովքեր ցանկանում են դա անել ժամանակավորապես)

5. - USB մալուխ ձեր arduino- ի համար

Քայլ 2: Միացրեք մասերը միասին

Մասերի միացում միասին
Մասերի միացում միասին
Մասերի միացում միասին
Մասերի միացում միասին
Մասերի միացում միասին
Մասերի միացում միասին

ցուցադրում ՝ Vcc մինչև 3.3V

Gnd to Gnd

Sck (կամ scl) դեպի A5

Sda դեպի A4

VESC ՝ 5V Vesc- ից Vin Arduino- ով

Gnd to Gnd

RX VESC- ից TX Arduino- ով

TX VESC- ից RX Arduino- ով

Քայլ 3: Վերբեռնեք և փոփոխեք ձեր նախընտրած ծածկագիրը

ԿՈԴ:

/** Lukas Janky VESC մոնիտորի 2020 թվականի ծածկագիր ՝ Oled էկրանով: Եթե ինձ որևէ բան պետք է հարցնեք, դիմեք ինձ [email protected] կամ իմ հրահանգների միջոցով: Հուսով եմ, որ սա կօգնի ձեզ:

*/

#ներառել #ներառել #ներառել #ներառել #ներառել #ներառել #ներառել #սահմանել ԷԿՐԻ_ԱIDՈՈ 128ԹՅՈ 128Ն 128 #սահմանել ԷԿՐԻ_ՀԻՍՏԸ 64 #սահմանել OLED_RESET 4 Adafruit_SSD1306 էկրանը (ԷԿՐԻ_ԼԱIDՈ,ԹՅՈՆ, ԷԿՐԱՆ_ԱEԻՆ, VescUart UART;

int rpm; բոց լարման; լողացող հոսանք; int իշխանություն; լողացող ամֆուր; float tach; բոց հեռավորություն; բոց արագություն; float watthour; բոց batpercentage;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

void setup () {

Serial.begin (115200); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.fillScreen (0); display.display ();

/ ** Կարգավորել UART նավահանգիստը (Serial1 Atmega32u4- ում)*/ // Serial1.begin (19200); մինչդեռ (! Սերիա) {;}

/ ** Սահմանել, թե որ նավահանգիստներն օգտագործել որպես UART*/ UART.setSerialPort (և սերիական);

}

դատարկ շրջան () {

/////////// Կարդալ արժեքները /////////// եթե (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // «7» -ը շարժիչի բևեռային զույգերի թիվն է: Շարժիչների մեծ մասն ունի 14 բևեռ, հետևաբար 7 բևեռ զույգ լարման = (UART.data.inpVoltage); ընթացիկ = (UART.data.avgInputCurrent); հզորություն = լարման*ընթացիկ; amphour = (UART.data.ampHours); watthour = ամֆուր*լարում; tach = (UART.data.tachometerAbs)/42; // «42» -ը շարժիչային բևեռների թիվն է ՝ բազմապատկած 3 հեռավորության վրա = tach*3.142*(1/1609)*0.72*(16/185); // Շարժիչ RPM x Pi x (1/ մետր մղոն կամ կմ) x Անիվի տրամագիծ x (շարժիչի ճախարակ/ անվասայլ) արագություն = պտույտ/ րոպե*3.142*(60/1609)*0.72*(16/185); // Շարժիչի RPM x Pi x (վայրկյան րոպեում / մետր մղոնում) x Անիվի տրամագիծ x (շարժիչի ճախարակ / անիվ) բատեկտոր = ((լարման -38.4) / 12)*100; // ((Մարտկոցի լարումը `նվազագույն լարումը) / բջիջների թիվը) x 100

}

////////// terտիչ ////////// // հաշվարկեք գնահատված արժեքը Kalman Filter float powerfiltered = Filter1.updateEstimate (հզորություն);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); ցուցադրում: տպագիր (լարման);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); ցուցադրում: տպում (ուժ);

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); ցուցադրում: տպել (rpm);

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (ընթացիկ); display.display ();

ուշացում (50);

}

Դուք կարող եք փոփոխել և ցուցադրել ցանկացած արժեք ձեր ուզած ծածկագրից:

Քայլ 4: Ստուգեք, արդյոք այն աշխատում է

Ստուգում, արդյոք այն աշխատում է
Ստուգում, արդյոք այն աշխատում է
Ստուգում, արդյոք այն աշխատում է
Ստուգում, արդյոք այն աշխատում է
Ստուգում, արդյոք այն աշխատում է
Ստուգում, արդյոք այն աշխատում է

Այժմ, երբ ստուգում եք, արդյոք այն աշխատում է, ժամանակն է այն զոդելու և պիտակներ ավելացնելու ձեր արժեքներին, ինչպիսիք են վոլտը կամ ամպերը: Sոդեք այն arduino nano- ի վրա, այնպես որ այն ավելի փոքր կլինի, կամ նույնիսկ կարող եք այն փոխանցել այլ arduino- ով ձեր հեռակառավարման վահանակին: բայց դրա համար կան բազմաթիվ այլ ձեռնարկներ (որոնումներ, որոնք փոխանցում են արժեքներ arduino- ով): Հուսով եմ, որ սա օգնեց ձեզ լուծել ձեր խնդիրը կամ պատրաստել գեղեցիկ փոքր հեռաչափություն:

Խորհուրդ ենք տալիս: