Mục lục:

Màn hình Arduino VESC dễ nhất: 4 bước
Màn hình Arduino VESC dễ nhất: 4 bước

Video: Màn hình Arduino VESC dễ nhất: 4 bước

Video: Màn hình Arduino VESC dễ nhất: 4 bước
Video: The Basic Starter Arduino UNO #33. Điều khiển động cơ bước bằng Rotary Encoder 2024, Tháng mười một
Anonim
Màn hình Arduino VESC dễ nhất
Màn hình Arduino VESC dễ nhất

Chào, trong dự án này, chúng tôi sẽ thực hiện giám sát VESC dễ dàng. Điều này sẽ hữu ích khi bạn muốn theo dõi nhiệt độ của mình và tìm ra các vấn đề như tôi gặp phải với quá nhiệt Vesc (điều mà tôi phát hiện ra chỉ với màn hình này) hoặc bạn có thể sử dụng nó đơn giản để gắn màn hình vào bảng hoặc ghi đông và xem tốc độ của bạn, số dặm, phần trăm pin và nhiều hơn nữa. Vì vậy, chúng ta hãy bắt tay vào xây dựng!

Bước 1: Các bộ phận

Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận

1. - Arduino (Tôi đang sử dụng UNO nhưng bạn cũng có thể sử dụng bất kỳ bảng nào khác bao gồm esp8266 hoặc esp32)

2. - một số cáp để kết nối (cố gắng tìm đầu nối cho đầu nối của bạn cho vesc vì sẽ dễ dàng hơn nhiều khi rút 1 đầu nối lớn so với rất nhiều cáp nhỏ)

3. - hiển thị (Tôi đang sử dụng 124 x 32 Oled nhưng bạn có thể sử dụng bất kỳ cái nào khác bằng cách thay đổi thư viện)

4. - tùy chọn - breadboard (cái này dành cho những người không muốn hàn hoặc cho những người muốn làm điều đó tạm thời)

5. - Cáp USB cho arduino của bạn

Bước 2: Kết nối các bộ phận với nhau

Kết nối các bộ phận với nhau
Kết nối các bộ phận với nhau
Kết nối các bộ phận với nhau
Kết nối các bộ phận với nhau
Kết nối các bộ phận với nhau
Kết nối các bộ phận với nhau

hiển thị: Vcc đến 3.3V

Gnd đến Gnd

Sck (hoặc scl) đến A5

Sda sang A4

VESC: 5V từ Vesc sang Vin trên Arduino

Gnd đến Gnd

RX trên VESC sang TX trên Arduino

TX trên VESC thành RX trên Arduino

Bước 3: Tải lên và sửa đổi mã theo sở thích của bạn

MÃ SỐ:

/ ** Mã 2020 của Lukas Janky Màn hình VESC với màn hình Oled Nếu bạn cần hỏi tôi bất cứ điều gì, hãy liên hệ với tôi trên [email protected] hoặc trên tài liệu hướng dẫn của tôi. Tôi hy vọng rằng điều này sẽ giúp bạn.

*/

#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 vòng / phút; điện áp phao; phao hiện tại; quyền lực int; amphour phao; phao tach; khoảng cách phao; vận tốc phao; phao câu nước; tỷ lệ sóng nổi;

Bộ lọc SimpleKalmanFilter1 (2, 2, 0,01);

void setup () {

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

/ ** Thiết lập cổng UART (Serial1 trên Atmega32u4) * / // Serial1.begin (19200); trong khi (! nối tiếp) {;}

/ ** Xác định cổng nào sẽ sử dụng làm UART * / UART.setSerialPort (& Serial);

}

void loop () {

////////// Đọc giá trị ////////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm) / 7; // Số '7' là số cặp cực trong động cơ. Hầu hết các động cơ có 14 cực, do đó điện áp 7 cặp cực = (UART.data.inpVoltage); hiện tại = (UART.data.avgInputCurrent); power = điện áp * dòng điện; amphour = (UART.data.ampHours); watthour = amphour * điện áp; tach = (UART.data.tachometerAbs) / 42; // '42' là số cực động cơ nhân với 3 khoảng cách = tach * 3,142 * (1/1609) * 0,72 * (16/185); // RPM của động cơ x Pi x (1 / mét trong một dặm hoặc km) x Đường kính bánh xe x (puli động cơ / bánh xe) vận tốc = rpm * 3,142 * (60/1609) * 0,72 * (16/185); // RPM của động cơ x Pi x (giây trong một phút / mét trong một dặm) x Đường kính bánh xe x (puli động cơ / bánh xe) batpercentage = ((điện áp-38.4) / 12) * 100; // ((Điện áp pin - điện áp tối thiểu) / số ô) x 100

}

////////// Filter ////////// // tính giá trị ước lượng với Kalman Filter float powerfiltered = Filter1.updateEs Lat (power);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); display.print (điện áp);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); display.print (điện năng);

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); display.print (vòng / phút);

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (hiện tại); display.display ();

chậm trễ (50);

}

Bạn có thể sửa đổi và hiển thị bất kỳ giá trị nào từ mã mà bạn muốn

Bước 4: Kiểm tra xem nó có hoạt động không

Kiểm tra nếu nó hoạt động
Kiểm tra nếu nó hoạt động
Kiểm tra nếu nó hoạt động
Kiểm tra nếu nó hoạt động
Kiểm tra nếu nó hoạt động
Kiểm tra nếu nó hoạt động

Bây giờ khi bạn kiểm tra xem nó có hoạt động hay không thì đã đến lúc hàn nó và thêm nhãn vào các giá trị của bạn như Volts hoặc Amps. Hàn nó trên arduino nano để nó sẽ nhỏ hơn hoặc bạn thậm chí có thể truyền nó bằng arduino khác đến bộ điều khiển từ xa của mình. nhưng đối với đó là nhiều hướng dẫn khác (tìm kiếm các giá trị truyền với arduino). Tôi hy vọng rằng điều này đã giúp bạn giải quyết vấn đề của mình hoặc tạo ra phép đo từ xa vesc nhỏ xinh.

Đề xuất: