Innholdsfortegnelse:

Enkleste Arduino VESC -skjerm: 4 trinn
Enkleste Arduino VESC -skjerm: 4 trinn

Video: Enkleste Arduino VESC -skjerm: 4 trinn

Video: Enkleste Arduino VESC -skjerm: 4 trinn
Video: Массимо Банци: Как Arduino пробуждает воображение 2024, Juli
Anonim
Enkleste Arduino VESC -skjerm
Enkleste Arduino VESC -skjerm

Hei, i dette prosjektet vil vi lage enkel VESC -skjerm. Dette ville være nyttig når du vil overvåke temperaturen din og finne ut problemer som jeg hadde med min Vesc -overoppheting (som jeg fant ut bare med denne skjermen) eller du kan bruke den bare til å feste skjermen til brettet eller styret og se hastigheten din, kjørelengde, batteriprosent og mange flere. Så la oss begynne å bygge!

Trinn 1: Deler

Deler
Deler
Deler
Deler

1. - Arduino (jeg bruker UNO, men du kan også bruke hvilket som helst annet brett inkludert esp8266 eller esp32)

2. - noen kabler for tilkobling (prøv å finne kontakten for kontakten din for vesc fordi det vil være mye lettere å koble fra en stor kontakt vs. mange små kabler)

3. - display (jeg bruker 124 x 32 Oled, men du kan bruke hvilken som helst annen ved å endre bibliotek)

4. - valgfritt - brødbrett (dette er for folk som ikke vil lodde eller for de som ønsker å gjøre det midlertidig)

5. - USB -kabel for din arduino

Trinn 2: Koble deler sammen

Koble deler sammen
Koble deler sammen
Koble deler sammen
Koble deler sammen
Koble deler sammen
Koble deler sammen

display: Vcc til 3,3V

Gnd til Gnd

Sck (eller scl) til A5

Sda til A4

VESC: 5V fra Vesc til Vin på Arduino

Gnd til Gnd

RX på VESC til TX på Arduino

TX på VESC til RX på Arduino

Trinn 3: Last opp og endre koden til din preferanse

KODE:

/** 2020 -kode av Lukas Janky VESC -skjerm med Oled -skjerm Hvis du trenger å spørre meg om noe, kan du kontakte meg på [email protected] eller på instruktørene mine. Jeg håper at dette vil hjelpe deg.

*/

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

VescUart UART;

int rpm; flytespenning; flyte strøm; int makt; float amphour; flyte tach; flyte avstand; flytehastighet; float watthour; float batpercentage;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

ugyldig oppsett () {

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

/ ** Oppsett UART -port (Serial1 på Atmega32u4)*/ // Serial1.begin (19200); mens (! Seriell) {;}

/ ** Definer hvilke porter som skal brukes som UART*/ UART.setSerialPort (& Serial);

}

void loop () {

////////// Les verdier ////////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' er antall polpar i motoren. De fleste motorer har 14 poler, derfor 7 polspar spenning = (UART.data.inpVoltage); current = (UART.data.avgInputCurrent); strøm = spenning*strøm; amphour = (UART.data.ampHours); watt = amphour*spenning; tach = (UART.data.tachometerAbs)/42; // '42' er antall motorpoler multiplisert med 3 avstand = tach*3.142*(1/1609)*0.72*(16/185); // Motor RPM x Pi x (1/ meter i en mil eller km) x Hjuldiameter x (motorhjul/ hjulskive) hastighet = o/ min*3.142*(60/1609)*0.72*(16/185); // Motor RPM x Pi x (sekunder i minutt / meter i mil) x Hjuldiameter x (motorhjul / trinse) batpercent = ((spenning-38,4) / 12)*100; // ((Batterispenning - minimumsspenning) / antall celler) x 100

}

////////// Filter //////////// // beregne estimert verdi med Kalman Filter float powerfiltered = Filter1.updateEstimate (power);

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

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); display.print (strøm);

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

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (nåværende); display.display ();

forsinkelse (50);

}

Du kan endre og vise hvilken som helst verdi fra koden du ønsker

Trinn 4: Kontroller om det fungerer

Sjekker om det fungerer
Sjekker om det fungerer
Sjekker om det fungerer
Sjekker om det fungerer
Sjekker om det fungerer
Sjekker om det fungerer

Når du sjekker om det fungerer, er det på tide å lodde det og legge til etiketter i verdiene dine som volt eller ampere. Lodd den på arduino nano, så den blir mindre, eller du kan til og med overføre den med annen arduino til fjernkontrollen. men for det er mange andre opplæringsprogrammer (søk overføringsverdier med arduino). Jeg håper at dette hjalp deg med å løse problemet ditt eller lage fin liten vesc -telemetri.

Anbefalt: