Arduino 智能小车制作教程:超声波避障、语音播报、循迹功能
Arduino 智能小车制作教程:超声波避障、语音播报、循迹功能
本教程将指导你使用 Arduino、超声波模块、语音模块、舵机、LED 灯模块、循迹模块和电机驱动模块制作一个智能小车。小车能够实现超声波避障、语音播报、循迹等功能。
硬件准备
- Arduino 开发板
- 超声波模块
- 语音模块
- 舵机
- LED 灯模块
- 循迹模块
- 电机驱动模块
代码
#include <SoftwareSerial.h>
#include <Servo.h>
#define trigPin 2
#define echoPin 3
#define ledPin 4
#define voicePin 5
#define trackLeftPin 6
#define trackRightPin 7
#define motorLeftPin1 8
#define motorLeftPin2 9
#define motorRightPin1 10
#define motorRightPin2 11
SoftwareSerial voice(12, 13);
Servo servo;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(trackLeftPin, INPUT);
pinMode(trackRightPin, INPUT);
pinMode(motorLeftPin1, OUTPUT);
pinMode(motorLeftPin2, OUTPUT);
pinMode(motorRightPin1, OUTPUT);
pinMode(motorRightPin2, OUTPUT);
voice.begin(9600);
servo.attach(14);
}
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;
if (distance < 20) {
voice.println('老师');
servo.write(90);
digitalWrite(ledPin, HIGH);
delay(5000);
digitalWrite(ledPin, LOW);
}
else {
int trackLeftValue = digitalRead(trackLeftPin);
int trackRightValue = digitalRead(trackRightPin);
if (trackLeftValue == HIGH && trackRightValue == LOW) {
digitalWrite(motorLeftPin1, HIGH);
digitalWrite(motorLeftPin2, LOW);
digitalWrite(motorRightPin1, LOW);
digitalWrite(motorRightPin2, HIGH);
}
else if (trackLeftValue == LOW && trackRightValue == HIGH) {
digitalWrite(motorLeftPin1, LOW);
digitalWrite(motorLeftPin2, HIGH);
digitalWrite(motorRightPin1, HIGH);
digitalWrite(motorRightPin2, LOW);
}
else {
digitalWrite(motorLeftPin1, HIGH);
digitalWrite(motorLeftPin2, LOW);
digitalWrite(motorRightPin1, HIGH);
digitalWrite(motorRightPin2, LOW);
}
}
}
连接方式
- 超声波模块的 trigPin 连接到 Arduino 的 2 号引脚,echoPin 连接到 3 号引脚;
- LED 灯模块的正极连接到 Arduino 的 4 号引脚,负极连接到 GND;
- 语音模块的 TXD 连接到 Arduino 的 12 号引脚,RXD 连接到 13 号引脚;
- 舵机的信号线连接到 Arduino 的 14 号引脚;
- 循迹模块的左侧探头连接到 Arduino 的 6 号引脚,右侧探头连接到 7 号引脚;
- 电机驱动模块的左侧电机 IN1 连接到 Arduino 的 8 号引脚,IN2 连接到 9 号引脚;右侧电机 IN1 连接到 Arduino 的 10 号引脚,IN2 连接到 11 号引脚。
注意
- 以上代码和连接方式仅供参考,具体实现需要根据你所使用的硬件模块型号和连接方式进行调整。
- 你需要根据自己的需求修改语音模块的地址和对应的内容。
- 在进行实际操作前,请确保你已经了解 Arduino 的基本知识和使用方式。
总结
本教程详细介绍了如何使用 Arduino 制作一个智能小车,并实现了超声波避障、语音播报、循迹等功能。希望本教程能够帮助你更好地理解 Arduino 的应用,并激发你更多的创意。
原文地址: https://www.cveoy.top/t/topic/n52V 著作权归作者所有。请勿转载和采集!