查看: 547|回复: 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的每日心情
    开心
    2020-6-4 04:50
  • 签到天数: 578 天

    [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);   
      }   
    }
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    Arduino 求助 串口接收数据不正确,数据丢失问题
    Arduino 求助 串口接收数
    问题整了好久,我自己写的C#程序发送数据,arduino接收数据。 但是发现arduino接收的
    小爱同学的控制电脑的远程blinker
    小爱同学的控制电脑的远程
    先说写贴原因,最近空了下来,看到一堆买来没有用的8266,心血来潮到论坛看看,看到不
    关于超声波测距的误差问题
    关于超声波测距的误差问题
    菜鸟请教一下各位大神, 最近做了一个超声波的测距实验,使用的是下面的模块 网上
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表