|
楼主 |
发表于 2019-9-8 12:35:32
|
显示全部楼层
本帖最后由 eagler8 于 2019-9-8 13:16 编辑
- /*
- 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
- 实验一百一十:US-025(US-026)超声波测距传感器模块 代替HC-SR04 3V~5.5V
- 1、实验项目:US-025/US-026高精度测距例程
- 2、实验接脚:
- EchoPin = D2
- TrigPin = D3
- GND = GND
- VCC = 5V
- */
- unsigned int EchoPin = 2; // connect Pin 2(Arduino digital io) to Echo at US-025/US-026
- unsigned int TrigPin = 3; // connect Pin 3(Arduino digital io) to Trig at US-025/US-026
- unsigned long Time_Echo_us = 0;
- unsigned long Len_mm = 0;
- void setup()
- { //Initialize
- Serial.begin(9600); //Serial: output result to Serial monitor
- pinMode(EchoPin, INPUT); //Set EchoPin as input, to receive measure result from US-025,US-026
- pinMode(TrigPin, OUTPUT); //Set TrigPin as output, used to send high pusle to trig measurement (>10us)
- }
- void loop()
- {
- digitalWrite(TrigPin, HIGH); //begin to send a high pulse, then US-025/US-026 begin to measure the distance
- delayMicroseconds(20); //set this high pulse width as 20us (>10us)
- digitalWrite(TrigPin, LOW); //end this high pulse
-
- Time_Echo_us = pulseIn(EchoPin, HIGH); //calculate the pulse width at EchoPin,
- if((Time_Echo_us < 60000) && (Time_Echo_us > 1)) //a valid pulse width should be between (1, 60000).
- {
- Len_mm = (Time_Echo_us*34/100)/2; //calculate the distance by pulse width, Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm)
- Serial.print("Present Distance is: "); //output result to Serial monitor
- Serial.print(Len_mm, DEC); //output result to Serial monitor
- Serial.println("mm"); //output result to Serial monitor
- }
- delay(1000); //take a measurement every second (1000ms)
- }
复制代码 |
|