//定义左右电机引脚 #define motorL1 6 #define motorL2 5 #define motorR1 11 #define motorR2 10

//定义超声波引脚 #define trigPin 7 #define echoPin 8

//定义速度和时间 int speed = 150; int turnTime = 500;

void setup() { //设置左右电机引脚为输出模式 pinMode(motorL1, OUTPUT); pinMode(motorL2, OUTPUT); pinMode(motorR1, OUTPUT); pinMode(motorR2, OUTPUT);

//设置超声波引脚为输入输出模式 pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);

Serial.begin(9600); }

void loop() { //发出超声波信号 digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);

//计算超声波返回时间 long duration = pulseIn(echoPin, HIGH);

//计算距离 int distance = duration / 58;

Serial.print(distance); Serial.println('cm');

//如果距离小于10cm,小车后退并右转 if (distance < 10) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); delay(turnTime); digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); delay(turnTime); } //否则小车前进 else { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); delay(100); } }

注:以上程序仅供参考,实际使用时需要根据具体情况进行调整。

Arduino 避障智能小车程序:原理、代码及应用

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

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