请教如何控制两个舵机
我想设计一个用51单片机控制arduino,由arduino控制两个舵机,方法是由51给arduino的io口发送高低电平,arduino检测后,控制两个舵机的左右、上下转动,可是发现舵机晃动的特别厉害,我用的是arduino uno和两个辉盛MG905,9克金属舵机。不知道是什么原因,请大神解答一下吧。#include <Servo.h>
#define leftmax 155
#define rightmax 35
#define upmax 90
#define downmax 180
int leftpin=1;
int rightpin=2;
int uppin=4;
int downpin=8;
int left=0;
int right=0;
int up=0;
int down=0;
Servo myservo1;
Servo myservo2;
//Servo myservo3;
//Servo myservo4;
//Servo myservo5;
int pos_left = 95;
int pos_right = 95;
int pos_up = 120;
int pos_down = 120;
void setup()
{
pinMode(1,INPUT);
pinMode(2,INPUT);
pinMode(4,INPUT);
pinMode(8,INPUT);
myservo1.attach(3);
myservo2.attach(5);
// myservo3.attach(6);
// myservo4.attach(9);
// myservo5.attach(10);
//Serial.begin(9600);
}
void loop()
{
left=digitalRead(leftpin);
right=digitalRead(rightpin);
up=digitalRead(uppin);
down=digitalRead(downpin);
/* if(left==HIGH)
{
if(pos_left>leftmax)pos_left=leftmax;
myservo1.write(pos_left);
delay(15);
pos_left++;
}
if(right==HIGH)
{
if(pos_right<rightmax)pos_right=rightmax;
myservo1.write(pos_right);
delay(15);
pos_right++;
}
*/
if(up==HIGH)
{
if(pos_up<upmax)pos_up=upmax;
myservo2.write(pos_up);
delay(15);
pos_up++;
}
if(down==HIGH)
{
if(pos_down>downmax)pos_down=downmax;
myservo2.write(pos_down);
delay(15);
pos_down++;
}
}
电力不足
舵机要使用外接电源 ! 好的,我试试吧。还想知道一点,就是有没有必要买淘宝上的16路舵机控制板呢?我的作品有一个摄像头云台,需要2个舵机,还有一个3舵机的机械臂,用一个arduino uno是不是没法很好的实现功能呢? mega2560有16个PWM,价格也不贵。 狙击手ggg 发表于 2015-4-14 19:16 static/image/common/back.gif
好的,我试试吧。还想知道一点,就是有没有必要买淘宝上的16路舵机控制板呢?我的作品有一个摄像头云台,需 ...
建议加个舵机扩展板
页:
[1]