|
本帖最后由 prcthinker 于 2014-5-26 08:33 编辑
接口1连触碰传感器,控制拦车杆关闭位置
3连颜色传感器,通过不同颜色车时发出不同声音,因灵敏度关系,不太理想
4连超声波传感器,感应是否有车通过
A连接抬杆马达
下是程序
//by prcthinker
//2014-5-22
int flag,t,n,i;
task open() //抬杆
{
while(true)
{
if (SensorUS(IN_4)<15&&Sensor(IN_1)==1)
{
RotateMotor(OUT_A,50,-90); //抬90度
}
//根据不同颜色发出不同声音
if (Sensor(IN_3)==2)
PlayToneEx(262,400,3,FALSE);
else if (Sensor(IN_3)==3)
PlayToneEx(362,400,3,FALSE);
else if (Sensor(IN_3)==4)
PlayToneEx(462,400,3,FALSE);
else if (Sensor(IN_3)==5)
PlayToneEx(562,400,3,FALSE);
else if (Sensor(IN_3)==6)
PlayToneEx(662,400,3,FALSE);
}
}
task close() //放杆
{
while(true)
{
if (flag==1&&Sensor(IN_1)==0)
{
OnFwd(OUT_A,30);
until(Sensor(IN_1)==1);
Off(OUT_A);
}
}
}
task wait() //连续一段时间没车通过时才能放杆,主要是多节轨道车之间有空隙,防止误判
{
while(true)
{
if (SensorUS(IN_4)>=15&&Sensor(IN_1)==0)
{
if(n>=t)
flag=1;
else
n++;
}
else
{
flag=0;
n=0;
}
Wait(100);
}
}
task main()
{
Precedes(open,close,wait);
flag=0;
t=20;
n=0;
//chushihua
SetSensor(IN_1,SENSOR_TOUCH);
//SetSensor(IN_2,SENSOR_TOUCH);
SetSensor(IN_3,SENSOR_COLORFULL);
SetSensor(IN_4,SENSOR_LOWSPEED);
if (Sensor(IN_1)==0)
{
OnFwd(OUT_A,30);
until(Sensor(IN_1)==1);
Off(OUT_A);
}
}
|
|