Innehållsförteckning:

Enklaste Arduino VESC -skärm: 4 steg
Enklaste Arduino VESC -skärm: 4 steg

Video: Enklaste Arduino VESC -skärm: 4 steg

Video: Enklaste Arduino VESC -skärm: 4 steg
Video: Линейный лабораторный блок питания на операционных усилителях (PCBWay) 2024, Juli
Anonim
Enklaste Arduino VESC -skärm
Enklaste Arduino VESC -skärm

Hej, i detta projekt kommer vi att göra en enkel VESC -övervakning. Detta skulle vara användbart när du vill övervaka din temperatur och ta reda på problem som jag hade med min Vesc -överhettning (som jag fick reda på bara med den här bildskärmen) eller om du bara kan använda den för att fästa skärmen på ditt bräda eller styret och titta på din hastighet, körsträcka, batteriprocent och många fler. Så låt oss börja bygga!

Steg 1: Delar

Delar
Delar
Delar
Delar

1. - Arduino (jag använder UNO men du kan också använda alla andra brädor inklusive esp8266 eller esp32)

2. - några kablar för anslutning (försök hitta kontakt för din kontakt för vesc eftersom det blir mycket lättare att koppla ur en stor kontakt kontra en massa små kablar)

3. - display (jag använder 124 x 32 Oled men du kan använda vilken som helst annan genom att byta bibliotek)

4. - valfritt - brödbräda (det här är för personer som inte vill lödda eller för dem som vill göra det tillfälligt)

5. - USB -kabel för din arduino

Steg 2: Ansluta delar tillsammans

Koppla ihop delar
Koppla ihop delar
Koppla ihop delar
Koppla ihop delar
Koppla ihop delar
Koppla ihop delar

display: Vcc till 3,3V

Gnd till Gnd

Sck (eller scl) till A5

Sda till A4

VESC: 5V från Vesc till Vin på Arduino

Gnd till Gnd

RX på VESC till TX på Arduino

TX på VESC till RX på Arduino

Steg 3: Ladda upp och ändra koden enligt dina önskemål

KODA:

/** 2020 -kod av Lukas Janky VESC -skärm med Oled -display Om du behöver fråga mig något, kontakta mig på [email protected] eller på mina instruktioner. Jag hoppas att detta kommer att hjälpa 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 varvtal; flottörspänning; flytström; int kraft; flyta amphour; float tach; flottöravstånd; flottörhastighet; float watthour; float batpercentage;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

void setup () {

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

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

/ ** Definiera vilka portar som ska användas som UART*/ UART.setSerialPort (& Serial);

}

void loop () {

////////// Läs värden ////////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' är antalet polpar i motorn. De flesta motorer har 14 poler, därför 7 polspar spänning = (UART.data.inpVoltage); ström = (UART.data.avgInputCurrent); effekt = spänning*ström; amphour = (UART.data.ampHours); watthour = amphour*spänning; tach = (UART.data.tachometerAbs)/42; // '42' är antalet motorpoler multiplicerat med 3 distans = tak*3.142*(1/1609)*0.72*(16/185); // Motorvarvtal x Pi x (1/ meter i en mil eller km) x Hjuldiameter x (motorhjul/ hjulhjul) hastighet = varv/ min*3.142*(60/1609)*0.72*(16/185); // Motorvarvtal x Pi x (sekunder i en minut / meter i mil) x Hjuldiameter x (motorhjul / hjulhjul) batpercentage = ((spänning-38,4) / 12)*100; // ((Batterispänning - minsta spänning) / antal celler) x 100

}

////////// Filter //////////// // beräkna det uppskattade värdet med Kalman Filter float powerfiltered = Filter1.updateEstimate (power);

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

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 (aktuell); display.display ();

fördröjning (50);

}

Du kan ändra och visa valfritt värde från koden du vill ha

Steg 4: Kontrollera om det fungerar

Kontrollerar om det fungerar
Kontrollerar om det fungerar
Kontrollerar om det fungerar
Kontrollerar om det fungerar
Kontrollerar om det fungerar
Kontrollerar om det fungerar

Nu när du kontrollerar om det fungerar är det dags att lödda det och lägga till etiketter till dina värden som volt eller ampere. Lödda den på arduino nano så blir den mindre eller så kan du till och med överföra den med annan arduino till din fjärrkontroll. men för det finns många andra självstudier (sök överföringsvärden med arduino). Jag hoppas att detta hjälpte dig att lösa ditt problem eller göra en fin liten vesc -telemetri.

Rekommenderad: