Isi kandungan:

Monitor VESC Arduino termudah: 4 Langkah
Monitor VESC Arduino termudah: 4 Langkah

Video: Monitor VESC Arduino termudah: 4 Langkah

Video: Monitor VESC Arduino termudah: 4 Langkah
Video: cara membuat brushless motor controller, mosfet, irfz 44n 2024, November
Anonim
Monitor VESC Arduino termudah
Monitor VESC Arduino termudah

Hai, dalam projek ini kami akan membuat monitor VESC yang mudah. Ini akan berguna apabila anda ingin memantau suhu anda dan mengetahui masalah seperti yang saya alami dengan pemanasan Vesc saya (yang saya dapati hanya dengan monitor ini) atau anda boleh menggunakannya hanya untuk melampirkan paparan pada papan atau hendal anda dan melihat kelajuan anda, jarak tempuh, peratusan bateri dan banyak lagi. Oleh itu, mari masuk ke dalam bangunan!

Langkah 1: Bahagian

Bahagian
Bahagian
Bahagian
Bahagian

1. - Arduino (Saya menggunakan UNO tetapi anda juga boleh menggunakan papan lain termasuk esp8266 atau esp32)

2. - beberapa kabel untuk menyambung (cuba cari penyambung untuk penyambung anda untuk vesc kerana akan lebih mudah mencabut 1 penyambung besar berbanding banyak kabel kecil)

3. - paparan (Saya menggunakan Oled 124 x 32 tetapi anda boleh menggunakan yang lain dengan menukar perpustakaan)

4. - pilihan - papan roti (ini untuk orang yang tidak mahu menyolder atau untuk mereka yang ingin melakukannya buat sementara waktu)

5. - Kabel USB untuk arduino anda

Langkah 2: Menghubungkan Bahagian Bersama

Menghubungkan Bahagian Bersama
Menghubungkan Bahagian Bersama
Menghubungkan Bahagian Bersama
Menghubungkan Bahagian Bersama
Menghubungkan Bahagian Bersama
Menghubungkan Bahagian Bersama

paparan: Vcc hingga 3.3V

Gnd ke Gnd

Sck (atau scl) ke A5

Sda hingga A4

VESC: 5V dari Vesc ke Vin di Arduino

Gnd ke Gnd

RX pada VESC hingga TX pada Arduino

TX pada VESC hingga RX di Arduino

Langkah 3: Memuat naik dan Mengubah Kod ke Pilihan Anda

KOD:

/ ** Kod 2020 oleh monitor Lukas Janky VESC dengan paparan Oled Sekiranya anda perlu bertanya apa-apa kepada saya, hubungi saya di [email protected] atau pada arahan saya. Saya harap ini dapat membantu anda.

*/

#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; voltan apungan; arus apungan; kuasa int; amfour terapung; apungan tach; jarak apungan; halaju apungan; terapung watthour; kadar pengapungan terapung;

Saringan SimpleKalmanFilter1 (2, 2, 0.01);

batal persediaan () {

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

/ ** Siapkan port UART (Serial1 pada Atmega32u4) * / // Serial1.begin (19200); sementara (! bersiri) {;}

/ ** Tentukan port mana yang akan digunakan sebagai UART * / UART.setSerialPort (& Serial);

}

gelung kosong () {

////////// Baca nilai ////////// jika (UART.getVescValues ()) {

rpm = (UART.data.rpm) / 7; // '7' adalah bilangan pasangan tiang di motor. Sebilangan besar motor mempunyai 14 tiang, oleh itu voltan pasang 7 tiang = (UART.data.inpVoltage); semasa = (UART.data.avgInputCurrent); kuasa = voltan * arus; amphour = (UART.data.ampHours); watthour = voltan amphour *; tach = (UART.data.tachometerAbs) / 42; // '42' adalah bilangan tiang motor yang didarabkan dengan 3 jarak = tach * 3.142 * (1/1609) * 0.72 * (16/185); // Motor RPM x Pi x (1 / meter dalam satu mil atau km) x Diameter roda x (takal motor / roda roda) halaju = rpm * 3.142 * (60/1609) * 0.72 * (16/185); // Motor RPM x Pi x (saat dalam satu minit / meter dalam satu batu) x Diameter roda x (takal motor / roda roda) batpercentage = ((voltan-38,4) / 12) * 100; // ((Voltan bateri - voltan minimum) / bilangan sel) x 100

}

////////// Filter ////////// // kirakan nilai anggaran dengan Kalman Filter float powerfiltered = Filter1.updateEstimate (power);

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

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

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

kelewatan (50);

}

Anda boleh mengubah dan memaparkan sebarang nilai dari kod yang anda mahukan

Langkah 4: Memeriksa Jika Ia Berfungsi

Memeriksa Sekiranya Berfungsi
Memeriksa Sekiranya Berfungsi
Memeriksa Sekiranya Berfungsi
Memeriksa Sekiranya Berfungsi
Memeriksa Sekiranya Berfungsi
Memeriksa Sekiranya Berfungsi

Sekarang apabila anda memeriksa sama ada ia berfungsi, inilah masanya untuk menyoldernya dan menambahkan label pada nilai anda seperti Volts atau Amps. Selesaikannya di arduino nano supaya lebih kecil atau anda boleh menghantarnya dengan arduino lain ke alat kawalan jauh anda. tetapi untuk itu terdapat banyak tutorial lain (carian menghantar nilai dengan arduino). Saya harap ini dapat membantu anda menyelesaikan masalah anda atau membuat telemetri vesc kecil yang bagus.

Disyorkan: