Indholdsfortegnelse:

Nemmeste Arduino VESC -skærm: 4 trin
Nemmeste Arduino VESC -skærm: 4 trin

Video: Nemmeste Arduino VESC -skærm: 4 trin

Video: Nemmeste Arduino VESC -skærm: 4 trin
Video: Nemmeste måde at spille simulator på!! 2024, Juli
Anonim
Nemmeste Arduino VESC -skærm
Nemmeste Arduino VESC -skærm

Hej, i dette projekt vil vi lave en nem VESC -skærm. Dette ville være nyttigt, når du vil overvåge din temperatur og finde ud af problemer, som jeg havde med min Vesc -overophedning (som jeg fandt ud af lige med denne skærm), eller du kan bruge den simpelthen til at fastgøre display til dit bord eller styr og se din hastighed, kilometertal, batteriprocent og mange flere. Så lad os gå i gang med at bygge!

Trin 1: Dele

Dele
Dele
Dele
Dele

1. - Arduino (jeg bruger UNO, men du kan også bruge ethvert andet bord inklusive esp8266 eller esp32)

2. - nogle kabler til tilslutning (prøv at finde stik til dit stik til vesc, fordi det vil være meget lettere at tage 1 stort stik ud mod mange små kabler)

3. - display (jeg bruger 124 x 32 Oled, men du kan bruge enhver anden ved at skifte bibliotek)

4. - valgfrit - brødbræt (dette er for folk, der ikke ønsker at lodde eller for dem, der ønsker at gøre det midlertidigt)

5. - USB -kabel til din arduino

Trin 2: Tilslutning af dele sammen

Tilslutning af dele sammen
Tilslutning af dele sammen
Tilslutning af dele sammen
Tilslutning af dele sammen
Tilslutning af dele sammen
Tilslutning af dele 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

Trin 3: Upload og ændring af koden til din præference

KODE:

/** 2020 -kode af Lukas Janky VESC -skærm med Oled -display Hvis du har brug for at spørge mig om noget, skal du kontakte mig på [email protected] eller på mine instruktører. Jeg håber, at dette vil hjælpe dig.

*/

#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; flyde spænding; flyde strøm; int magt; flyde amphour; flyde tach; flyde afstand; flydehastighed; flyde watthour; float batpercentage;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

ugyldig opsætning () {

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

/ ** Opsætning af UART -port (Serial1 på Atmega32u4)*/ // Serial1.begin (19200); mens (! Seriel) {;}

/ ** Definer hvilke porte der skal bruges som UART*/ UART.setSerialPort (& Serial);

}

void loop () {

////////// Læs værdier ////////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' er antallet af polpar i motoren. De fleste motorer har 14 poler, derfor er 7 polede par spænding = (UART.data.inpVoltage); nuværende = (UART.data.avgInputCurrent); strøm = spænding*strøm; amphour = (UART.data.ampHours); watthour = amphour*spænding; tach = (UART.data.tachometerAbs)/42; // '42' er antallet af motorpoler ganget med 3 distance = tak*3.142*(1/1609)*0.72*(16/185); // Motoromdrejningstal x Pi x (1/ meter i en kilometer eller km) x Hjuldiameter x (motorhjul/ remskive) hastighed = omdr./min*3.142*(60/1609)*0.72*(16/185); // Motor RPM x Pi x (sekunder i et minut / meter i en mile) x Hjuldiameter x (motorhjul / hjulskive) batpercentage = ((spænding-38,4) / 12)*100; // ((Batterispænding - minimumsspænding) / antal celler) x 100

}

////////// Filter //////////// // beregne den estimerede værdi med Kalman Filter float powerfiltered = Filter1.updateEstimate (power);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); display.print (spænding);

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 (nuværende); display.display ();

forsinkelse (50);

}

Du kan ændre og vise enhver værdi ud fra den ønskede kode

Trin 4: Kontroller, om det virker

Tjek om det virker
Tjek om det virker
Tjek om det virker
Tjek om det virker
Tjek om det virker
Tjek om det virker

Når du nu kontrollerer, om det virker, er det tid til at lodde det og tilføje etiketter til dine værdier som volt eller ampere. Lod det på arduino nano, så det bliver mindre, eller du kan endda overføre det med anden arduino til din fjernbetjening. men til det er mange andre selvstudier (søg transmitterende værdier med arduino). Jeg håber, at dette hjalp dig med at løse dit problem eller lave en fin lille vesc -telemetri.

Anbefalede: