-
-
[原创]发一个用3个传感器检测火车是上行还是下行的代码
-
发表于:
2013-7-8 17:35
7540
-
[原创]发一个用3个传感器检测火车是上行还是下行的代码
本人原创程序,目前已在铁路部门使用...
3个轮子以上才确定为火车经过(一列火车最少为6个轮子)
以下为C代码,适用于atmega系列单片机
String text="";
long begin=millis();
long end=millis();
int length=0;
do{
Serial.println("Wei xiu che");
int CL = analogRead(A0);
if (CL>10)
{
do{
CL = analogRead(A0);
text =text+char('1') ;
} while(CL>1000);
do{
CL = analogRead(A0);
end=millis();
if((end-begin)/1000>30)
{
text="";
begin=end;
break;
}
}while(CL<1000);
do{ CL = analogRead(A0);
text =text+char('2') ;
end=millis();
if((end-begin)/1000>30)
{
text="";
begin=end;
break;
}
}while(CL>1000);
}
} while(text.length()<2);
text="";
do{
Serial.print("Fang Xiang:");
int V1 = analogRead(A0);
int V2 = analogRead(A1);
int V3 = analogRead(A2);
if (V1>10)
{int V4 =0;
do{
V4 = analogRead(A0);
}while(V4>10);
text =text+char('A') ;}
if (V2>10)
{int V5 =0;
do{
V5 = analogRead(A1);
}while(V5>10);
text =text+char('B') ;}
if (V3>10)
{int V6 =0;
do{
V6 = analogRead(A2);
}while(V6>10);
text =text+char('C') ;}
end=millis();
Serial.println(text);
if((end-begin)/1000>30)
{
text="";
begin=end;
break;
}
}while(text.length()<3);
if (text.length()>=3)
{ Serial.println("Fa Ming Ling");
delay(1000);
if(text=="ABC"||text=="BCA"||text=="CAB")
{ Serial.println("85,1,24,0,0,1,1,112");
delay(3000);
text="";}
if(text=="CBA"|| text=="BAC"||text=="ACB")
{ Serial.println("85,1,24,0,0,1,9,120");
delay(3000);
text="";
}
text="";
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!