欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于arduino的循跡小車,源代碼
[打印本頁]
作者:
anzian
時間:
2017-7-17 15:08
標題:
基于arduino的循跡小車,源代碼
void motor(char pin,char pwmpin,char state,int val)
{
pinMode(pin, OUTPUT);
if(state==1)
{
analogWrite(pwmpin,val);
digitalWrite(pin,1);
}
else if(state==2)
{
analogWrite(pwmpin,val);
digitalWrite(pin,0);
}
else if(state==0)
{
analogWrite(pwmpin,0);
digitalWrite(pin,0);
}
}
void runfoward(int i) //前進
{
motor(4,5,1,i);
motor(7,6,1,i);
}
void runback(int j) //后退
{
motor(4,5,2,j);
motor(7,6,2,j);
}
void turnL(int m) //左轉
{
motor(4,5,1,m);
motor(7,6,0,0);
}
void turnR(int n) //右轉
{
motor(4,5,0,0);
motor(7,6,1,n);
}
void stop() //停止
{
motor(4,5,0,0);
motor(7,6,1,0);
}
void setup()
{
pinMode(10,INPUT);//定義右邊傳感器,
pinMode(11,INPUT);//定義中間傳感器,
pinMode(12,INPUT);//定義左邊傳感器,
Serial.begin(9600);
}
void loop()
{
char num1,num2,num3;
num1=digitalRead(12);
num2=digitalRead(11);
num3=digitalRead(10);
if((num1==0)&&num2&&num3)
{
turnL(120); //檢測到左邊傳感器遇到黑線,說明小車右偏了,立即往左轉一點
delay(2);
while(1){
num2=digitalRead(11); //循環判斷中間傳感器度數,
if(num2==1)
{ turnL(120); //如果num2==1說明還沒有轉到中間位置,繼續左轉
delay(2);}
else
break; //檢測到num2==0說明轉過頭了,跳出循環,檢測三個傳感器的狀態再做出相應動作
} //后面道理相同
}
else if(num2&&num1&&(num3==0))
{
turnR(120);
delay(2);
while(1)
{
num2=digitalRead(11);
if(num2==1){
turnR(120);
delay(2);}
else
break;
}
}
else
{
runfoward(120);
delay(2);
}
}
作者:
1056461410
時間:
2017-7-20 22:28
厲害厲害,這個循跡有點像自動避障呀?
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1