Πίνακας περιεχομένων:

Ευκολότερη οθόνη Arduino VESC: 4 βήματα
Ευκολότερη οθόνη Arduino VESC: 4 βήματα

Βίντεο: Ευκολότερη οθόνη Arduino VESC: 4 βήματα

Βίντεο: Ευκολότερη οθόνη Arduino VESC: 4 βήματα
Βίντεο: Top 5 Arduino Displays 2024, Νοέμβριος
Anonim
Η ευκολότερη οθόνη Arduino VESC
Η ευκολότερη οθόνη Arduino VESC

Γεια, σε αυτό το έργο θα κάνουμε εύκολη την παρακολούθηση VESC. Αυτό θα ήταν χρήσιμο όταν θέλετε να παρακολουθείτε τη θερμοκρασία σας και να ανακαλύπτετε προβλήματα όπως είχα με την υπερθέρμανση Vesc (που διαπίστωσα ακριβώς με αυτήν την οθόνη) ή μπορείτε να το χρησιμοποιήσετε απλά για να προσαρτήσετε την οθόνη στον πίνακα ή στο τιμόνι σας και να παρακολουθήσετε την ταχύτητά σας, χιλιόμετρα, ποσοστό μπαταρίας και πολλά άλλα. Πάμε λοιπόν στο χτίσιμο!

Βήμα 1: Μέρη

Ανταλλακτικά
Ανταλλακτικά
Ανταλλακτικά
Ανταλλακτικά

1. - Arduino (χρησιμοποιώ UNO, αλλά μπορείτε επίσης να χρησιμοποιήσετε οποιοδήποτε άλλο πίνακα συμπεριλαμβανομένου του esp8266 ή του esp32)

2. - μερικά καλώδια για σύνδεση (προσπαθήστε να βρείτε βύσμα σύνδεσης για το vesc γιατί θα είναι πολύ πιο εύκολο να αποσυνδέσετε 1 μεγάλο βύσμα έναντι πολλών μικρών καλωδίων)

3. - οθόνη (χρησιμοποιώ 124 x 32 Oled αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε άλλη αλλάζοντας βιβλιοθήκη)

4. - προαιρετικό - breadboard (αυτό είναι για άτομα που δεν θέλουν να κολλήσουν ή για όσους θέλουν να το κάνουν προσωρινά)

5. - Καλώδιο USB για το arduino σας

Βήμα 2: Σύνδεση εξαρτημάτων μαζί

Συνδέοντας μέρη μαζί
Συνδέοντας μέρη μαζί
Συνδέοντας μέρη μαζί
Συνδέοντας μέρη μαζί
Συνδέοντας μέρη μαζί
Συνδέοντας μέρη μαζί

οθόνη: Vcc έως 3,3V

Gnd σε Gnd

Sck (ή scl) στο A5

Sda στο Α4

VESC: 5V από Vesc έως Vin στο Arduino

Gnd σε Gnd

RX στο VESC έως TX στο Arduino

TX στο VESC έως RX στο Arduino

Βήμα 3: Μεταφόρτωση και τροποποίηση του κώδικα σύμφωνα με τις προτιμήσεις σας

ΚΩΔΙΚΑΣ:

/** Κωδικός 2020 από την οθόνη Lukas Janky VESC με οθόνη Oled Αν χρειαστεί να με ρωτήσετε κάτι, επικοινωνήστε μαζί μου στο [email protected] ή στις οδηγίες μου. Ελπίζω ότι αυτό θα σας βοηθήσει.

*/

#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, & Wire, VescUart UART;

int rpm? τάση πλωτήρα? ρεύμα πλωτήρα int δύναμη? float amphour? float tach? απόσταση επίπλευσης? ταχύτητα επίπλευσης? float watthour? ποσοστό επίπλευσης batpercentage?

SimpleKalmanFilter Filter1 (2, 2, 0.01);

void setup () {

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

/ ** Ρύθμιση θύρας UART (Serial1 στο Atmega32u4)*/ // Serial1.begin (19200). ενώ (! Σειρά) {;}

/ ** Καθορίστε ποιες θύρες θα χρησιμοποιηθούν ως UART*/ UART.setSerialPort (& Serial);

}

void loop () {

/////////// Διαβάστε τιμές ////////// εάν (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // Το '7' είναι ο αριθμός των ζευγών πόλων στον κινητήρα. Οι περισσότεροι κινητήρες έχουν 14 πόλους, επομένως τάση 7 πόλων = (UART.data.inpVoltage); ρεύμα = (UART.data.avgInputCurrent); ισχύς = τάση*ρεύμα? amphour = (UART.data.ampHours); watthour = amphour*τάση? tach = (UART.data.tachometerAbs)/42; // Το '42' είναι ο αριθμός των πόλων κινητήρα πολλαπλασιασμένος επί 3 απόσταση = tach*3.142*(1/1609)*0.72*(16/185). // RPM μοτέρ x Pi x (1/ μέτρα σε μίλι ή χλμ.) X Διάμετρος τροχού x (τροχαλία/ τροχαλία κινητήρα) ταχύτητα = σ.α.λ.*3.142*(60/1609)*0.72*(16/185). // RPM μοτέρ x Pi x (δευτερόλεπτα σε λεπτό / μέτρα σε μίλι) x Διάμετρος τροχού x (τροχαλία / τροχαλία κινητήρα) batpercentage = ((τάση-38,4) / 12)*100; // ((Τάση μπαταρίας - ελάχιστη τάση) / αριθμός κυψελών) x 100

}

////////// Φίλτρο ////////// // υπολογίστε την εκτιμώμενη τιμή με Kalman Filter float powerfiltered = Filter1.updateEstimate (power);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); display.print (τάση)?

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

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); display.print (σ.α.λ.)

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (τρέχον) display.display ();

καθυστέρηση (50)?

}

Μπορείτε να τροποποιήσετε και να εμφανίσετε οποιαδήποτε τιμή από τον κώδικα που θέλετε

Βήμα 4: Έλεγχος αν λειτουργεί

Έλεγχος αν λειτουργεί
Έλεγχος αν λειτουργεί
Έλεγχος αν λειτουργεί
Έλεγχος αν λειτουργεί
Έλεγχος αν λειτουργεί
Έλεγχος αν λειτουργεί

Τώρα, όταν ελέγχετε αν λειτουργεί, ήρθε η ώρα να το κολλήσετε και να προσθέσετε ετικέτες στις τιμές σας, όπως βολτ ή ενισχυτές. Συγκολλήστε το σε arduino nano ώστε να είναι μικρότερο ή μπορείτε ακόμη και να το μεταδώσετε με άλλο arduino στο τηλεχειριστήριό σας. αλλά γι 'αυτό υπάρχουν πολλά άλλα σεμινάρια (αναζήτηση μετάδοσης τιμών με arduino). Ελπίζω ότι αυτό σας βοήθησε να λύσετε το πρόβλημά σας ή να κάνετε ωραία μικρή τηλεμετρία vesc.

Συνιστάται: