arduino超声波避障代码
时间: 2023-09-08 13:17:11 浏览: 46
以下是一个arduino超声波避障代码的示例:
```
#define trigPin 10
#define echoPin 11
#define ledPin 12
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 58.2;
Serial.print(distance);
Serial.println(" cm");
if (distance < 10) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
delay(500);
}
```
希望对你有帮助!
相关问题
arduino超声波避障小车代码
以下是一个基本的Arduino超声波避障小车代码:
```
#include <NewPing.h>
#define TRIG_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
#define LEFT_MOTOR_PIN1 6
#define LEFT_MOTOR_PIN2 7
#define RIGHT_MOTOR_PIN1 8
#define RIGHT_MOTOR_PIN2 9
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LEFT_MOTOR_PIN1, OUTPUT);
pinMode(LEFT_MOTOR_PIN2, OUTPUT);
pinMode(RIGHT_MOTOR_PIN1, OUTPUT);
pinMode(RIGHT_MOTOR_PIN2, OUTPUT);
}
void goForward() {
digitalWrite(LEFT_MOTOR_PIN1, HIGH);
digitalWrite(LEFT_MOTOR_PIN2, LOW);
digitalWrite(RIGHT_MOTOR_PIN1, HIGH);
digitalWrite(RIGHT_MOTOR_PIN2, LOW);
}
void goBackward() {
digitalWrite(LEFT_MOTOR_PIN1, LOW);
digitalWrite(LEFT_MOTOR_PIN2, HIGH);
digitalWrite(RIGHT_MOTOR_PIN1, LOW);
digitalWrite(RIGHT_MOTOR_PIN2, HIGH);
}
void turnLeft() {
digitalWrite(LEFT_MOTOR_PIN1, LOW);
digitalWrite(LEFT_MOTOR_PIN2, HIGH);
digitalWrite(RIGHT_MOTOR_PIN1, HIGH);
digitalWrite(RIGHT_MOTOR_PIN2, LOW);
}
void turnRight() {
digitalWrite(LEFT_MOTOR_PIN1, HIGH);
digitalWrite(LEFT_MOTOR_PIN2, LOW);
digitalWrite(RIGHT_MOTOR_PIN1, LOW);
digitalWrite(RIGHT_MOTOR_PIN2, HIGH);
}
void stop() {
digitalWrite(LEFT_MOTOR_PIN1, LOW);
digitalWrite(LEFT_MOTOR_PIN2, LOW);
digitalWrite(RIGHT_MOTOR_PIN1, LOW);
digitalWrite(RIGHT_MOTOR_PIN2, LOW);
}
void loop() {
unsigned int distance = sonar.ping_cm();
if (distance <= 10) {
stop();
delay(500);
turnLeft();
delay(500);
}
else {
goForward();
}
}
```
这个代码使用了NewPing库来测量超声波距离,并根据距离来控制小车的行动。如果距离小于等于10厘米,则停止并向左转500毫秒,否则向前行驶。小车的行动通过设置电机的引脚状态来实现。
写个Arduino超声波避障小车代码
以下是一个基础的Arduino超声波避障小车代码,可以让小车在遇到障碍物时自动停下或避开障碍物。
首先需要定义引脚:
```c++
const int trigPin = 9; // 超声波发射引脚
const int echoPin = 10; // 超声波接收引脚
const int leftMotorA = 5; // 左电机A引脚
const int leftMotorB = 6; // 左电机B引脚
const int rightMotorA = 10; // 右电机A引脚
const int rightMotorB = 11; // 右电机B引脚
```
然后在 `setup()` 函数中初始化引脚:
```c++
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(leftMotorA, OUTPUT);
pinMode(leftMotorB, OUTPUT);
pinMode(rightMotorA, OUTPUT);
pinMode(rightMotorB, OUTPUT);
}
```
接下来是主循环部分,我们可以使用 `NewPing` 库来方便地测量超声波距离。在距离小于一定值时,让小车停下或者转向避开障碍物。
```c++
#include <NewPing.h>
NewPing sonar(trigPin, echoPin, 200); // 超声波测距最大距离为200cm
void loop() {
delay(50);
int cm = sonar.ping_cm(); // 获取超声波距离
if (cm < 20) { // 距离小于20cm,停止小车
digitalWrite(leftMotorA, LOW);
digitalWrite(leftMotorB, LOW);
digitalWrite(rightMotorA, LOW);
digitalWrite(rightMotorB, LOW);
} else if (cm < 30) { // 距离小于30cm,左转
digitalWrite(leftMotorA, LOW);
digitalWrite(leftMotorB, HIGH);
digitalWrite(rightMotorA, HIGH);
digitalWrite(rightMotorB, LOW);
} else { // 距离大于等于30cm,前进
digitalWrite(leftMotorA, HIGH);
digitalWrite(leftMotorB, LOW);
digitalWrite(rightMotorA, HIGH);
digitalWrite(rightMotorB, LOW);
}
}
```
这是一个简单的超声波避障小车代码,可以根据自己的需求进行修改和优化。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)