标题:
巡线小车 三路传感器单片机源码
[打印本页]
作者:
动物园园长
时间:
2018-4-8 12:27
标题:
巡线小车 三路传感器单片机源码
单片机源程序如下:
int you=18;
int zuo=14;
int zhong=16;
void setup()
{
pinMode( you, INPUT);//youbian
pinMode( zhong, INPUT);//zhognjian
pinMode( zuo, INPUT);//zuobian
pinMode( 10, OUTPUT);
pinMode( 6, OUTPUT);
pinMode( 5, OUTPUT);
pinMode( 9, OUTPUT);
}
void loop()
{
tracing();
}
void tracing()
{
if (( !( digitalRead(zhong) ) && ( digitalRead(zuo) && digitalRead(you) ) ))
{go2();}
if (( digitalRead(zhong) && ( digitalRead(zuo) && digitalRead(you) ) ))
{go6();}
if (( !( digitalRead(zhong) ) && ( !( digitalRead(zuo) ) && !( digitalRead(you) ) ) ))
{go3();}
if (( digitalRead(zhong) && ( digitalRead(you) && !( digitalRead(zuo) ) ) ))
{left();}
if (( !( digitalRead(zhong) ) && ( !( digitalRead(zuo) ) && digitalRead(you) ) ))
{left2();}
if (( digitalRead(zhong) && ( digitalRead(zuo) && !( digitalRead(you) ) ) ))
{right();}
if (( !( digitalRead(zhong) ) && ( digitalRead(zuo) && !( digitalRead(you) ) ) ))
{right2();}
}
void left()
{
int num2;
while(1){
num2=digitalRead(zhong); //循环判断youbian传感器度数,
if(num2==1)
{ turnL(); //如果num2==0说
delay(2);}
else
break; //检测到num2==0说明转过头了,跳出循环,检测三个传感器的状态再做出相应动作
}
}
void turnL()
{
analogWrite(5 , 150);
analogWrite(6 , 0);
analogWrite(9 , 0);
analogWrite(10 , 150);
}
void left2()
{
int num2;
while(1){
num2=digitalRead(zuo); //循环判断youbian传感器度数,
if(num2==0)
{ turnL2(); //如果num2==0说
delay(2);}
else
break; //检测到num2==0说明转过头了,跳出循环,检测三个传感器的状态再做出相应动作
}
}
void turnL2()
{
analogWrite(5 , 255);
analogWrite(6 , 0);
analogWrite(9 , 0);
analogWrite(10 , 255);
}
void right()
{
int num2;
while(1){
num2=digitalRead(zhong); //循环判断youbian传感器度数,
if(num2==1)
{ turnR2(); //如果num2==0说
delay(2);}
else
break; //检测到num2==0说明转过头了,跳出循环,检测三个传感器的状态再做出相应动作
}
}
void turnR2()
{
analogWrite(5 , 0);
analogWrite(6 , 150);
analogWrite(9 , 150);
analogWrite(10 , 0);
}
void right2()
{ int num2;
while(1){
num2=digitalRead(you); //循环判断youbian传感器度数,
if(num2==0)
{ turnR(); //如果num2==0说
delay(2);}
else
break; //检测到num2==0说明转过头了,跳出循环,检测三个传感器的状态再做出相应动作
}
}
void turnR()
{
analogWrite(5 , 255);
analogWrite(6 , 0);
analogWrite(9 , 255);
analogWrite(10 , 0);
}
void go2()
{
analogWrite(5 , 255);
analogWrite(6 , 0);
analogWrite(9 , 255);
analogWrite(10 , 0);
}
void go3()
{
analogWrite(5 , 255);
analogWrite(6 , 0);
analogWrite(9 , 255);
analogWrite(10 , 0);
}
void go6()
{
analogWrite(5 , 240);
analogWrite(6 , 10);
analogWrite(9 , 250);
analogWrite(10 , 10);
}
复制代码
作者:
遇见独角马
时间:
2018-7-10 17:55
谢谢分享
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1