arduino与l298n避障小车,新人求大佬指教!!!
本帖最后由 弘毅 于 2018-8-15 08:02 编辑自己做了一个避障小车,只有一个UNO板和l298n板,一个二驱的履带式底盘和一个sr04的超声波传感器。
但是无论怎么调试代码都没用,下面附上代码和接法,求大佬们给指正一下。
#define IN1 8
#define IN2 9
#define IN3 12
#define IN4 13
int Echo_Pin=3;
int Trig_Pin=2;
int cm;
int L;
void forward();
void back();
void turnLeft();
void turnRight();
void _stop();
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);//波特率为9600
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(Trig_Pin,OUTPUT);
pinMode(Echo_Pin,INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
/*******************************超声波距离 *************************************/
digitalWrite(Trig_Pin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(Trig_Pin, HIGH);
delayMicroseconds(10);
digitalWrite(Trig_Pin, LOW);
cm = pulseIn(Echo_Pin, HIGH) / 58.0; //将回波时间换算成cm
//cm = (int(cm * 100.0)) / 100.0; //保留两位小数
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(200);
L=cm;
/***************************障碍判断***************************************/
if(L>=40)
{
forward();
}
if(L<40)
{
_stop();
delay(300);
turnRight();
delay(350);
if(L>=40)
{ forward(); }
else
{ turnRight(); }
}
}
void forward()
{
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void back( )
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void turnLeft( )
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void turnRight( )
{
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void _stop()
{
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
刚好要做一样的,学习学习!楼主接线有没有?
页:
[1]