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 的应用,并激发你更多的创意。

Arduino 智能小车制作教程:超声波避障、语音播报、循迹功能

原文地址: https://www.cveoy.top/t/topic/n52V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录