关注v-x-公-众-号:【嵌入式基地

后-台-回-复:【电赛】 即可获资料

回复【编程】即可获取

包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、数据库、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物联网、算法导论、大数据等资料

自制FOC控制驱动器_单片机


5个G的计算机,电子专业书籍分享。

链接:https://pan.baidu.com/s/1y8BnUlGmiJMujLlTyrhznA

提取码:j9na

FOC控制驱动器

  • 1. 电路板
  • 1.1 特点:
  • 1.2 原理图:
  • 1.2 3d图:
  • 1.3 硬件配置
  • 1.3.1 3.3KΩ上拉电阻说明
  • 1.3.2 4.7KΩ上拉电阻说明
  • 1.3.3 可配置引脚
  • 2. foc程序库
  • 2.1 支持的硬件
  • 2.1.1 电机
  • 2.1.2 驱动板卡
  • 2.1.3 位置传感器
  • 2.1.4 主控
  • 2.3 简单程序
  • 视频演示地址


1. 电路板

1.1 特点:

  • 驱动板引脚接口兼容Arduino UNO、Arduino Mega2560、ST Nucleo…
  • 最大功率:120W;电压:12V-24V;最大电流5A。
  • 电机驱动:L6234PD013TR。
  • 编码器接口:具备3.3KΩ上拉电阻(可选)。
  • IIC接口:具备4.7KΩ上拉电阻(可选)。
  • 可套娃使用:可同时运行2台电机。

1.2 原理图:

自制FOC控制驱动器_arduino_02

1.2 3d图:

自制FOC控制驱动器_上拉电阻_03

自制FOC控制驱动器_上拉电阻_04

1.3 硬件配置

由上图可知,在PCB反面提供了一些可配置的焊点。

这些焊点作用:

  • 禁用/使能上拉电阻
  • 配置A、B、I使能引脚
  • 配置BLCD电机引脚(PWM A、PWM B、PWM C)与使能引脚

1.3.1 3.3KΩ上拉电阻说明

3.3KΩ上拉电阻的配置焊点:Pull A、Pull B、Pull I,分别作用于编码器通道A、B、I(或霍尔传感器U、V、W)。

1.3.2 4.7KΩ上拉电阻说明

IIC上拉电阻配置焊点:Pull SCL、Pull SDA。在使用arduino时,iic基本不需要上拉电阻;当使用STM32时,需要使用上拉电阻。

  • 当使用俩快驱动板叠加时,建议使用上拉电阻。

1.3.3 可配置引脚

可配置信号与引脚对照表

自制FOC控制驱动器_直流电机_05

2. foc程序库

2.1 支持的硬件

2.1.1 电机

  • BLDC电机
  • 步进电机

2.1.2 驱动板卡

  • BLDC驱动器
  • 步进电机驱动器
  • 云台电机驱动器

2.1.3 位置传感器

  • 编码器
  • 磁性传感器
  • 霍尔传感器
  • 开环控制

2.1.4 主控

  • Arduino
  • STM32
  • ESP32
  • Teensy

2.3 简单程序

由于我是用的是AS5600磁编码器,程序就以AS5600为例

#include <SimpleFOC.h>

MagneticSensorI2C sensor = MagneticSensorI2C(0x36, 12, 0x0E, 4);

// Motor instance
BLDCMotor motor = BLDCMotor(9, 5, 6, 11, 8);

void setup() {
  sensor.sda_pin = 14; // change i2c data pin - OPTIONAL
  sensor.scl_pin = 15; // change i2c clock pin - OPTIONAL
  // initialise magnetic sensor hardware
  sensor.init();
  // link the motor to the sensor
  motor.linkSensor(&sensor);
  // initialize motor
  motor.init();
  // align encoder and start FOC
  motor.initFOC();
  // set the initial target value
  motor.target = 2;
  _delay(1000);
}

void loop() {
  // iterative setting FOC phase voltage
  motor.loopFOC();
  // iterative function setting the outer loop target
  // velocity, position or voltage
  // if target not set in parameter uses motor.target variable
  motor.move(); 
}

全套资料免费下载:

关注v-x-公-众-号:【嵌入式基地

后-台-回-复:【电赛】 即可获资料

回复【编程】即可获取

包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、数据库、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物联网、算法导论、大数据等资料

自制FOC控制驱动器_单片机