37种传感器(六)之声音传感器模块+Stduino Nano&UNO: ]( r* u8 x* t# n9 r
+ Q$ K" s+ A, l! v$ P0 ~ C3 d本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid=28&extra=page%3D1=
/ w& _' d/ f- l2 @
% H' n+ M6 U3 k0 ?8 g
) N% e; {: r Y+ S) Z关键词:
& e* p, z5 {& M51、stm32、arduino、stduino、单片机、stduino UNO&Nano、声音模块+ j4 J b# D# P# ?; [- p7 f* ]
) j7 J! W& c% R! }- r ^) ?6 m) _
( E6 V' E+ h; f$ M$ p说明:
+ K5 d/ O0 Z- o. \2 C声音传感器的作用相当于一个话筒(麦克风)。它用来接收声波,显示声音的振动图象,但不能对噪声的强度进行测量。传感器内置一个对声音敏感的电容式驻极体话筒。
5 N" @( v5 J& l声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-5V的电压,经过A/D转换被数据采集器接收。
) H, V3 T& K; p4 ?模块有两个输出,AO输出模拟量,实时输出麦克风两端电压值;当声音强度到达某个阈值时,DO引脚输出高电平信号,否则输出为低电平信号。(阈值可通过电位器调节)
* c5 @# O0 v! L0 H- |& p
, z9 Q5 p8 X2 l8 ~! F; u/ l+ f* u
6 [' S1 ~& K% L实验目的:
) v+ b) k, W5 @& y4 k" ]检测声音
8 D: p+ _: w; c6 v m( r
器材:
! a: j4 G4 t. P1 HStduino Uno/Nano;杜邦线;声音传感模块。
5 u( d% @6 g% x, R4 m8 u" f
电路连接:
Z+ n( a# D5 ]' \/ ]$ y9 P
6 {7 r* H) ~( _ R: a% r# w代码展示:
' ~: r) `/ X( W- <font face="Arial">int LED = 13;/ ^0 u- T9 \ m
- int BUTTON = 8;//DO接口
+ \0 m' x& t9 } - int val;//数字变量val
' H7 K% Z' A6 J) p3 s - void setup()0 m" D% p1 B$ s' T) ]
- {
- ~1 S3 e- ~: _) m9 F9 [ - // put your setup code here, to run once:
6 Q; c6 B+ M4 N" Q% a5 [4 ] - pinMode(LED,OUTPUT);6 ~$ H. e5 T* n" j1 R2 v9 \
- pinMode(BUTTON,INPUT);
6 s& X' B" i& X7 z1 b - }
& Y) O( {7 K* a7 S - void loop()1 p- P3 R6 p& x' P' E( Q0 u
- {
( Y- R" z* [0 H4 e8 E4 F - // put your main code here, to run repeatedly:& k& D5 R: Q) z# [3 x: D. J# {
- val=digitalRead(BUTTON);
( P3 t* L( H# l8 ?' j. }7 | Q1 N: V - if(val ==HIGH)//当监测到有声音时,LED闪烁
3 ^( x* _) ]* n, M( F4 l9 I) R - {
5 t" x/ C$ P9 J - digitalWrite(LED,LOW);
% F: B; y# u* L# C* H5 D, P$ [ - }' `9 L# v$ M# H3 `2 Q& T3 V0 T
- else9 V }- `. ^2 u! ?$ h
- {9 L Z% ^4 |' g2 \/ I5 k
- digitalWrite(LED,HIGH);4 y3 G8 K8 s/ j- |9 B
- }1 H5 r$ M2 A$ H( N# ?
- delay(1000);
; |: j' g8 V4 f; A8 E p/ z - val = 0;0 S' u% Q" k$ E0 X) m
- }</font>9 A4 C' o+ R. K8 o
复制代码 6 W' o8 u! j6 h; D" w3 k
+ P, z0 e3 O1 @- 模拟输出:6 V$ [- T3 _4 ~) |7 Y
- <font face="Arial" size="3">int sensorPin = A0;//A0接口
+ P ?7 q3 n9 [# H* ^ - int ledPin = 13;% G9 A! O; \& a% C6 ~
- int sensorValue = 0;//数字变量val! N+ \8 @" @! _2 g* X5 F* [
- void setup()& m# b4 Z/ v' f, y
- {
& N3 j, `' J' U - // put your setup code here, to run once:9 O& p4 L! N* G7 `- [8 v
- pinMode(ledPin,OUTPUT);% h, u$ W; z* \1 F
- pinMode(sensorPin,INPUT_ANALOG);$ q- s" H7 F- f
- Serial.begin(9600);8 ?+ s2 Y6 ]! F: Y A- ~ E
- }% k6 ^$ j# [& Q. E* H4 C
- void loop()0 `/ b! [; I% B- w5 e7 W
- {$ x; Q' x6 q$ ~! F' ?0 O6 E3 u
- // put your main code here, to run repeatedly:. F9 |0 b8 s7 y R! h
- sensorValue=analogRead(sensorPin);5 g2 ~3 N) x r2 w( f0 s
- digitalWrite(ledPin,LOW);, l% B/ B! W- Z# p
- delay(sensorValue);
# W5 j( L0 j& G: r- ^$ e3 a - digitalWrite(ledPin,HIGH);) _7 m/ _% N8 T/ l/ u2 Q v
- delay(sensorValue);3 h( E" [" [/ w
- Serial.println(sensorValue);1 o' y; }5 f+ h8 H
- }</font>
复制代码 实验效果:7 d) \6 ~0 y3 m, T
8 L2 Q8 e2 @9 [
6 d2 l* J1 |2 ]* n
|