|
前幾天搞了個(gè)arduino板,就動(dòng)手做了個(gè)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( ); //前進(jìn)
- void back( ); //后退
- void turnLeftOrigin( ); //原地左
- void turnRightOrigin( ); //原地右
- void turnRightforword( ); //右前
- void turnLeftforword( ); //左前
- void turnLeftback( ); //左后
- void turnRightback( ); //右后
- void _stop(); //停車
- void setup()
- {
- Serial.begin(9600); //串口波特率9600(手機(jī)端使用)
- pinMode (leftA_PIN, OUTPUT); //設(shè)置引腳為輸出引腳
- pinMode (leftB_PIN, OUTPUT); //設(shè)置引腳為輸出引腳
- pinMode (righA_PIN, OUTPUT); //設(shè)置引腳為輸出引腳
- pinMode (righB_PIN, OUTPUT); //設(shè)置引腳為輸出引腳
- pinMode (PIN_1, INPUT); //設(shè)置引腳為輸入引腳
- pinMode (PIN_2, INPUT); //設(shè)置引腳為輸入引腳
- pinMode (PIN_3, INPUT); //設(shè)置引腳為輸入引腳
- pinMode (PIN_4, INPUT); //設(shè)置引腳為輸入引腳
- }
- 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子函數(shù)——前進(jìn)子函數(shù)
- 函數(shù)功能:控制車前進(jìn)
- **************************************************/
- void forward( )
- {
- analogWrite(leftA_PIN,180);
- analogWrite(leftB_PIN,0); //左輪前進(jìn)
- analogWrite(righA_PIN,180);
- analogWrite(righB_PIN,0); //右輪前進(jìn)
- }
- /**************************************************
- back子函數(shù)——后退子函數(shù)
- 函數(shù)功能:控制車后退
- **************************************************/
- void back( )
- {
- analogWrite(leftA_PIN,0);
- analogWrite(leftB_PIN,180); //左輪后退
- analogWrite(righA_PIN,0);
- analogWrite(righB_PIN,180); //右輪后退
- }
- /**************************************************
- turnLeftOrigin子函數(shù)——原地左轉(zhuǎn)子函數(shù)
- 函數(shù)功能:控制車原地左轉(zhuǎn)
- **************************************************/
- void turnLeftOrigin( )
- {
- analogWrite(leftA_PIN,0);
- analogWrite(leftB_PIN,255); //左輪后退
- analogWrite(righA_PIN,255);
- analogWrite(righB_PIN,0); //右輪前進(jìn)
- }
- /**************************************************
- turnRightOrigin子函數(shù)——原地右轉(zhuǎn)子函數(shù)
- 函數(shù)功能:控制車原地右轉(zhuǎn)
- **************************************************/
- void turnRightOrigin( )
- {
- analogWrite(leftA_PIN,255);
- analogWrite(leftB_PIN,0); //左輪前進(jìn)
- analogWrite(righA_PIN,0);
- analogWrite(righB_PIN,255); //右輪后退
- }
- /**************************************************
- turnRightforword子函數(shù)——右前運(yùn)動(dòng)子函數(shù)
- 函數(shù)功能:控制車右前
- **************************************************/
- void turnRightforword( )
- {
- analogWrite(leftA_PIN,150);
- analogWrite(leftB_PIN,0); //左輪快前進(jìn)
- analogWrite(righA_PIN,128);
- analogWrite(righB_PIN,0); //右輪慢前進(jìn)
- }
- /**************************************************
- turnLeftforword子函數(shù)——左前運(yùn)動(dòng)子函數(shù)
- 函數(shù)功能:控制車左前
- **************************************************/
- void turnLeftforword( )
- {
- analogWrite(leftA_PIN,128);
- analogWrite(leftB_PIN,0); //左輪慢前進(jìn)
- analogWrite(righA_PIN,150);
- analogWrite(righB_PIN,0); //右輪快前進(jìn)
- }
- /**************************************************
- turnRightforword子函數(shù)——右后運(yùn)動(dòng)子函數(shù)
- 函數(shù)功能:控制車右原地
- **************************************************/
- void turnRightback( )
- {
- analogWrite(leftA_PIN,255);
- analogWrite(leftB_PIN,0); //左輪慢前進(jìn)
- analogWrite(righA_PIN,0);
- analogWrite(righB_PIN,0); //右輪停止
- }
- /**************************************************
- turnLeftforword子函數(shù)——左后運(yùn)動(dòng)子函數(shù)
- 函數(shù)功能:控制車左原地
- **************************************************/
- void turnLeftback( )
- {
- analogWrite(leftA_PIN,0);
- analogWrite(leftB_PIN,0); //左輪停止
- analogWrite(righA_PIN,255);
- analogWrite(righB_PIN,0); //右輪慢前進(jìn)
- }
- /**************************************************
- stop子函數(shù)—停止子函數(shù)
- 函數(shù)功能:控制車停止
- **************************************************/
- void _stop( )
- {
- analogWrite(leftA_PIN,0);
- analogWrite(leftB_PIN,0); //左輪靜止不動(dòng)
- analogWrite(righA_PIN,0);
- analogWrite(righB_PIN,0); //右輪靜止不動(dòng)
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|