lxf 发表于 2020-7-10 16:44:50

第37课 超声波小车

本帖最后由 lxf 于 2020-8-17 13:29 编辑

第37课 超声波小车

目标
超声波小车的使用
实验材料
Arduino UNO开发板配套USB数据线
L298N电机驱动板9V充电锂电池和9V电池扣子 装有两个直流电机马达小车HC-SR04超声波传感器模块配套杜邦线若干Arduino IDE软件

内容
前面没有障碍物时,小车前进,有障碍物时小车停止前进。
接线图

备注: L298N电机驱动板的ENA接Arduino UNO的4号引脚,ENB接Arduino UNO的12号引脚。
接线方式
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            负极          <------>             GNDArduino 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);
}
}
页: [1]
查看完整版本: 第37课 超声波小车