完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有带 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); 休息; } } |
|
相关推荐
1个回答
|
|
要让电机在空隙回路中工作,您需要执行以下操作:
1. 确保您的电机和电机扩展板与Arduino连接正确,并已正确设置和配置电机扩展板的参数。 2. 在代码中使用tle9879库的相关函数来控制电机。您可以使用tle9879库中的函数来启动、停止、修改电机的速度和方向等。 3. 确保您的按钮引脚正确连接,并在代码中正确读取按钮的状态。 4. 使用digitalWrite()函数来控制LED的闪烁。确保LED的引脚正确连接,并在程序中正确控制LED的亮灭状态。 下面是一个参考代码示例,用于在空隙回路中启动和停止电机: ``` #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; void setup() { pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(buttonPin3, INPUT); } void loop() { buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); buttonState3 = digitalRead(buttonPin3); if (buttonState1 == HIGH) { startMotor(); } if (buttonState2 == HIGH) { stopMotor(); } if (buttonState3 == HIGH) { changeMotorSpeed(); } } void startMotor() { // Set motor parameters if required // Set speed and direction if required // Call motor start function from tle9879 library // Example: motorStart(speed, direction); } void stopMotor() { // Call motor stop function from tle9879 library // Example: motorStop(); } void changeMotorSpeed() { // Read new speed from input // Set new speed using tle9879 library functions // Example: setMotorSpeed(speed); } ``` 请替换代码示例中的 `startMotor()`、`stopMotor()` 和 `changeMotorSpeed()` 函数,使其使用tle9879库中的相应函数来控制电机。 请注意,以上代码示例仅供参考,您需要根据您的实际需求和电机扩展板的要求进行修改和调整。另外,请确保连接正确且在处理电机之前进行必要的错误检查和参数设置。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12013 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:47 , Processed in 0.619989 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号