|
|
void setup()
{
Serial.begin(9600);
}
void loop()
{
int L,R,i1,i2;
i1=analogRead(analogPin1);
L=(6762/(i1-9))-4;
if(L<threshold&&L>0) //物体偏左
{
while(1)
{
xx+=0.01;
i2=analogRead(analogPin2);
R=(6762/(i2-9))-4;
if(R<threshold&&R>0) //向右移动??
{
while(1) //等待左边检测离开
{
i1=analogRead(analogPin1);
L=(6762/(i1-9))-4;
if(L>threshold&&L>0)
while(1) //等待右边检测离开
{
i2=analogRead(analogPin2);
R=(6762/(i2-9))-4;
delay(20);
if(R>threshold)
{
delay(20);
//Serial.write(right);
if(xx>0&&xx<6)
{ //Serial.println('1');
Serial.write(3);
}
if(xx>6&&xx<12)
{Serial.write(2);}
if(xx>12)
{Serial.write(1);}
xx=0;
delay(20);
break;
}
}
break;
}
}
else //放弃检
{
i1=analogRead(analogPin1);
L=(6762/(i1-9))-4;
if(L>threshold) break;
}
}
}
i2=analogRead(analogPin2);
R=(6762/(i2-9))-4;
if( R<threshold&&R>0) //物体偏右
{
while(1)
{
xx+=0.01;
i1=analogRead(analogPin1);
L=(6762/(i1-9))-4;
if(!L) break;
if(L<threshold&&L>0) //向左移动??
{
while(1) //等待右边检测离开
{
i2=analogRead(analogPin2);
R=(6762/(i2-9))-4;
if(R>threshold)
while(1) //等待左边检测离开
{
i1=analogRead(analogPin1);
L=(6762/(i1-9))-4;
delay(20);
if(L>threshold)
{ delay(20);
//Serial.write(left);
if(xx>0&&xx<6)
{ Serial.write(6);}
if(xx>6&&xx<12)
{Serial.write(5);}
if(xx>12)
{Serial.write(4);}
xx=0;
delay(20) ;
break;
}
}
break;
}
}
else //放弃检??
{
i2=analogRead(analogPin2);
R=(6762/(i2-9))-4;
if(R>threshold) break;
}
}
}
}
求助大神 |
|