Blinker按钮无法控制舵机-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2701|回复: 7

[已解答] Blinker按钮无法控制舵机

[复制链接]
发表于 2019-8-20 21:49 | 显示全部楼层 |阅读模式
用按钮控制舵机,给舵机一个周期20毫秒,脉宽为1的脉冲,一共12个按钮,把脉冲函数放在第一个按钮成功过一次,放在最后一个按钮没成功过,怀疑是按钮过多,同步性不好,求大佬指教
前两个按钮代码:


void button1_callback(const String & state)
{

    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CMD_BUTTON_TAP) {
        BLINKER_LOG("Button tap!");
        _stop();


    }
    else if (state == BLINKER_CMD_BUTTON_PRESSED) {
        BLINKER_LOG("Button pressed!");
        //forward();
        for(int i=0;i<50;i++)
        {
          digitalWrite(xinhao1,HIGH);
          Blinker.delay(3);
          digitalWrite(xinhao1,LOW);
          Blinker.delay(17);

          }


    }
    else if (state == BLINKER_CMD_BUTTON_RELEASED) {
        BLINKER_LOG("Button released!");  
        _stop();
    }
    else
    {
      BLINKER_LOG("Button released!");
      _stop();
      }
}

void button2_callback(const String & state)
{

    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CMD_BUTTON_TAP) {
        BLINKER_LOG("Button tap!");
        _stop();


    }
    else if (state == BLINKER_CMD_BUTTON_PRESSED) {
        BLINKER_LOG("Button pressed!");
        backward();

    }
    else if (state == BLINKER_CMD_BUTTON_RELEASED) {
        BLINKER_LOG("Button released!");  
        _stop();
    }
    else
    {
      BLINKER_LOG("Button released!");
      _stop();
      }
}



发表于 2019-8-20 22:00 | 显示全部楼层
有舵机驱动库,测试过,配合blinker驱动一切正常。。。。。。
 楼主| 发表于 2019-8-20 22:24 | 显示全部楼层
coloz 发表于 2019-8-20 22:00
有舵机驱动库,测试过,配合blinker驱动一切正常。。。。。。

哦no,请问mega2560是不是所有的数字引脚都可以用呢,还有示例程序里有吗
发表于 2019-8-20 22:32 | 显示全部楼层
包包大人666123 发表于 2019-8-20 22:24
哦no,请问mega2560是不是所有的数字引脚都可以用呢,还有示例程序里有吗

IDE自带servo库和例程
 楼主| 发表于 2019-8-21 00:09 | 显示全部楼层
coloz 发表于 2019-8-20 22:00
有舵机驱动库,测试过,配合blinker驱动一切正常。。。。。。

大佬,还在吗,我试了舵机库,用uno9号引脚可以的,但是用9,10两个引脚就会不受控制,这是为什么?

void button1_callback(const String & state)
{
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CMD_BUTTON_TAP) {
        BLINKER_LOG("Button tap!");

        
    }
    else if (state == BLINKER_CMD_BUTTON_PRESSED) {
        BLINKER_LOG("Button pressed!");
        myservo.write(100);              // tell servo to go to position in variable 'pos'
        delay(15);
        
    }
    else if (state == BLINKER_CMD_BUTTON_RELEASED) {
        BLINKER_LOG("Button released!");

        
    }
   
   
    else {
        BLINKER_LOG("Get user setting: ", state);

    }
}
发表于 2019-8-21 10:09 | 显示全部楼层
包包大人666123 发表于 2019-8-21 00:09
大佬,还在吗,我试了舵机库,用uno9号引脚可以的,但是用9,10两个引脚就会不受控制,这是为什么?

voi ...

确保舵机独立供电
发表于 2019-8-21 10:29 | 显示全部楼层
好舵机像只有8和 9
 楼主| 发表于 2019-10-13 16:16 | 显示全部楼层
carlbeven 发表于 2019-8-21 10:29
好舵机像只有8和 9

是9和10号引脚,最后我用2560实现了控制两个舵机,但是舵机会颤抖,原因可能是自带的servo库9,10号引脚共用一个时钟,导致给的pwm信号不稳定
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 03:41 , Processed in 0.071842 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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