我有带 TLE9879QXA40 的 BLDC 电机扩展板,用于 Arduino。 我已经更新了固件以使 setParameter () 正常工作。
当我在设置空隙中启动电动机时,电动机可以工作,但是当启动电机处于空隙回路中时,它无法开启。 LED 在空隙回路中可以正常闪烁,但电机什么也没做。
如何让电机在空隙回路中工作?
//将 Shield 库添加到你的 Arduino 项目中
#include " tle9879_group.h "
int buttonPin1 =2;
int buttonPin2 = 3;
int buttonPin3 = 5;
int Ontime = 500;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
//声明 Shield 群组对象
tle9879_group *盾牌;
枚举状态
{
//未按下按钮 1
NoButton,
//按钮 1 被按下
第一个按钮,
};
州 _state;
无效设置 ()
{
_state = NoButton;
//使用 Shield 群组对象初始化
//堆栈中护盾的数量
shields = 全新 tle9879_group (1);
//将盾牌组初始化为棋盘 1 的对象。
盾牌-> 设置模式 (BEMF);
//在主板 1 上将模式设置为 BEMF。
盾牌-> 设置马达速度 (-900);
//在 1 上设置电机速度。
shield > s-setParameter (BEMF_POLE_PAIRS,6、BOARD1);
//分配极点对的数量。
shield > s-setParameter(BEMF_SPEED_TEST_ENABLE,1,BOARD1);
//启用 LED 并将其设置为绿色,启动电机让它运行 15 秒,
//然后停止电机
shield > s-setLED(LED_ON,BOARD1);
shiel > ds-setLEDColor(COLOR_BLUE,BOARD1);
盾牌-> 设置电动机模式(启动电机);
延迟 (1000);
shiel > ds-setLEDColor(COLOR_BLACK,BOARD1);
shield > s-setLED(LED_OFF,BOARD1);
盾牌-> 设置马达模式(STOP_MOTOR);
}
空洞循环 ()
{
开关(_state)
{
手机壳 noButton:
if (digitalRead (buttonPin1) == HIGH)
{
_state = firstButton;
shiel > ds-setLEDColor(COLOR_BLACK,BOARD1);
盾牌-> 设置马达模式(STOP_MOTOR);
}
否则如果 (digitalRead (buttonPin2) == HIGH)
{
盾牌-> 设置马达速度 (1000);
盾牌-> 设置电动机模式(启动电机);
shield > s-setLED(LED_ON,BOARD1);
shiel > ds-setLEDColor(COLOR_BLUE,BOARD1);
}
其他
{
shiel > ds-setLEDColor(COLOR_BLACK,BOARD1);
盾牌-> 设置马达模式(STOP_MOTOR);
}
休息;
案例第一按钮:
if (digitalRead (buttonPin1) == 低)
{
_state = NoButton;
shiel > ds-setLEDColor(COLOR_BLACK,BOARD1);
盾牌-> 设置马达模式(STOP_MOTOR);
}
否则如果 (digitalRead (buttonPin3) == HIGH)
{
盾牌-> 设置马达速度 (-1000);
盾牌-> 设置电动机模式(启动电机);
shield > s-setLED(LED_ON,BOARD1);
shiel > ds-setLEDColor(COLOR_GREEN,BOARD1);
}
其他
{
shiel > ds-setLEDColor(COLOR_BLACK,BOARD1);
盾牌-> 设置马达模式(STOP_MOTOR);
}
休息;
默认:
//其他州,非法。
shiel > ds-setLEDColor(COLOR_BLACK,BOARD1);
盾牌-> 设置马达模式(STOP_MOTOR);
休息;
}
}