Daftar Isi:

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

Video: Monitor Arduino VESC termudah: 4 Langkah

Video: Monitor Arduino VESC termudah: 4 Langkah
Video: Основы электроники №1: Мультиметр 2024, Juli
Anonim
Monitor Arduino VESC termudah
Monitor Arduino VESC termudah

Hai, dalam proyek ini kita akan membuat monitor VESC mudah. Ini akan berguna ketika Anda ingin memantau suhu Anda dan mencari tahu masalah seperti yang saya alami dengan panas berlebih Vesc saya (yang saya temukan hanya dengan monitor ini) atau Anda dapat menggunakannya hanya untuk memasang tampilan ke papan atau setang Anda dan perhatikan kecepatan Anda, jarak tempuh, persentase baterai, dan banyak lagi. Jadi mari kita masuk ke gedung!

Langkah 1: Bagian

Bagian
Bagian
Bagian
Bagian

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

2. - beberapa kabel untuk menghubungkan (coba cari konektor untuk konektor vesc Anda karena akan lebih mudah untuk mencabut 1 konektor besar vs banyak kabel kecil)

3. - tampilan (saya menggunakan Oled 124 x 32 tetapi Anda dapat menggunakan yang lain dengan mengubah perpustakaan)

4. - opsional - papan tempat memotong roti (ini untuk orang yang tidak ingin menyolder atau untuk yang ingin melakukannya sementara)

5. - Kabel USB untuk arduino Anda

Langkah 2: Menghubungkan Bagian Bersama

Menghubungkan Bagian Bersama
Menghubungkan Bagian Bersama
Menghubungkan Bagian Bersama
Menghubungkan Bagian Bersama
Menghubungkan Bagian Bersama
Menghubungkan Bagian Bersama

tampilan: Vcc ke 3.3V

Gnd ke Gnd

Sck (atau scl) ke A5

Sda ke A4

VESC: 5V dari Vesc ke Vin di Arduino

Gnd ke Gnd

RX di VESC ke TX di Arduino

TX di VESC ke RX di Arduino

Langkah 3: Mengunggah dan Memodifikasi Kode Sesuai Preferensi Anda

KODE:

/** Kode 2020 oleh Lukas Janky VESC monitor dengan layar Oled Jika Anda perlu menanyakan sesuatu kepada saya, hubungi saya di [email protected] atau di instruksi saya. Saya harap ini akan 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);

UART VescUart;

intrpm; tegangan mengambang; arus mengambang; kekuatan int; ampere mengambang; mengapung tach; jarak mengambang; kecepatan mengambang; watt jam mengambang; persentase bat mengambang;

SimpleKalmanFilter Filter1(2, 2, 0.01);

batalkan pengaturan() {

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

/** Atur port UART (Serial1 pada Atmega32u4) */ // Serial1.begin(19200); while (!Serial) {;}

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

}

lingkaran kosong() {

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

rpm = (UART.data.rpm)/7; // '7' adalah jumlah pasangan kutub di motor. Kebanyakan motor memiliki 14 kutub, oleh karena itu 7 pasang kutub tegangan = (UART.data.inpVoltage); saat ini = (UART.data.avgInputCurrent); daya = tegangan * arus; amphour = (UART.data.ampHours); watthour = ampere*tegangan; tach = (UART.data.tachometerAbs)/42; // '42' adalah jumlah kutub motor dikalikan 3 jarak = tach*3.142*(1/1609)*0.72*(16/185); // RPM Motor x Pi x (1 / meter dalam satu mil atau km) x Diameter roda x (katrol motor / katrol roda) kecepatan = rpm*3.142*(60/1609)*0.72*(16/185); // RPM Motor x Pi x (detik dalam satu menit / meter dalam satu mil) x Diameter roda x (katrol motor / katrol roda) persentase bat = ((tegangan-38,4)/12)*100; // ((Tegangan baterai - tegangan minimum) / jumlah sel) x 100

}

////////// Filter ////////// // menghitung nilai estimasi dengan Kalman Filter float powerfiltered = Filter1.updateEstimate(power);

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

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

display.setCursor(10, 40); tampilan.setTextColor(1); display.setTextSize(1); display.print(rpm);

display.setCursor(10, 55); tampilan.setTextColor(1); display.setTextSize(1); display.print(saat ini); tampilan.tampilan();

penundaan(50);

}

Anda dapat mengubah dan menampilkan nilai apa pun dari kode yang Anda inginkan

Langkah 4: Memeriksa Apakah Berhasil

Memeriksa Jika Berhasil
Memeriksa Jika Berhasil
Memeriksa Jika Berhasil
Memeriksa Jika Berhasil
Memeriksa Jika Berhasil
Memeriksa Jika Berhasil

Sekarang ketika Anda memeriksa apakah itu berfungsi, inilah saatnya untuk menyoldernya dan menambahkan label ke nilai Anda seperti Volt atau Amps. Solder pada arduino nano sehingga akan lebih kecil atau Anda bahkan dapat mengirimkannya dengan arduino lain ke remote kontrol Anda. tapi untuk itu masih banyak tutorial lainnya (cari nilai transmisi dengan arduino). Saya harap ini membantu Anda memecahkan masalah Anda atau membuat telemetri vesc kecil yang bagus.

Direkomendasikan: