操作方法
超声波传感器主要技术参数: 使用电压:DC5V; 静态电流:小于2mA; 电平输出:高5V; 电平输出:底0V; 感应角度:不大于15度; 探测距离:50px-11250px,高精度可达5px; 接线方式端口:VCC(电源)、trig(控制端)、echo(接收端)、GND(地)。
超声波传感器工作原理: ①采用I/O触发测距,给至少10us的高电平信号; ②模块自动发送8个40kHZ的方波,自动检测是否有信号返回; ③有信号返回,通过I/O输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。 测试距离=(高电平时间*声速(340M/S))/2。
超声波传感器工作原理(续): 超声波传感器主要利用多普勒原理, 通过晶振向外发射超过人体能感知的高频超声波; 一般选用25~40kHz波,然后控制模块检测反射回来波的频率, 如果区域内有物体运动,反射波频率就会有轻微的波动,即多普勒效应, 以此来判断照明区域的物体移动,从而达到控制开关的目的。 超声波的纵向振荡特性,可以在气体、液体及固体中传播且其传播速度不同;它还有折射和反射现象, 在空气中传播其频率较低,衰减较快; 而在固体、液体中则衰减较小,传播较远。 超声波传感器正是利用超声波的这些特性。
接线图: Arduino+超声波传感器
Arduino编程基础知识: pulseIn():用于检测引脚输出的高低电平的脉冲宽度。 pulseIn(pin, value); pulseIn(pin, value, timeout);//时间 Pin---需要读取脉冲的引脚 Value---需要读取的脉冲类型,HIGH或LOW Timeout---超时时间,单位微秒,数据类型为无符号长整型。
超声波传感器测距程序(典型): const int TrigPin = 2; const int EchoPin = 3; float cm; void setup(){ Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop(){ digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58; //将回波时间换算成cm cm = (int(cm * 100)) / 100; //保留两位小数 Serial.print(cm); Serial.print("cm");//串口输出 Serial.println(); delay(1000); }