//-------------------------------------------------------------------//
//*******************************************************************//
///
//電機設定/
///
#define leftA_PIN 5
#define leftB_PIN 6
#define righA_PIN 9
#define righB_PIN 10
void motor_pinint( ); //引腳初始化
void forward( ); //前進
void back( ); //后退
void turnLeftOrigin( ); //原地左
void turnRightOrigin( ); //原地右
void turnRightforword( ); //右前
void turnLeftforword( ); //左前
void turnLeftback( ); //左后
void turnRightback( ); //右后
void _stop(); //停車
//-------------------------------------------------------------------//
//*******************************************************************//
///
//藍牙遙控/
///
int receive;
void reve(void);
//----------------------------------------------------------------//
void setup()
{
Serial.begin(9600); //串口波特率9600(手機端使用)
motor_pinint( );
}
void loop()
{
reve();
}
void reve(void)
{
receive=Serial.parseInt();
if(receive==7) {forward( ) ;delay(500);_stop();}//前進
else if(receive==6) {back( ) ;delay(500);_stop();}//后退
else if(receive==1) {_stop() ;delay(500);_stop();}//停車
else if(receive==3) {turnLeftforword( ) ;delay(500);_stop();}//左前
else if(receive==2) {turnRightforword( );delay(500);_stop();}//右前
else if(receive==5) {turnLeftback( ) ;delay(500);_stop();}//左后
else if(receive==4) {turnRightback( ) ;delay(500);_stop();}//右后
else if(receive==8) {turnLeftOrigin( ) ;delay(250);_stop();}//原地左
else if(receive==9) {turnRightOrigin( ) ;delay(250);_stop();}//原地右
}
/*電機引腳初始化*/
void motor_pinint( )
{
pinMode (leftA_PIN, OUTPUT); //設定引腳為輸出引腳
pinMode (leftB_PIN, OUTPUT); //設定引腳為輸出引腳
pinMode (righA_PIN, OUTPUT); //設定引腳為輸出引腳
pinMode (righB_PIN, OUTPUT); //設定引腳為輸出引腳
}
/**************************************************
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,120); //左輪后退
analogWrite(righA_PIN,120);
analogWrite(righB_PIN,0); //右輪前進
}
/**************************************************
turnRightOrigin子函式——原地右轉子函式
函式功能:控制車原地右轉
**************************************************/
void turnRightOrigin( )
{
analogWrite(leftA_PIN,120);
analogWrite(leftB_PIN,0); //左輪前進
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,120); //右輪后退
}
/**************************************************
turnRightforword子函式——右前運動子函式
函式功能:控制車右前
**************************************************/
void turnRightforword( )
{
analogWrite(leftA_PIN,200);
analogWrite(leftB_PIN,0); //左輪快前進
analogWrite(righA_PIN,120);
analogWrite(righB_PIN,0); //右輪慢前進
}
/**************************************************
turnLeftforword子函式——左前運動子函式
函式功能:控制車左前
**************************************************/
void turnLeftforword( )
{
analogWrite(leftA_PIN,120);
analogWrite(leftB_PIN,0); //左輪慢前進
analogWrite(righA_PIN,200);
analogWrite(righB_PIN,0); //右輪快前進
}
/**************************************************
turnRightforword子函式——右后運動子函式
函式功能:控制車右后
**************************************************/
void turnRightback( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,200); //左輪快后退
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,120); //右輪慢后退
}
/**************************************************
turnLeftforword子函式——左后運動子函式
函式功能:控制車左后
**************************************************/
void turnLeftback( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,120); //左輪慢后退
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,200); //右輪快后退
}
/**************************************************
stop子函式—停止子函式
函式功能:控制車停止
**************************************************/
void _stop()
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,0); //左輪靜止不動
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,0); //右輪靜止不動
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/283137.html
標籤:其他開發語言
