前几天搞了个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); //右轮静止不动
- }
复制代码
|