基于arduino智能小车的代码
作者:野牛程序员:2023-11-28 08:55:41Arduino阅读 3552
基于Arduino的智能小车代码可以分为多个部分,包括电机驱动、传感器读取、控制算法等。以下是一个简单的例子,使用Arduino和电机驱动模块L298N,以及超声波传感器HC-SR04。请注意,这只是一个基本的例子,可能需要根据具体硬件和需求进行修改和扩展。
// 引入所需的库
#include <NewPing.h>
// 定义超声波传感器引脚
#define TRIG_PIN 9
#define ECHO_PIN 10
// 定义电机驱动引脚
#define MOTOR1_ENA 5
#define MOTOR1_IN1 6
#define MOTOR1_IN2 7
#define MOTOR2_ENB 11
#define MOTOR2_IN3 12
#define MOTOR2_IN4 13
// 定义超声波传感器
NewPing sonar(TRIG_PIN, ECHO_PIN);
void setup() {
// 初始化电机驱动引脚
pinMode(MOTOR1_ENA, OUTPUT);
pinMode(MOTOR1_IN1, OUTPUT);
pinMode(MOTOR1_IN2, OUTPUT);
pinMode(MOTOR2_ENB, OUTPUT);
pinMode(MOTOR2_IN3, OUTPUT);
pinMode(MOTOR2_IN4, OUTPUT);
// 设置串口通信
Serial.begin(9600);
}
void loop() {
// 读取超声波传感器数据
unsigned int distance = sonar.ping_cm();
// 打印距离信息
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// 根据距离控制小车运动
if (distance > 20) {
// 前进
digitalWrite(MOTOR1_IN1, HIGH);
digitalWrite(MOTOR1_IN2, LOW);
analogWrite(MOTOR1_ENA, 150);
digitalWrite(MOTOR2_IN3, HIGH);
digitalWrite(MOTOR2_IN4, LOW);
analogWrite(MOTOR2_ENB, 150);
} else {
// 后退
digitalWrite(MOTOR1_IN1, LOW);
digitalWrite(MOTOR1_IN2, HIGH);
analogWrite(MOTOR1_ENA, 150);
digitalWrite(MOTOR2_IN3, LOW);
digitalWrite(MOTOR2_IN4, HIGH);
analogWrite(MOTOR2_ENB, 150);
// 等待一段时间
delay(500);
// 停止
digitalWrite(MOTOR1_ENA, LOW);
digitalWrite(MOTOR2_ENB, LOW);
// 等待一段时间
delay(500);
}
}这个例子中,当超声波传感器检测到距离小于20厘米时,小车会后退一段时间,然后停止。当距离大于20厘米时,小车前进。请根据具体情况进行调整。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:arduino门禁系统
- 下一篇:基于Arduino的电子密码锁设计
