Përmbajtje:

Monitori më i lehtë Arduino VESC: 4 hapa
Monitori më i lehtë Arduino VESC: 4 hapa

Video: Monitori më i lehtë Arduino VESC: 4 hapa

Video: Monitori më i lehtë Arduino VESC: 4 hapa
Video: 🖥️Играю в Cyberpunk на Ардуино! 2024, Nëntor
Anonim
Monitori më i lehtë Arduino VESC
Monitori më i lehtë Arduino VESC

Pershendetje, në këtë projekt do të bëjmë një monitor të lehtë VESC. Kjo do të ishte e dobishme kur doni të monitoroni temperaturën tuaj dhe të zbuloni probleme si unë që kisha me mbinxehjen time Vesc (të cilën e zbulova vetëm me këtë monitor) ose mund ta përdorni thjesht për të bashkuar ekranin në tabelën ose timonet tuaja dhe të shikoni shpejtësinë tuaj, kilometrazhin, përqindjen e baterisë dhe shumë më tepër. Pra, le të hyjmë në ndërtim!

Hapi 1: Pjesët

Pjesët
Pjesët
Pjesët
Pjesët

1. - Arduino (Unë jam duke përdorur UNO, por ju gjithashtu mund të përdorni çdo bord tjetër përfshirë esp8266 ose esp32)

2. - disa kabllo për lidhje (përpiquni të gjeni lidhësin për lidhësin tuaj për vesc sepse do të jetë shumë më e lehtë të shkëputni 1 lidhës të madh kundrejt shumë kabllove të vegjël)

3. - ekrani (Unë jam duke përdorur 124 x 32 Oled, por ju mund të përdorni ndonjë tjetër duke ndryshuar bibliotekën)

4. - opsionale - bukë (kjo është për njerëzit që nuk duan të lidhin ose për ata që duan ta bëjnë atë përkohësisht)

5. - Kabllo USB për arduino tuaj

Hapi 2: Lidhja e Pjesëve së bashku

Lidhja e pjesëve së bashku
Lidhja e pjesëve së bashku
Lidhja e pjesëve së bashku
Lidhja e pjesëve së bashku
Lidhja e pjesëve së bashku
Lidhja e pjesëve së bashku

ekran: Vcc në 3.3V

Gnd tek Gnd

Sck (ose scl) në A5

Sda në A4

VESC: 5V nga Vesc në Vin në Arduino

Gnd tek Gnd

RX në VESC në TX në Arduino

TX në VESC në RX në Arduino

Hapi 3: Ngarkimi dhe Ndryshimi i Kodit sipas Preferencës suaj

KODI:

/** Kodi 2020 nga Lukas Janky VESC monitor me ekran Oled Nëse keni nevojë të më pyesni për ndonjë gjë, më kontaktoni në [email protected] ose në udhëzimet e mia. Shpresoj se kjo do t'ju ndihmojë.

*/

#include #include #includ #include #includ #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET 4 Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, & Wire,)

VescUart UART;

int rpm; tensioni notues; rryma notuese; fuqia int; noton amfur; float tach; distanca e notimit; shpejtësia e notimit; noton watthour; përqindja e batit përqark;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

void setup () {

Serial.filloj (115200); shfaqje.fillo (SSD1306_SWITCHCAPVCC, 0x3C); display.fillScreen (0); display.display ();

/ ** Konfiguro portën UART (Serial1 në Atmega32u4)*/ // Serial1.begin (19200); ndërsa (! Serial) {;}

/ ** Përcaktoni cilat porte të përdorni si UART*/ UART.setSerialPort (& Serial);

}

lak void () {

////////// Lexo vlerat /////////// nëse (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' është numri i çifteve të poleve në motor. Shumica e motorëve kanë 14 shtylla, pra 7 palë tension = = (UART.data.inpVoltage); aktuale = (UART.data.avgInputCurrent); fuqi = tension*rrymë; amfour = (UART.data.ampHours); watthour = amfour*tension; tach = (UART.data.tachometerAbs)/42; // '42' është numri i shtyllave motorike shumëzuar me 3 distanca = tach*3.142*(1/1609)*0.72*(16/185); // RPM motorike x Pi x (1/ metra në një milje ose km) x Diametri i rrotës x (rrotull motori/ rrota) shpejtësia = rpm*3.142*(60/1609)*0.72*(16/185); // RPM motorike x Pi x (sekonda në një minutë / metra në një milje) x Diametri i rrotës x (rrotull motori / rrota) përqindja e përqindjes = ((tension-38.4) / 12)*100; // ((Tensioni i baterisë - tension minimal) / numri i qelizave) x 100

}

////////// Filter ////////// // llogarit vlerën e vlerësuar me Kalman Filter float powerfiltered = Filter1.updateEstimate (fuqi);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); ekran.print (tension);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); ekran.print (fuqi);

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); ekran.print (rpm);

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); ekran.print (aktual); display.display ();

vonesë (50);

}

Ju mund të modifikoni dhe shfaqni çdo vlerë nga kodi që dëshironi

Hapi 4: Kontrolloni nëse funksionon

Kontrollimi nëse funksionon
Kontrollimi nëse funksionon
Kontrollimi nëse funksionon
Kontrollimi nëse funksionon
Kontrollimi nëse funksionon
Kontrollimi nëse funksionon

Tani kur kontrolloni nëse po punon është koha për ta bashkuar atë dhe shtuar etiketa në vlerat tuaja si Volt ose Amps. Ngjiteni atë në arduino nano kështu që do të jetë më i vogël ose madje mund ta transmetoni me arduino tjetër në telekomandën tuaj. por për këtë ka shumë mësime të tjera (kërkimi që transmeton vlera me arduino). Shpresoj se kjo ju ndihmoi në zgjidhjen e problemit tuaj ose në bërjen e një telemetrie të bukur vesc.

Recommended: