新手小白,舵机问题!-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1467|回复: 1

新手小白,舵机问题!

[复制链接]
发表于 2021-1-15 18:10 | 显示全部楼层 |阅读模式
怎样让舵机用一个按钮实现正转10秒停10秒反转10秒后停止,我用的是MG90S舵机是360度的 ,90度是停止,0度是正传,180是反转,
下面代码是三个按钮分别是反转,停止,正转,请大神指点一下。谢谢!
#include <Servo.h>
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "ee47f8efc932";     //key
char ssid[] = "good";
char pswd[] = "qwertyuiop";

// 新建组件对象
BlinkerButton Button1("btn-max");   //位置1 按钮 数据键名
BlinkerButton Button2("btn-min");   //位置2 按钮 数据键名
BlinkerButton Button3("btn-pw");   //位置3 按钮 数据键名
Servo myservo;

bool xunhuan_mode = false;

int servo_max,servo_min,ser_num,time_num,servo_pw;

void button1_callback(const String & state) {    //位置1按钮
    BLINKER_LOG("get button state: ", servo_max);
    myservo.write(servo_max);
    Blinker.vibrate();
}
void button2_callback(const String & state) {   //位置2按钮
    BLINKER_LOG("get button state: ", servo_min);
    myservo.write(servo_min);
    Blinker.vibrate();
}
void button3_callback(const String & state) {    //位置3按钮
    BLINKER_LOG("get button state: ", servo_pw);
    myservo.write(servo_pw);
    Blinker.vibrate();
}

void xunhuan(){
     myservo.write(servo_max);
     Blinker.delay(time_num/2);
     myservo.write(servo_min);
     Blinker.delay(time_num/2);
     myservo.write(servo_pw);
     Blinker.delay(time_num/2);
}

void setup() {

    Serial.begin(115200);   
    BLINKER_DEBUG.stream(Serial);
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    Button3.attach(button3_callback);
    myservo.attach(2);
    myservo.write(90);
    servo_max=180;
    servo_min=90;
    servo_pw=0;
   }

void loop() {

  Blinker.run();
  if(xunhuan_mode==true){
    xunhuan();
  }

}
 楼主| 发表于 2021-1-15 22:19 | 显示全部楼层
看过的朋友都讲一讲呀
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 14:45 , Processed in 0.069751 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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