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开发板上,然后将小车放在黑色线路上,它就会自动行驶了。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
