arduino超声波跟随
时间: 2023-09-19 08:12:12 浏览: 84
gensui_arduino_超声波跟随_自动跟随小车_
5星 · 资源好评率100%
实现arduino超声波跟随的步骤如下:
1. 连接硬件设备:将超声波模块连接到Arduino板子上,同时连接电机模块,确保电机可以控制小车移动。
2. 编写程序:使用Arduino IDE编写程序,读取超声波测量到的距离,当距离小于一定值时,控制电机模块使小车向左或向右转向,直到避开障碍物。
3. 调试程序:将程序上传到Arduino板子上,观察小车是否能够实现超声波跟随功能,如果不能,需要检查硬件连接是否正确,以及程序是否存在错误。
以下是一个简单的Arduino程序示例:
```
#include <Servo.h>
Servo myservo; //创建一个舵机对象
int trigPin = 11; //定义超声波发送端引脚
int echoPin = 12; //定义超声波接收端引脚
int motorPin1 = 8; //定义电机引脚1
int motorPin2 = 9; //定义电机引脚2
int distance; //定义距离变量
void setup() {
myservo.attach(10); //将舵机连接到引脚10
pinMode(trigPin, OUTPUT); //设置超声波发送端为输出模式
pinMode(echoPin, INPUT); //设置超声波接收端为输入模式
pinMode(motorPin1, OUTPUT); //设置电机引脚1为输出模式
pinMode(motorPin2, OUTPUT); //设置电机引脚2为输出模式
Serial.begin(9600); //开启串口通信
}
void loop() {
digitalWrite(trigPin, LOW); //发送低电平信号
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); //发送高电平信号
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //再次发送低电平信号
distance = pulseIn(echoPin, HIGH) / 58; //读取距离值
Serial.print("Distance: "); //输出距离值
Serial.print(distance);
Serial.println(" cm");
if (distance < 20) { //当距离小于20cm时,控制电机向左转
myservo.write(0); //将舵机角度设为0度
digitalWrite(motorPin1, LOW); //设置电机引脚1为低电平
digitalWrite(motorPin2, HIGH); //设置电机引脚2为高电平
} else { //当距离大于等于20cm时,控制电机向右转
myservo.write(90); //将舵机角度设为90度
digitalWrite(motorPin1, HIGH); //设置电机引脚1为高电平
digitalWrite(motorPin2, LOW); //设置电机引脚2为低电平
}
delay(100); //等待一段时间,再次读取距离值
}
```
阅读全文