標(biāo)題: 基于arduino的壁障小車 [打印本頁]

作者: 北師貓    時間: 2016-3-17 22:32
標(biāo)題: 基于arduino的壁障小車
int SNUM[3]
int INA = 4;
int PWMA = 5;
int INB = 7;
int PWMB = 6; //電機B調(diào)速端

void motospd(int sp1,int sp2) //電機速度控制函數(shù)。括號內(nèi)分別為左右電機速度值,
{                        //范圍-255~+255,正值為正轉(zhuǎn),負值為反轉(zhuǎn)。
  if(sp1>0)
    digitalWrite(INA, HIGH);   
  else
     digitalWrite(INA, LOW);
  if(sp2>0)
     digitalWrite(INB, HIGH);
  else
     digitalWrite(INB, LOW);
  analogWrite(PWMA,abs (sp1));
  analogWrite(PWMB,abs (sp2));
}
void setup(){

pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT); /
Serial.begin(9600); //打開串口,初始化
pinMode(INA,OUTPUT);
pinMode(INB,OUTPUT);

}
void loop(){

SNUM[0] = digitalRead(11);//左傳感器賦值
SNUM[1] = digitalRead(12); //中傳感器賦值
SNUM[2] = digitalRead(13); //右傳感器賦值
for (int i=0;i<3;i++)
{
   Serial.print(SNUM[i])
  }                  
   Serial.println(SNUM[2]);
  if ((SNUM[0]==1)&&(SNUM[1]==1)&&(SNUM[2]==1))//所有傳感器都沒有檢測到障礙
motospd(100,100);                          //直行
  if ((SNUM[0]==0)&&(SNUM[1]==1)&&(SNUM[2]==1)) //左傳感器檢測到障礙物
    motospd(100,50);                           //右轉(zhuǎn)
    if ((SNUM[0]==1)&&(SNUM[1]==1)&&(SNUM[2]==0)) //右傳感器檢測到障礙物
    motospd(50,100);                             //左轉(zhuǎn)
    if ((SNUM[0]==1)&&(SNUM[1]==0)&&(SNUM[2]==1)) //中傳感器檢測到障礙物
    motospd(-100,-100);                       
delay(50);
}



作者: admin    時間: 2016-3-17 22:55
樓主能分享一下電路嗎?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1