欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于arduino的超聲波避障和循跡
[打印本頁]
作者:
用戶21111410
時間:
2021-8-21 19:34
標題:
基于arduino的超聲波避障和循跡
前幾天搞了個arduino板,就動手做了個arduino避障小車。。下面是源碼有需要的自行提取。
#define leftA_PIN 16
#define leftB_PIN 17
#define righA_PIN 18
#define righB_PIN 19
int PIN_1 = 4; //從車頭方向的最右邊開始排序
int PIN_2 = 5;
int PIN_3 = 6;
int PIN_4 = 7;
void forward( ); //前進
void back( ); //后退
void turnLeftOrigin( ); //原地左
void turnRightOrigin( ); //原地右
void turnRightforword( ); //右前
void turnLeftforword( ); //左前
void turnLeftback( ); //左后
void turnRightback( ); //右后
void _stop(); //停車
void setup()
{
Serial.begin(9600); //串口波特率9600(手機端使用)
pinMode (leftA_PIN, OUTPUT); //設置引腳為輸出引腳
pinMode (leftB_PIN, OUTPUT); //設置引腳為輸出引腳
pinMode (righA_PIN, OUTPUT); //設置引腳為輸出引腳
pinMode (righB_PIN, OUTPUT); //設置引腳為輸出引腳
pinMode (PIN_1, INPUT); //設置引腳為輸入引腳
pinMode (PIN_2, INPUT); //設置引腳為輸入引腳
pinMode (PIN_3, INPUT); //設置引腳為輸入引腳
pinMode (PIN_4, INPUT); //設置引腳為輸入引腳
}
void loop(){
int data[4];
data[0] = digitalRead(4);
data[1] = digitalRead(5);
data[2] = digitalRead(6);
data[3] = digitalRead(7);
if((data[0]==LOW) && (data[1]==LOW ) && (data[2]==LOW) && (data[2]==LOW) )
{
forward();
}
if(((data[0]==HIGH) && (data[1]==LOW) && (data[2]==LOW) && (data[3]==LOW)) || ((data[0]==HIGH) && (data[1]==HIGH) && (data[2]==LOW) && (data[3]==LOW)) )
{
turnLeftOrigin();
}
if(((data[0]==LOW) && (data[1]==LOW) && (data[2]==HIGH)&& (data[3]==LOW)) || ((data[0]==LOW)&& (data[1]==LOW) && (data[2]==HIGH) && (data[3]==HIGH)) )
{
turnRightOrigin( );
}
}
/**************************************************
forward子函數——前進子函數
函數功能:控制車前進
**************************************************/
void forward( )
{
analogWrite(leftA_PIN,180);
analogWrite(leftB_PIN,0); //左輪前進
analogWrite(righA_PIN,180);
analogWrite(righB_PIN,0); //右輪前進
}
/**************************************************
back子函數——后退子函數
函數功能:控制車后退
**************************************************/
void back( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,180); //左輪后退
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,180); //右輪后退
}
/**************************************************
turnLeftOrigin子函數——原地左轉子函數
函數功能:控制車原地左轉
**************************************************/
void turnLeftOrigin( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,255); //左輪后退
analogWrite(righA_PIN,255);
analogWrite(righB_PIN,0); //右輪前進
}
/**************************************************
turnRightOrigin子函數——原地右轉子函數
函數功能:控制車原地右轉
**************************************************/
void turnRightOrigin( )
{
analogWrite(leftA_PIN,255);
analogWrite(leftB_PIN,0); //左輪前進
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,255); //右輪后退
}
/**************************************************
turnRightforword子函數——右前運動子函數
函數功能:控制車右前
**************************************************/
void turnRightforword( )
{
analogWrite(leftA_PIN,150);
analogWrite(leftB_PIN,0); //左輪快前進
analogWrite(righA_PIN,128);
analogWrite(righB_PIN,0); //右輪慢前進
}
/**************************************************
turnLeftforword子函數——左前運動子函數
函數功能:控制車左前
**************************************************/
void turnLeftforword( )
{
analogWrite(leftA_PIN,128);
analogWrite(leftB_PIN,0); //左輪慢前進
analogWrite(righA_PIN,150);
analogWrite(righB_PIN,0); //右輪快前進
}
/**************************************************
turnRightforword子函數——右后運動子函數
函數功能:控制車右原地
**************************************************/
void turnRightback( )
{
analogWrite(leftA_PIN,255);
analogWrite(leftB_PIN,0); //左輪慢前進
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,0); //右輪停止
}
/**************************************************
turnLeftforword子函數——左后運動子函數
函數功能:控制車左原地
**************************************************/
void turnLeftback( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,0); //左輪停止
analogWrite(righA_PIN,255);
analogWrite(righB_PIN,0); //右輪慢前進
}
/**************************************************
stop子函數—停止子函數
函數功能:控制車停止
**************************************************/
void _stop( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,0); //左輪靜止不動
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,0); //右輪靜止不動
}
復制代碼
作者:
用戶21111410
時間:
2021-8-21 19:35
第一次寫稿沒有什么經驗希望大家可以提出寶貴意見。
作者:
glinfei
時間:
2021-8-23 10:15
是不是經常出軌啊?而且把四個紅外當兩個用了,處理不了直角彎啊。
作者:
用戶21111410
時間:
2021-8-23 16:24
不會呀,我感覺四個更穩定些。。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1