|
|
先上自己的程序吧
#include <EEPROM.h>
#include <Servo.h>
Servo myservo;
int duoji = 9;
int button_up = 2; //后拨的上拨按键
int button_down = 3; //后拨的下拨按键
int i = 0;
int rearangle[] = {5, 59, 69, 79, 88, 98, 107, 117, 150, 179, }; //后拨转动的角度
void setup()
{
myservo.attach(9);
i = EEPROM.read(10);
}
void loop()
{
int val_up = digitalRead(2);
int val_down = digitalRead(3);
if (val_up == HIGH)
{
event();
delay(500);
}
if (val_down == HIGH);
{
event2();
delay(500);
}
}
void event()
{
i++;
if(i>=9)
{ ////////////////////要修改档数的话请修改这里,9为10速,8为9速,7为8速。
i=9;
EEPROM.write(10, i);
}
EEPROM.write(10, i);
myservo.write(rearangle[i]);
}
void event2()
{
i--;
if(i<=0)
{
i=0;
EEPROM.write(10, i);
}
EEPROM.write(10, i);
myservo.write(rearangle[i]);
}
描述一下编程思路:
用两个按钮控制舵机,舵机角度设置为{5, 59, 69, 79, 88, 98, 107, 117, 150, 179} 10个档位
按上拨按钮,进档;按下拨按钮,退档位
现在的问题是:按下按钮后,舵机有反应,会偏转角度,但偏转后马上就会回转到初始角度。请问这是什么原因?程序有问题吗?
我的舵机是KST DS125MG 舵机,不知道是不是标准舵机,跟舵机有关系吗 |
|