【Arduino实战教程 003】超声波传感器的使用

实验环境:
Arduino1.8.3 IDE
Arduino mega 2560
超声波传感器
超声波传感器用于超声波距离和障碍检测。超声波传感器有两种模式可选择:单线模式只需要一根信号线,大大减少IO口资源;双线模式与原有功能一样,需要一根输入和输出信号线。侦测距离和精度也有较大提高,可达1cm到500cm,其在有效探测范围内自动标定,无需人工调整就可以获得障碍物准确的距离。令你的机器人像蝙蝠一样通过声纳来感知周围的环境,你只需要在单片机、Arduino微控制器中编写一小段程序,就可以根据障碍物的距离精确的控制机器人的电机运行,从而使你的机器人轻松地避开障碍物,因此其是机器人领域常用的测距避障模块。
相关接口
超声波传感器的引脚定义:
* OUTPUT:响应信号输入
* INPUT:触发控制信号输入
* +:电源(VCC)
* -:地(GND)
这里写图片描述
双线模式接线图
INPUT、OUTPUT端口如图所示接到控制器的I/O口。5V 和GND分别接到电源的+5V和GND。
注:在使用双线模式时模式选择开关(Mode)拨到数字2侧。
这里写图片描述
演示程序:
硬件连接如图所示,数字口4 接超声波的OUTPUT 、数字口5 接超声波INPUT ,将开关拨到数字2 一侧超声波进入双线模式。

int inputPin = 4;   //  接超声波的 output 引脚到数字D4脚 
int outputPin = 5;  //  接超声波的 input 引脚到数字D5脚 
int ledpin = 13;    // 定义 ledPin 引脚为D13脚
void setup() 
{ //初始化串口及引脚的输入、输出模式
  Serial.begin(9600); 
  pinMode(ledpin,OUTPUT); 
  pinMode(inputPin, INPUT); 
  pinMode(outputPin, OUTPUT); 
}                                                                                                                                          
void loop() 
{ 
  unsigned int x1,x2;
  digitalWrite(outputPin, LOW); //使发出发出超声波信号接口低电平2 μs 
  delayMicroseconds(2); 
  digitalWrite(outputPin, HIGH); //使发出发出超声波信号接口高电平10μs ,这里是至少10μs 
  delayMicroseconds(10); 
  digitalWrite(outputPin, LOW);  // 保持发出超声波信号接口低电平 
  float distance1 = pulseIn(inputPin, HIGH);  //  读出接收脉冲的时间 
  distance1 = distance1/58;       // 将脉冲时间转化为距离(单位:厘米) 
  x1 = distance1 * 100.0;
  distance1 = x1 / 100.0; //保留两位小数 
  Serial.print("x1 = "); 
  Serial.println(distance1);   // 输出距离值     
  delay(150);  
  if (distance1 >=50) 
  {  
     digitalWrite(ledpin,HIGH); //如果距离大于50厘米小灯亮起
  }  
  else                          
     digitalWrite(ledpin,LOW); //如果距离小于50厘米小灯熄灭
} 

程序效果:
打开串口监视器可以观察到输出的距离值为当前超声波距前方障碍物的实际距离。
这里写图片描述
Reference:
http://www.alsrobot.cn/wiki/index.php/SKU:RB-02S001A_RB_URF02%E8%B6%85%E5%A3%B0%E6%B3%A2%E4%BC%A0%E6%84%9F%E5%99%A8

  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DaveBobo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值