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

包包大人666123 发表于 2019-8-20 21:49

Blinker按钮无法控制舵机

用按钮控制舵机,给舵机一个周期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();
      }
}



coloz 发表于 2019-8-20 22:00

有舵机驱动库,测试过,配合blinker驱动一切正常。。。。。。

包包大人666123 发表于 2019-8-20 22:24

coloz 发表于 2019-8-20 22:00
有舵机驱动库,测试过,配合blinker驱动一切正常。。。。。。

哦no:L,请问mega2560是不是所有的数字引脚都可以用呢,还有示例程序里有吗

coloz 发表于 2019-8-20 22:32

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

IDE自带servo库和例程

包包大人666123 发表于 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);

    }
}

coloz 发表于 2019-8-21 10:09

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

voi ...

确保舵机独立供电

carlbeven 发表于 2019-8-21 10:29

好舵机像只有8和 9

包包大人666123 发表于 2019-10-13 16:16

carlbeven 发表于 2019-8-21 10:29
好舵机像只有8和 9

是9和10号引脚,最后我用2560实现了控制两个舵机,但是舵机会颤抖,原因可能是自带的servo库9,10号引脚共用一个时钟,导致给的pwm信号不稳定
页: [1]
查看完整版本: Blinker按钮无法控制舵机