标题: Arduino超声波模块测试源程序 能测出实时距离 [打印本页]
作者: Edmundshi 时间: 2018-4-11 15:46
标题: Arduino超声波模块测试源程序 能测出实时距离
应用示例
电路连接
超声波模块 | Arduino UNO |
VCC | +5V |
Trig | A2 |
Echo | A3 |
GND | GND |
示例代码
- //HC_SR04 Test
-
- const int TrigPin = A2;
- const int EchoPin = A3;
- float cm;
-
- void setup()
- {
- Serial.begin(9600);
- pinMode(TrigPin, OUTPUT);
- pinMode(EchoPin, INPUT);
- }
- void loop()
- {
- digitalWrite(TrigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(TrigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(TrigPin, LOW);
-
- cm = pulseIn(EchoPin, HIGH) / 58.0; //echo time conversion into a distance
- cm = (int(cm * 100.0)) / 100.0; //keep two decimal places
- Serial.print(cm);
- Serial.print("cm");
- Serial.println();
- delay(1000);
- }
复制代码
程序运行结果:超声波对着墙,测出实时距离,结果如图:
注意:TRIP引脚是内部上拉10K的电阻,用单片机的IO口拉低TRIP引脚,然后给一个10us以上的脉冲信号。
===接线方法===
*uno-SR04
*2-TRIG
*3-ECHO
*5V- VCC
*GND- GND
- const int TrigPin = 2;
- const int EchoPin = 3;
- float distance;
- void setup()
- {
- Serial.begin(9600);
- pinMode(TrigPin, OUTPUT);
- pinMode(EchoPin, INPUT);
- Serial.println("Ultrasonic sensor:");
- }
- void loop()
- {
- //发一个10μs的高脉冲去触发TrigPin
- digitalWrite(TrigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(TrigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(TrigPin, LOW);
- distance = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米
- Serial.print(distance);
- Serial.print("cm");
- Serial.println();
- delay(1000);
- }
复制代码
==程序效果==
打开串口监视器可以观察到输出的距离值为当前超声波距前方障碍物的实际距离。
-
-
Arduino测试程序.zip
161.67 KB, 下载次数: 12, 下载积分: 黑币 -5
作者: rsurb0371 时间: 2021-1-11 13:30
超声波测距 居然能精确到小数点 后两位?
作者: zhangleixbyl 时间: 2021-1-16 07:20
比51单片机简单多了
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |