|
怎样让舵机用一个按钮实现正转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();
}
}
|
|