#define index 12
const int LEDPins[index]={A0,A1,A2,A3,A4,A5,A8,A9,A10,A11,A12,A13};
int val[index];
int dirPin1=3;
int stepperPin1=2;
int dirPin2=7;
int stepperPin2=6;
void setup()
{ pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT);
pinMode(A5,INPUT);
pinMode(A12,INPUT);
pinMode(A13,INPUT);
pinMode(A8,INPUT);
pinMode(A9,INPUT);
pinMode(A10,INPUT);
pinMode(A11,INPUT);
pinMode(A0,INPUT);
pinMode(3,OUTPUT);
pinMode(2,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
digitalWrite(3,LOW);
digitalWrite(2,LOW);
digitalWrite(7,LOW);
digitalWrite(6,LOW);}
void loop()
{
for(;;)
for(int i=0;i<index;i++)
{ val[i]=analogRead(LEDPins[i]);
if(val[i]<30) //黑线
{if(i<5)
{turnleft(false,(5-i)*100);}
else if(i==5)
{stop;}
else
{turnright(false,(i-6)*100);}
}}
}
void step(boolean dir,int steps)
{
digitalWrite(dirPin1,dir);
digitalWrite(dirPin2,dir);
delay(50);
for(int i=0;i<steps;i++)
{
digitalWrite(stepperPin1, HIGH);
digitalWrite(stepperPin2, HIGH);
delayMicroseconds(100);
digitalWrite(stepperPin1, LOW);
digitalWrite(stepperPin2, LOW);
delayMicroseconds(100);
}
}
void turnleft(boolean dir,int zws)
{digitalWrite(dirPin1,dir);
delay(50);
for(int i=0;i<zws;i++)
{digitalWrite(stepperPin1,HIGH);
delayMicroseconds(100);
digitalWrite(stepperPin1,LOW);
delayMicroseconds(100);}
}
void turnright(boolean dir,int zws)
{digitalWrite(dirPin2,dir);
delay(50);
for(int i=0;i<zws;i++)
{digitalWrite(stepperPin2,HIGH);
delayMicroseconds(100);
digitalWrite(stepperPin2,LOW);
delayMicroseconds(100);}
}
void stop()
{digitalWrite(stepperPin1,LOW);
digitalWrite(stepperPin2,LOW);}