HC-SR04超声波模块的Arduino代码

1、本模块性能稳定,测度距离精确:
能和国外的SRF05,SRF02等超声波测距模块相媲美。模块高精度,盲区(2cm)超近,稳定的测距是此产品成功走向市场的有力根据!

2、主要技术参数:
1)使用电压:DC5V 
2)静态电流:小于2mA
3)电平输出:高5V 
4)电平输出:底0V
5)感应角度:不大于15度
6)探测距离:2cm-450cm
7)高精度:可达0.3cm

3.接线方式:

VCC、trig(控制端)、 echo(接收端)、 GND

4.使用方法:
一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了~~

5.模块工作原理:
  (1)采用IO触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
  (3)有信号返回,通过IO输出一高电平,高电平持续的时间就是
超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;

Arduino代码:

 

 

const int TrigPin = 2; 
const int EchoPin = 3; 
float cm; 
void setup() 
{ 
Serial.begin(9600); 
pinMode(TrigPin, OUTPUT); 
pinMode(EchoPin, INPUT); 
} 
void loop() 
{ 
//发一个10ms的高脉冲去触发TrigPin 
digitalWrite(TrigPin, LOW); 
delayMicroseconds(2); 
digitalWrite(TrigPin, HIGH); 
delayMicroseconds(10); 
digitalWrite(TrigPin, LOW); 
 
cm = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米 
cm = (int(cm * 100.0)) / 100.0; //保留两位小数 
Serial.print(cm); 
Serial.print("cm"); 
Serial.println(); 
delay(500); 
}

  

 

转载于:https://www.cnblogs.com/xiaohe520/articles/6780029.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的Arduino超声波避障小车代码,使用HC-SR04超声波测距模块: ``` // 定义超声波模块的引脚 #define trigPin 13 #define echoPin 12 // 定义电机驱动模块的引脚 #define motorPin1 9 #define motorPin2 8 #define motorPin3 7 #define motorPin4 6 // 定义小车的运动控制函数 void moveForward() { digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); } void moveBackward() { digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); } void turnLeft() { digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); } void turnRight() { digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); } void stopMoving() { digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); } // 定义超声波测距函数 float getDistance() { // 发送超声波信号 digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // 接收超声波回波 float duration = pulseIn(echoPin, HIGH); // 计算距离(单位:厘米) float distance = duration * 0.034 / 2; return distance; } void setup() { // 初始化引脚 pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); } void loop() { // 获取距离 float distance = getDistance(); // 判断距离并控制小车运动 if (distance < 10) { stopMoving(); delay(1000); turnLeft(); delay(1000); } else { moveForward(); } } ``` 在这个示例代码中,我们使用了HC-SR04超声波测距模块来测量小车前方的距离,并根据距离控制小车的运动。如果距离小于10厘米,则停止运动并向左转;否则向前行驶。你可以根据需要修改距离和运动控制的逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值