สารบัญ:

การตรวจสอบ Arduino VESC ที่ง่ายที่สุด: 4 ขั้นตอน
การตรวจสอบ Arduino VESC ที่ง่ายที่สุด: 4 ขั้นตอน

วีดีโอ: การตรวจสอบ Arduino VESC ที่ง่ายที่สุด: 4 ขั้นตอน

วีดีโอ: การตรวจสอบ Arduino VESC ที่ง่ายที่สุด: 4 ขั้นตอน
วีดีโอ: จะปรับพารามิเตอร์ VESC หรือ Maytech SuperFOC ได้อย่างไร คู่มือสำหรับผู้เริ่มต้นในการปรับ FOC/BLDC 2024, พฤศจิกายน
Anonim
จอภาพ Arduino VESC ที่ง่ายที่สุด
จอภาพ Arduino VESC ที่ง่ายที่สุด

สวัสดี, ในโครงการนี้ เราจะทำการตรวจสอบ VESC อย่างง่าย สิ่งนี้จะมีประโยชน์เมื่อคุณต้องการตรวจสอบอุณหภูมิของคุณและค้นหาปัญหาเหมือนที่ฉันมีกับ Vesc ที่ร้อนเกินไป (ซึ่งฉันเพิ่งค้นพบกับจอภาพนี้) หรือคุณสามารถใช้มันเพื่อติดจอแสดงผลเข้ากับบอร์ดหรือแฮนด์บาร์ของคุณ และดูความเร็วของคุณ, ไมล์สะสม, เปอร์เซ็นต์แบตเตอรี่ และอื่นๆ อีกมากมาย มาเริ่มกันเลยดีกว่า!

ขั้นตอนที่ 1: อะไหล่

อะไหล่
อะไหล่
อะไหล่
อะไหล่

1. - Arduino (ฉันใช้ UNO แต่คุณสามารถใช้บอร์ดอื่นได้ เช่น esp8266 หรือ esp32)

2. - สายเคเบิลสำหรับเชื่อมต่อ (ลองหาขั้วต่อสำหรับขั้วต่อของคุณสำหรับ vesc เพราะจะง่ายกว่ามากในการถอดปลั๊ก 1 ขั้วต่อขนาดใหญ่เทียบกับสายขนาดเล็กจำนวนมาก)

3. - จอแสดงผล (ฉันใช้ 124 x 32 Oled แต่คุณสามารถใช้อย่างอื่นได้โดยเปลี่ยนไลบรารี่)

4. - ทางเลือก - เขียงหั่นขนม (สำหรับผู้ที่ไม่ต้องการบัดกรีหรือผู้ที่ต้องการทำชั่วคราว)

5. - สาย USB สำหรับ Arduino. ของคุณ

ขั้นตอนที่ 2: เชื่อมต่อชิ้นส่วนต่างๆ เข้าด้วยกัน

เชื่อมต่อชิ้นส่วนเข้าด้วยกัน
เชื่อมต่อชิ้นส่วนเข้าด้วยกัน
เชื่อมต่อชิ้นส่วนเข้าด้วยกัน
เชื่อมต่อชิ้นส่วนเข้าด้วยกัน
เชื่อมต่อชิ้นส่วนเข้าด้วยกัน
เชื่อมต่อชิ้นส่วนเข้าด้วยกัน

จอแสดงผล: Vcc ถึง 3.3V

Gnd ถึง Gnd

Sck (หรือ scl) ถึง A5

Sda ถึง A4

VESC: 5V จาก Vesc ถึง Vin บน Arduino

Gnd ถึง Gnd

RX บน VESC เป็น TX บน Arduino

TX บน VESC เป็น RX บน Arduino

ขั้นตอนที่ 3: การอัปโหลดและแก้ไขรหัสตามความต้องการของคุณ

รหัส:

/** รหัส 2020 โดยจอภาพ Lukas Janky VESC พร้อมจอแสดงผล Oled หากคุณต้องการถามอะไรฉันโปรดติดต่อฉันที่ [email protected] หรือตามคำแนะนำของฉัน ฉันหวังว่านี่จะช่วยคุณได้

*/

#รวม #รวม #รวม #รวม #รวม #รวม #รวม #กำหนด SCREEN_WIDTH 128 #กำหนด SCREEN_HEIGHT 64 #กำหนด OLED_RESET 4 จอแสดงผล Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

VescUart UART;

รอบต่อนาทีภายใน; แรงดันลอย; กระแสลอย; อำนาจภายใน; แอมแปร์ลอยน้ำ; ลอย tach; ระยะลอย; ความเร็วลอย วัตต์ชั่วโมงลอย; แบตเตอรีลอยน้ำ;

ตัวกรอง SimpleKalmanFilter1(2, 2, 0.01);

การตั้งค่าเป็นโมฆะ () {

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

/** ตั้งค่าพอร์ต UART (Serial1 บน Atmega32u4) */ // Serial1.begin(19200); ในขณะที่ (!Serial) {;}

/** กำหนดพอร์ตที่จะใช้เป็น UART */ UART.setSerialPort(&Serial);

}

วงเป็นโมฆะ () {

////////// อ่านค่า ////////// ถ้า (UART.getVescValues ()) {

รอบต่อนาที = (UART.data.rpm)/7; // '7' คือจำนวนขั้วคู่ในมอเตอร์ มอเตอร์ส่วนใหญ่มี 14 ขั้ว ดังนั้นแรงดันคู่ขั้ว 7 คู่ = (UART.data.inpVoltage); ปัจจุบัน = (UART.data.avgInputCurrent); กำลัง = แรงดัน * กระแส; amphour = (UART.data.ampHours); วัตต์ชั่วโมง = แอมป์ชั่วโมง*แรงดัน; tach = (UART.data.tachometerAbs)/42; // '42' คือจำนวนขั้วมอเตอร์คูณด้วยระยะ 3 = tach*3.142*(1/1609)*0.72*(16/185); // มอเตอร์ RPM x Pi x (1 / เมตรในหนึ่งไมล์หรือกม.) x เส้นผ่านศูนย์กลางล้อ x (รอกมอเตอร์ / รอกล้อ) ความเร็ว = rpm*3.142*(60/1609)*0.72*(16/185); // มอเตอร์ RPM x Pi x (วินาทีในหนึ่งนาที / เมตรในหนึ่งไมล์) x เส้นผ่านศูนย์กลางล้อ x (รอกมอเตอร์ / มู่เล่ย์ล้อ) batpercentage = ((voltage-38.4)/12)*100; // ((แรงดันแบตเตอรี่ - แรงดันไฟต่ำสุด) / จำนวนเซลล์) x 100

}

////////// Filter ////////// // คำนวณค่าโดยประมาณด้วย 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(พลังงาน);

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 telemetry เล็ก ๆ น้อย ๆ ที่ดี

แนะนำ: