arduino小车超声波避障TB6612
时间: 2023-10-27 16:07:22 浏览: 132
arduino超声波避障小车
5星 · 资源好评率100%
Arduino小车通过超声波传感器检测到前方的障碍物后,可以使用TB6612电机驱动模块控制电机进行避障操作。以下是手动编写的示例代码,供参考:
```C++
#include <AFMotor.h>
#define trigPin 13 // 超声波模块的trig引脚连接13号引脚
#define echoPin 12 // 超声波模块的echo引脚连接12号引脚
#define MAX_DISTANCE 200 // 超声波最大检测距离
AF_DCMotor motorL(1); // 定义左电机
AF_DCMotor motorR(2); // 定义右电机
void setup() {
Serial.begin(9600); // 打开串口
pinMode(trigPin, OUTPUT); // 设置超声波模块的trig引脚为输出模式
pinMode(echoPin, INPUT); // 设置超声波模块的echo引脚为输入模式
motorL.setSpeed(150); // 设置左电机的速度为150
motorR.setSpeed(150); // 设置右电机的速度为150
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // 读取超声波模块的echo引脚的高电平时间
distance = duration / 58.2; // 将高电平时间转换为距离,单位为厘米
Serial.print(distance); // 输出距离值
Serial.println(" cm");
if (distance <= 20) { // 如果检测到前方距离小于等于20cm的障碍物
motorL.run(BACKWARD); // 左电机倒退
motorR.run(BACKWARD); // 右电机倒退
delay(1000); // 倒退1秒钟
motorL.run(FORWARD); // 左电机前进
motorR.run(BACKWARD); // 右电机倒退
delay(1000); // 前进1秒钟
} else { // 如果没有检测到障碍物
motorL.run(FORWARD); // 左电机前进
motorR.run(FORWARD); // 右电机前进
}
}
```
需要注意的是,TB6612电机驱动模块需要根据具体的接线情况进行初始化,上述代码中的初始化方式仅供参考。
阅读全文