#include <Arduino.h>
#include <SimpleFOC.h>
// 无刷直流电机及驱动器实例
BLDCMotor motor = BLDCMotor(6);
BLDCDriver3PWM driver = BLDCDriver3PWM(9, 5, 6, 8);
// 编码器对象
Encoder encoder = Encoder(2, 3, 4096);
// 通道 A 和 B 回调函数
void doA(){encoder.handleA();}
void doB(){encoder.handleB();}
// 电流传感器
//InlineCurrentSense current_sense = InlineCurrentSense(0.01, 50.0, A0, A2);
// 初始目标角度为0
float target_angle = 0;
// 命令通信实例
Commander command = Commander(Serial);
// 串口控制指令:目标值
void doTarget(char* cmd) { command.scalar(&target_angle, cmd); }
// 串口控制指令:电机
void onMotor(char* cmd){ command.motor(&motor, cmd); }
void setup() {
// 初始化编码器传感器硬件
encoder.init();
encoder.enableInterrupts(doA, doB);
// 连接电机与编码器
motor.linkSensor(&encoder);
// 驱动设置
// 电源电压 [V]
driver.voltage_power_supply = 12;
driver.init();
// 连接驱动器
motor.linkDriver(&driver);
// 设置要使用的控制回路类型
//motor.torque_controller =
SimpleFOC -位置控制代码
最新推荐文章于 2022-07-24 16:01:49 发布
本文详细介绍了使用SimpleFOC库在ARM MCU单片机上实现位置控制的方法,涵盖了从理论到实践的整个过程,适合于嵌入式硬件开发者深入理解电机控制技术。
摘要由CSDN通过智能技术生成