Arduino超声波智能循迹避障小车简易教程

在开始教程之前,首先需要准备以下材料:

一、硬件:

-Arduino UNO开发板
- L298N电机驱动模块
- 超声波传感器
- 两个直流电机
- 4个轮子
- 电池盒和电池
- 面包板和杜邦线

二、软件:

- Arduino IDE

接下来,需要连接硬件电路。首先,将L298N电机驱动模块连接到Arduino UNO开发板。

连接方式如下:

1、 将L298N电机驱动模块的IN1、IN2、IN3和IN4引脚分别连接到Arduino UNO开发板的数字引脚8、9、10和11。
2、 将L298N电机驱动模块的ENA和ENB引脚连接到Arduino UNO开发板的数字引脚5和6。
3、 将电池盒的正极和负极分别连接到L298N电机驱动模块的+12V和GND引脚。
4、 将两个直流电机分别连接到L298N电机驱动模块的OUT1和OUT2以及OUT3和OUT4引脚。
5、 将超声波传感器的VCC引脚连接到Arduino UNO开发板的5V引脚,GND引脚连接到GND引脚,Trig引脚连接到数字引脚2,Echo引脚连接到数字引脚3。

接下来,我们需要编写代码。以下是代码示例:

//智能循迹避障小车

// 定义引脚
#define ENA 5
#define ENB 6
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
#define trigPin 2
#define echoPin 3

// 定义变量
int distance;
int speed = 200;

void setup() {
  // 初始化引脚
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // 发送超声波信号
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // 接收超声波信号
  distance = pulseIn(echoPin, HIGH) / 58;
  
  // 判断距离
  if (distance > 0 && distance < 20) {
    // 避障
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
    analogWrite(ENA, speed);
    analogWrite(ENB, speed);
  } else {
    // 循迹
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
    analogWrite(ENA, speed);
    analogWrite(ENB, speed);
  }
  
  // 输出距离
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
}

三、主要思路

通过超声波传感器获取前方障碍物的距离,如果距离小于20厘米,则小车会停下并向左转,以避免碰撞。如果距离大于等于20厘米,则小车会向前行驶,同时保持在黑色线路上行驶。

最后,将代码上传到Arduino开发板上,然后将小车放在黑色线路上,它就会自动行驶了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沄边小卖部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值