查看: 218|回复: 2

[未解决] 求助,如何实现 按一次按键 舵机往返2次180度?

[复制链接]

该用户从未签到

发表于 2019-11-9 08:08 | 显示全部楼层 |阅读模式
求助大神,我试了修改例子的代码,想要实现 按一次按键 舵机往返2次180度。但是程序就算不按按键也会自己执行。
#include<Servo.h>

int buttonCpin=11;
Servo myservo;
int pos=0;

void setup() {
pinMode( buttonCpin,INPUT_PULLUP);
myservo.attach(10);
Serial.begin(9600);
digitalWrite(buttonCpin,HIGH);
}


void loop() {
if(digitalRead(buttonCpin)==LOW);
{
  for(pos =0;pos<=180;pos+=1)
  myservo.write(pos);
  delay(15);
  for(pos =180;pos>=0; pos-=1)
  myservo.write(0);
}

}
  • TA的每日心情
    开心
    2019-11-13 05:39
  • 签到天数: 380 天

    [LV.9]以坛为家II

    发表于 2019-11-9 12:07 | 显示全部楼层
    本帖最后由 lwq1947 于 2019-11-9 12:12 编辑

    舵机往返2次180度应是这样if(digitalRead(buttonCpin)==LOW)不要分号)
    void loop() {
    if(digitalRead(buttonCpin)==LOW)
    { for (pos = 0; pos <= 180; pos += 1) {
       
        myservo.write(pos);              
        delay(15);                       
      }
      for (pos = 180; pos >= 0; pos -= 1) {
        myservo.write(pos);              
        delay(15);                       
      }
    for (pos = 0; pos <= 180; pos += 1) {
       
        myservo.write(pos);              
        delay(15);                     
      for (pos = 180; pos >= 0; pos -= 1) {
        myservo.write(pos);              
        delay(15);                     
      }
    }
    }
  • TA的每日心情
    开心
    2019-11-11 16:34
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2019-11-9 20:40 | 显示全部楼层
    #include <Servo.h>
    Servo myservo1;//定义舵机变量名
    Servo myservo2;
    Servo myservo3;
    Servo myservo4;
    int pos = 0;//postion
    void setup()
    {
    pinMode(A0,INPUT_PULLUP);
    pinMode(A1,INPUT_PULLUP);
    pinMode(A2,INPUT_PULLUP);
    pinMode(A3,INPUT_PULLUP);
    pinMode(A4,INPUT_PULLUP);
    pinMode(A5,INPUT_PULLUP);
    pinMode(2,INPUT_PULLUP);
    pinMode(3,INPUT_PULLUP);
    myservo.attach(3);//定义舵机接口
    myservo.attach(5);
    myservo.attach(6);
    myservo.attach(9);
    }
    void loop()
    {
     
      if( A1 == LOW ) //按下按钮
       {
        for(pos=0;pos<180;pos+=1)
         myservo.write(pos);//设置舵机旋转的角度
         delay(15);   
        }
       
       if( A2 == LOW )
      {  
       for(pos=180;pos>=1;pos-=1)
         myservo.write(pos);//设置舵机旋转的角度
         delay(15);   
      }   
    }
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    程序设计问题求大虾们帮帮忙
    程序设计问题求大虾们帮帮
    大家好,我是一个萌新想设计一个程序,现在遇到困难了。当运行按下按钮,电机会向end
    请问 3块 MCP 4725 ,能否同时接在一起使用?
    请问 3块 MCP 4725 ,能否
    买来时,ADDR是全开路的,使用代码中的所有地址,均无法使用。 // For Adafruit M
    打砖块游戏
    打砖块游戏
    **** 本内容被作者隐藏 ****
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表