您当前的位置:首页 > 电子 > 开发板/开源硬件

Arduino之超声波小车

时间:09-12来源:作者:点击数:

材料准备

Arduino UNO开发板

配套USB数据线

L298N电机驱动板

9V充电锂电池和9V电池扣子

装有两个直流电机马达小车

HC-SR04超声波传感器模块

配套杜邦线若干

Arduino IDE软件

程序逻辑

当超声波传感器检测到前面有障碍时,小车停止前进,无障碍时小车继续前进。

元件接线方式

Arduino UNO <------> L298N电机驱动板

5V <------> +5V

GND <------> GND

ENA <------> 4

IN1 <------> 5

IN2 <------> 6

ENB <------> 12

IN3 <------> 10

IN4 <------> 11

L298N电机驱动板 <------> 直流减速电机A

OUT1 <------> 一端接口

OUT2 <------> 另一端接口

L298N电机驱动板 <------> 直流减速电机B

OUT3 <------> 一端接口

OUT4 <------> 另一端接口

9V充电锂电池 <------> L298N电机驱动板

正极 <------> +12V

负极 <------> GND

Arduino UNO <------> HC-SR04超声波传感器模块

5V <------> VCC

GND <------> GND

7 <------> Trig

3 <------> Echo

程序编程(仅供参考)

float checkdistance_7_3() {  //定义一个浮点型函数checkdistance_7_3() 
  digitalWrite(7, LOW);      //低高低电平发一个短时间脉冲去Trigpin  
  delayMicroseconds(2);
  digitalWrite(7, HIGH);
  delayMicroseconds(10);
  digitalWrite(7, LOW);
  float distance = pulseIn(3, HIGH) / 58.00;   //将回波时间换算成distance
  delay(10);
  return distance;     //向调用函数返回distance
}
void setup(){
  pinMode(7, OUTPUT);   //定义7号管脚为输出
  pinMode(3, INPUT);    //定义3号管脚为输入
  pinMode(4, OUTPUT);  //定义4号管脚为输出
  pinMode(12, OUTPUT);  //定义12号管脚为输出
  pinMode(5, OUTPUT);   //定义5号管脚为输出
  pinMode(6, OUTPUT);   //定义6号管脚为输出
  pinMode(10, OUTPUT);   //定义10号管脚为输出
  pinMode(11, OUTPUT);   //定义11号管脚为输出
}
void loop(){
  if (checkdistance_7_3() < 20) {  //如果前面有障碍物,小车停止
    digitalWrite(4,LOW);
    digitalWrite(12,LOW);
  } else {      //否则小车前进
    digitalWrite(4,HIGH);
    digitalWrite(12,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,LOW);
    digitalWrite(10,HIGH);
    digitalWrite(11,LOW);
  }
}
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐