求助帖,让电机缓速加速的代码该如何写?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1570|回复: 3

求助帖,让电机缓速加速的代码该如何写?

[复制链接]
发表于 2020-5-25 14:11 | 显示全部楼层 |阅读模式
先说下思路,硬件上我用DRV8833驱动2个空心杯电机,软件上使用点灯的APP,用滑块来调速;
void Slider_1_callback(int32_t value)
{
    BLINKER_LOG("get slider value: ", value);
    motorSpeedA = value;
    driver.motorAForward(motorSpeedA);
    Blinker.delay(100);
}


目前调速和驱动都已实现,现在想要的效果是,APP上速度滑块从0滑倒200后;

电机能够缓速从0加速到200;

而不是现在这样直接就加速到200
发表于 2020-5-25 17:42 | 显示全部楼层
你试试看
void Slider_1_callback(int32_t value)
{
    BLINKER_LOG("get slider value: ", value);
    while(1){
    if(value!=motorSpeedA)
    {
      motorSpeedA= value>motorSpeedA?motorSpeedA++:value<motorSpeedA?motorSpeedA--:motorSpeedA;
      driver.motorAForward(motorSpeedA);
      Blinker.delay(2);//每步调节速度
     }else break;
  }
}
 楼主| 发表于 2020-5-26 14:37 | 显示全部楼层
stick 发表于 2020-5-25 17:42
你试试看
void Slider_1_callback(int32_t value)
{

好的 谢谢大佬  晚上回去刷上代码试试
 楼主| 发表于 2020-5-26 19:01 | 显示全部楼层
stick 发表于 2020-5-25 17:42
你试试看
void Slider_1_callback(int32_t value)
{

试了以下,好像三目运算这块有点问题,无法跑起来;我换成if条件来用了

void Slider_1_callback(int32_t value)
{
    BLINKER_LOG("get slider value: ", value);
     while(1){
        if(value != motorSpeedA)
        {         
          if(value > motorSpeedA){
            motorSpeedA++;
          }
          else{
             motorSpeedA--;
            }
          driver.motorAForward(motorSpeedA);
          Blinker.delay(2);//每步调节速度*/
        }else break;
    }
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 05:28 , Processed in 0.073397 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表