37种传感器(二)之超声波传感器模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid=24&extra=page%3D2 关键词:
( y5 r9 \! y, ]" S* x' |( p51、stm32、arduino、stduino、单片机、stduino UNO&Nano、超声波传感器模块 超声波测距原理简析:' Z* E8 k$ i& t- D, H+ I6 }
超声波传感器能够发射超声波并接收反射回的超声波信号。利用发射与接收的时间差以及传播速度(即声速,声音在空气中传播的速度约为340m/s)即可计算传感器到障碍物体的距离。单片机向超声波传感器发送脉冲,超声波传感器被此脉冲触发后会产生一个40 kHz的脉冲电信号,通过激励换能器处理以后,转换成机械振动,频率约在20 kHz以上,由此形成了超声波。 该信号经锥形“辐射口”处将超声波信号发射出去。接收器接收到反射回来的超声波信号后,将超声波变成微弱的电振荡,并将信号进行放大,就可得到所需的脉冲信号,此脉冲信号再返回给单片机。
& s! P0 j% k4 P+ C" u. }
实验目的:
! h) n6 S4 m$ `0 V( z8 r R5 C. l. d利用HC-SR04超声波传感器测量到目标物体的距离,并利用串口通信窗口显示。 具体而言,在模块trig端输出一个至少10us的高电平信号,则该模块内部将循环发射8个40KHz频率的脉冲;若检测由回波信号,则会在echo端产生高电平信号。 器材:
) k4 E3 f) Z8 D& l7 t3 p# b! L. FStduino Uno/Nano、超声波传感器HC-SR04、杜邦线4根 电路连接:
, u# G) `" n& Z' T
代码展示: - int trig = 8;//Trig端5 A6 L+ ]- N* j* ], [9 F" N* ?
- int echo = 9;//Echo端5 s" t% J! E/ w6 `9 r0 J
- void setup() # m* P2 A) K' z+ o6 ^3 q
- {4 E# C8 q; J8 ? y6 s
- // put your setup code here, to run once:
0 x' f' G2 l1 j+ v8 V - pinMode(echo,INPUT);% Z% i8 J5 \$ h7 I! K
- pinMode(trig,OUTPUT);+ E% n1 v, m& U3 J; J- u _( @
- Serial.begin(9600);
0 s8 W6 ?/ _2 ]( k \" Q* z - }5 w4 n7 E/ x% W# q( U; ?! m9 V, h
- void loop()8 H3 O r. ^& b- f
- {! d& D m# L" B$ U. G& X- X, }
- // put your main code here, to run repeatedly:$ b" K3 c6 W! N/ T! v
- unsigned long time = 0;
: S) ^, S( e5 R3 O) u4 ~1 \! q- r - while(1){
, K. Y) s( v: b1 c+ i( u - digitalWrite(trig,HIGH);
8 _) s. a' n7 d, U6 X - delayMicroseconds(15);//需要大于10
5 `+ _3 @5 i7 H" W/ H' l! \7 i- [ - digitalWrite(trig,LOW);
$ J. D J8 E( P, B0 c: h0 ]
. @+ U+ h' s+ L- time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。5 R2 I' n# I; X3 M, M* L
- float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来4 a' s; z( \; i/ n& H1 w
- Serial.println(S);) o: _6 } u( m1 T, {9 Z
- S = 0;3 A ?8 N [$ Y; o/ _' Q
- time = 0;9 U* W4 \/ G+ L# y0 t3 j9 g
- delay(500);# K z- S5 ]+ D: U0 x# t" b
' }6 W5 |/ R0 P0 b: o9 [: ?- }
" B1 o( d+ n4 ~. J+ ? - }
复制代码
% w9 F- c( _" `# L+ c: F1 K
超声波传感器连接:
. Z8 t; ?% ?7 ]
* w+ s6 S8 j' w6 @9 Q4 |
$ t, c2 s- T0 I1 R6 S3 W
5 B0 ~/ |, R+ `! G' k3 o. @7 ^" o9 l; a# @5 B' K" |
|