找回密码
 立即注册

QQ登录

只需一步,快速开始

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

第34课 超声波控制舵机


目标

利用超声波传感器控制舵机转动

实验材料

Arduino UNO开发板
HC-SR04超声波传感器模块
MG90S金属齿轮舵机
配套USB数据线
配套杜邦线若干
Arduino IDE软件

微信图片_20200704135858.png

内容

当物体接近超声波,小于20时,舵机转动到30度,否则保持在90度位置。

接线图

图片2.png

接线方式

Arduino UNO    <------>  HC-SR04超声波传感器模块
              5V         <------>               VCC
            GND        <------>              GND
               7           <------>              Trig
              3            <------>              Echo
Arduino UNO   <------>    MG90S金属齿轮舵机
              5          <------>             信号线
             5V         <------>              正极
           GND       <------>              负极  

流程图

微信图片_20200704140055.png

程序实现代码

  1. #include <Servo.h>
  2. Servo servo_5;
  3. float checkdistance_7_3() {  //定义一个浮点型函数checkdistance_7_3()
  4.   digitalWrite(7, LOW);   //低高低电平发一个短时间脉冲去Trigpin   
  5.   delayMicroseconds(2);
  6.   digitalWrite(7, HIGH);
  7.   delayMicroseconds(10);
  8.   digitalWrite(7, LOW);
  9.   float distance = pulseIn(3, HIGH) / 58.00;   //将回波时间换算成distance
  10.   delay(10);
  11.   return distance;   //向调用函数返回distance
  12. }
  13. void setup(){
  14.   pinMode(7, OUTPUT);  //定义7号引脚为输出管脚
  15.   pinMode(3, INPUT);   //定义3号引脚为输入管脚
  16.   servo_5.attach(5);   //定义5号为舵机管脚
  17. }
  18. void loop(){
  19.   if (checkdistance_7_3() < 20) {   //当物体接近超声波的距离小于20时,舵机转动到30度位置
  20.     servo_5.write(30);
  21.   } else {     //否则舵机保持在90度位置
  22.     servo_5.write(90);
  23.   }
  24. }
复制代码
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册