找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8201|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于Arduino的小車碰觸轉(zhuǎn)彎代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:434271 發(fā)表于 2018-11-27 16:04 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
寫了一個簡單的,基于Arduino的小車碰觸轉(zhuǎn)彎代碼,思路:碰觸,后退,轉(zhuǎn)向,前進(jìn),,僅供學(xué)習(xí)討論

#include <AFMotor.h>

AF_Stepper motorG(200,1);
AF_Stepper motorD(200,2);

int impactPinG =0 ;
int impactPinD =2 ;

int seuilimpactG= 10;
int seuilimpactD= 10;

bool murG=false,murD=false;

int marka=0;

void rotation(int degree)
{

  int rota;

  int num;
  if (degree>=0)
  {

    rota=degree*75*3.14/180/0.65;
    for(num=0;num<=rota;num++)
    {
      motorG.step(1, FORWARD, INTERLEAVE);
      motorD.step(1, FORWARD, INTERLEAVE);
    }
  }
  else
  {
    rota=degree*75*3.14/180/0.65;
    for(num=0;num>=rota;num--)
    {
      motorG.step(1, BACKWARD, INTERLEAVE);
      motorD.step(1, BACKWARD, INTERLEAVE);
    }
  }
  
}


int FinDeCourse()
{

int impactG,impactD;

impactG=analogRead(impactPinG);
impactD=analogRead(impactPinD);

if (impactG<seuilimpactG&&murG==false)
{
  Serial.println("Contact gauche actionne");
  murG=true;

  return 1;
}
else if (impactD<seuilimpactD&&murD==false)
{
  Serial.println("Contact droit actionne");
  murD=true;

  return 2;
}

else if (impactD>seuilimpactD&&impactG>seuilimpactG)  
  {
    murD=false;
    murG=false;
    return 0;
  }
}
void ligne(int pas)
{

  int num=0;
  if (pas>=0)
  {

    for(num; num<pas;num++)
    {

      motorG.step(1, FORWARD, INTERLEAVE);
      motorD.step(1, BACKWARD, INTERLEAVE);
    }
  }
  else
  {
    for(num; num>pas;num--)
    {
      motorG.step(1, BACKWARD, INTERLEAVE);
      motorD.step(1, FORWARD, INTERLEAVE);
    }
  }
}

void setup()
{

  motorG.setSpeed(30);
  motorD.setSpeed(30);
  Serial.begin(9600);   
pinMode(impactPinD, INPUT);
pinMode(impactPinG, INPUT);
}
void loop()
{
Serial.println(FinDeCourse());
switch (FinDeCourse())
  {
  case 0:
  ligne(2);
  break;
  case 1:
  ligne(-40);
  rotation(45);
  break;
  case 2:
  ligne(-40);
  rotation(-45);
  break;
  }
}


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表