|
|
我上个月刚刚开始学习ARDUINO,因为老师要求,所以全部自学。
我目前的任务是要用UNO这个板子来控制三个DC MOTOR 和 两个 SERVO MOTOR。
在我写好程序后,我进行了测验,但是我发现竟然出现两个DC MOTOR同时转动,而且SERVO MOTOR完全不会转动的现象。
我猜想会不会是因为delay()引起的问题。
程序大致是这样子,写的很简单,有哪位高手能够帮帮我的忙吗?
//servo1 (s1) elbow of left arm
//dc motor1 (dc1) elbow of right arm
//servo2 (s2) gripper
//dc motor2 (dc2) body
//dc motoe3 (dc3) cloth at left hand
#include <Servo.h>
Servo s1;
Servo s2;
int interrupt = 2;
int dc11 = 3;
int dc12 = 4;
int dc21 = 5;
int dc22 = 6;
int dc31 = 7;
int dc32 = 8;
unsigned int a,i,j,n = 0
void setup(){
Serial.begin(9600);
pinMode(dc11,OUTPUT);
pinMode(dc12,OUTPUT);
pinMode(dc21,OUTPUT);
pinMode(dc22,OUTPUT);
pinMode(dc31,OUTPUT);
pinMode(dc32,OUTPUT);
s1.attach(12);
s2.attach(13);
}
void step1(){
digitalWrite(dc31,HIGH);
digitalWrite(dc32,LOW);
delay(1500);
digitalWrite(dc31,HIGH);
digitalWrite(dc32,HIGH);
digitalWrite(dc11,HIGH);
digitalWrite(dc12,LOW);
delay(2000);
digitalWrite(dc11,HIGH);
digitalWrite(dc12,HIGH);
for(i= 0; i < 100;i++);
{
s2.write(i);
delay(50);
}
digitalWrite(dc11,LOW);
digitalWrite(dc12,HIGH);
delay(2000);
digitalWrite(dc11,HIGH);
digitalWrite(dc12,HIGH);
}
void step2(){
digitalWrite(dc11,HIGH);
digitalWrite(dc12,LOW);
delay(2000);
for(j = 100; j > 0;j--)
{
s2.write(j);
delay(50);
}
digitalWrite(dc11,LOW);
digitalWrite(dc12,HIGH);
delay(2000);
digitalWrite(dc11,HIGH);
digitalWrite(dc12,HIGH);
}
void loop()
{
for(a = 0; a < 130;a++)
{
s1.write(a);
delay(50);
}
step1();
digitalWrite(dc21,HIGH);
digitalWrite(dc22,LOW);
delay(5000);
step2();
digitalWrite(dc31,LOW);
digitalWrite(dc32,HIGH);
delay(1500);
digitalWrite(dc31,HIGH);
digitalWrite(dc32,HIGH);
delay(10000);
step1();
digitalWrite(dc21,LOW);
digitalWrite(dc22,HIGH);
delay(5000);
step2();
for(n = 130; n > 0;n--)
{
s1.write(n);
delay(50);
}
}
|
|