Table des matières:

Moniteur Arduino VESC le plus simple : 4 étapes
Moniteur Arduino VESC le plus simple : 4 étapes

Vidéo: Moniteur Arduino VESC le plus simple : 4 étapes

Vidéo: Moniteur Arduino VESC le plus simple : 4 étapes
Vidéo: Tutoriel du contrôleur de vitesse de moteur 2024, Juillet
Anonim
Moniteur Arduino VESC le plus simple
Moniteur Arduino VESC le plus simple

Salut, dans ce projet, nous allons faire un moniteur VESC facile. Cela serait utile lorsque vous souhaitez surveiller votre température et découvrir des problèmes comme j'ai eu avec ma surchauffe Vesc (que j'ai découvert juste avec ce moniteur) ou vous pouvez l'utiliser simplement pour fixer l'écran à votre planche ou à votre guidon et surveiller votre vitesse, kilométrage, pourcentage de batterie et bien d'autres. Passons donc à la construction !

Étape 1: Pièces

les pièces
les pièces
les pièces
les pièces

1. - Arduino (j'utilise UNO mais vous pouvez également utiliser n'importe quelle autre carte, y compris esp8266 ou esp32)

2. - quelques câbles pour la connexion (essayez de trouver un connecteur pour votre connecteur pour vesc car il sera beaucoup plus facile de débrancher 1 gros connecteur vs beaucoup de petits câbles)

3. - affichage (j'utilise 124 x 32 Oled mais vous pouvez en utiliser un autre en changeant de bibliothèque)

4. - facultatif - planche à pain (c'est pour les personnes qui ne veulent pas souder ou pour celles qui veulent le faire temporairement)

5. - Câble USB pour votre arduino

Étape 2: Connecter les pièces ensemble

Connecter des pièces ensemble
Connecter des pièces ensemble
Connecter des pièces ensemble
Connecter des pièces ensemble
Connecter des pièces ensemble
Connecter des pièces ensemble

affichage: Vcc à 3,3 V

Gnd à Gnd

Sck (ou scl) à A5

Sda vers A4

VESC: 5V de Vesc à Vin sur Arduino

Gnd à Gnd

RX sur VESC vers TX sur Arduino

TX sur VESC vers RX sur Arduino

Étape 3: Téléchargement et modification du code selon vos préférences

CODE:

/** Code 2020 par moniteur Lukas Janky VESC avec écran Oled Si vous avez besoin de me demander quelque chose, contactez-moi sur [email protected] ou sur mes instructables. J'espère que cela vous aidera.

*/

#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;

tr/min int; tension d'entretien; courant de flottement; puissance int; ampère-heure de flotteur; tachymètre à flotteur; distance du flotteur; vitesse du flotteur; wattheure flottant; pourcentage de flotteur;

Filtre simpleKalmanFilter1(2, 2, 0,01);

void setup() {

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

/** Configurer le port UART (Serial1 sur Atmega32u4) */ // Serial1.begin (19200); tandis que (!Série) {;}

/** Définir les ports à utiliser comme UART */ UART.setSerialPort(&Serial);

}

boucle vide() {

////////// Lecture des valeurs ////////// if (UART.getVescValues()) {

tr/min = (UART.data.rpm)/7; // Le '7' est le nombre de paires de pôles dans le moteur. La plupart des moteurs ont 14 pôles, donc 7 paires de pôles tension = (UART.data.inpVoltage); courant = (UART.data.avgInputCurrent); puissance = tension*courant; amphour = (UART.data.ampHours); wattheure = ampère-heure*tension; tach = (UART.data.tachometerAbs)/42; // Le '42' est le nombre de pôles du moteur multiplié par 3 distance = tach*3.142*(1/1609)*0.72*(16/185); // RPM du moteur x Pi x (1 / mètres dans un mile ou un km) x Diamètre de la roue x (poulie du moteur / poulie de roue) vitesse = rpm*3.142*(60/1609)*0.72*(16/185); // RPM du moteur x Pi x (secondes dans une minute / mètres dans un mile) x Diamètre de la roue x (poulie du moteur / poulie de roue) batpercentage = ((tension-38,4)/12)*100; // ((Tension de la batterie - tension minimale) / nombre de cellules) x 100

}

////////// Filter ////////// // calcule la valeur estimée avec Kalman Filter float powerfiltered = Filter1.updateEstimate(power);

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

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

display.setCursor(10, 40); display.setTextColor(1); display.setTextSize(1); display.print(tr/min);

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

retard (50);

}

Vous pouvez modifier et afficher n'importe quelle valeur du code que vous voulez

Étape 4: Vérifier si cela fonctionne

Vérifier si cela fonctionne
Vérifier si cela fonctionne
Vérifier si cela fonctionne
Vérifier si cela fonctionne
Vérifier si cela fonctionne
Vérifier si cela fonctionne

Maintenant, lorsque vous vérifiez si cela fonctionne, il est temps de le souder et d'ajouter des étiquettes à vos valeurs comme Volts ou Amps. Soudez-le sur arduino nano pour qu'il soit plus petit ou vous pouvez même le transmettre avec un autre arduino à votre télécommande. mais pour cela il existe de nombreux autres tutoriels (recherche de transmission de valeurs avec arduino). J'espère que cela vous a aidé à résoudre votre problème ou à faire une belle petite télémétrie vesc.

Conseillé: