你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【更好用的单片机】【Stduino】Stduino学习(十八)无源蜂鸣...

[复制链接]
stduino 发布时间:2020-8-6 20:04
37种传感器(十八)无源蜂鸣器模块+Stduino Nano&UNO4 J7 ^) W: ^3 Y2 b! z

( M, b" D0 C- i- @
/ c# S7 Y8 X6 q4 {5 a. ^; N' D" d
关键词:
51、stm32、arduino、stduino单片机、stduino UNO&Nano、无源蜂鸣器模块

0 F* x; U0 k( J3 h* t! }
说明:
0 j' }% b  N, L  k- }
我们已经在第十六讲介绍过有源蜂鸣器,因此这里只介绍无源蜂鸣器。
18-无源蜂鸣器展示图.png
$ E$ O- ~6 `' @0 o# k

9 x$ M0 Y& y6 _
无源蜂鸣器没有震荡源,因此需要通过脉宽调制(PWM)输入特定的方波电压信号来发声。PWM原理可在其他教程中查找,本系列主要介绍传感器。
演奏一首音乐,最重要的每个音的音调(频率)和节拍(时长)。
C调音符对应的音调频率如下图:(每两个音调频率相差 )

! b4 O' b9 {  L5 i
无源蜂鸣器表格.png
* L+ f( [5 q) Y& @; c
# M8 e! @2 d0 t0 G  O: L# H5 c5 s& `
我们可以通过tone(pin,frequnce)函数来控制无源蜂鸣器的振动频率,利用delay()来控制节拍,利用noTone(pin)来终止振动。
# G( q$ j& T1 Q: u3 X
0 l3 H$ B. c. z  |$ O1 ^

. G' W2 t/ w4 J* O7 ]" C2 q% V8 U2 p
9 _3 h$ B3 j: p& K0 u" Z$ u实验目的:( V+ ]) a) {  R" \9 I
控制无源蜂鸣器演奏《天空之城》。天空之城是C调,一拍为四分之一音符长度,每一小节为四拍。
黑点在上为高音,在下为低音,没有为中音乐。而每两个竖杠之间为一小节,每一小节共有四个四分之一拍。下面如果画了一条横线,则是四分之一拍的二分之一,即八分之一拍;画了两条横线,则是四分之一的四分之一,即十六分之一拍。音符后面的横线则是前一音符的延续。
18-无源蜂鸣器简谱.png
2 f  C  u! F6 A- R% q

; I2 T2 e* z9 Z9 `$ u, N
) M) `' J) t9 N# ]
器材:
8 W0 R; ^) Y. b( r: |9 i9 k: wStduino UNO/Nano;杜邦线;无源蜂鸣器模块# I) @" }+ R6 e$ l/ c

7 Y% M, F. O9 O! i
  }: ^4 s5 W* p$ w8 q# {* F
电路连接:! h; x  z' J$ [2 q3 q0 B
18-无源蜂鸣器电路图.png , v9 _7 |) f( j) D8 X, w& E
% M8 c7 L( l5 F1 E6 o8 }- W" d
7 s0 |( n& L/ s) U. `
代码展示:
5 v4 j$ k& ~. p8 Q: h/ v
  1. <font face="Arial" size="2">#define C0 (2)
      c8 g  X) l# T5 c

  2. 8 ?. V8 T0 y. A" B, A1 U
  3. #define C1_LOW  (262)
    0 N" H/ P- l# t, }
  4. #define C2_LOW  (294)
    " I1 Y$ [: M4 Y- f
  5. #define C3_LOW  (330)
    # P+ W/ E/ ]  W2 x6 c. C! K
  6. #define C4_LOW  (349)
    4 _. S" [, r0 l! ~' Y
  7. #define C5_LOW  (392); `. H4 `" e; N
  8. #define C6_LOW  (440)
    % m8 ], D  i9 z; |
  9. #define C7_LOW  (494)% M: `8 ~( E2 o; `- Z6 g' B+ B! u( E

  10. 1 q, X7 U4 Z) D- D( g
  11. #define C1      (523)' d- K! Y- N/ `1 a& d
  12. #define C2      (587)
    ' j8 c8 K5 u6 y3 n( Z) n, A
  13. #define C3      (659)$ [, C2 p3 b) g+ i2 o
  14. #define C4      (698)
    5 K$ Z, G5 E/ D/ G9 ?
  15. #define C4S     (740)//C4## P9 \4 Q5 ^0 T  T" \
  16. #define C5      (784)
    $ ^& `  l0 E: U6 |1 _% H
  17. #define C5S     (831)//C5#
    9 k: L" ~& F" Z0 a/ L5 B
  18. #define C6      (880); {0 N9 Y" |1 F& d2 z8 G
  19. #define C7      (988)4 b  V  W! c1 w& ?( g! b7 M! k4 o# Y

  20. . k  _' y2 t: R% d$ y" T
  21. #define C1_HIGH (1046)
    2 n  y& \! Y3 Z
  22. #define C2_HIGH (1175)
    ) N. f, M2 o5 s/ d0 R/ S' K4 q
  23. #define C3_HIGH (1318)7 B' ~+ z# z: H+ x8 B& f
  24. #define C4_HIGH (1397)
    7 [) R3 J5 D# u4 [$ Y( W) j
  25. #define C5_HIGH (1568)& L$ c$ t' N2 S/ h2 l3 V
  26. #define C6_HIGH (1760)5 N2 z+ \* b3 J7 h
  27. #define C7_HIGH (1976)6 Q8 z  `6 b+ Z# `' ~1 V  n
  28. . a5 M7 z$ n" }
  29. #define WHOLE (1)
    4 d* X8 b0 H9 C5 L  ?
  30. #define HALF (0.5)
    8 y) F5 M6 `# A" O9 R; d
  31. #define QUARTER (0.25)
    4 f% {) v( G+ T1 }* R
  32. #define EIGHTH (0.125)
    1 z; F' N3 G+ o7 ~! f5 y/ ~0 A
  33. #define SIXTEENTH (0.0625)
    ) k! Y( R9 e4 D& S# n3 }( s
  34. - a5 D  ?' q! [& e
  35. int tune[]=                 //根据简谱列出各频率& {' ?5 S0 p3 M  M- P4 C9 q
  36. {
    ! t( q0 t# l% f  s% m
  37.     C6,C7,
    7 _* p& c( S$ }$ w. Z! j. M
  38.    
    , E( ]: Z$ u6 u$ f/ n! _( F! r/ L
  39.     C1_HIGH,C7,C1_HIGH,C3_HIGH,//7 }; R2 Y' `: g2 O
  40.     C7,C3,C3,
    % |& U! J2 {  o
  41.     C6,C5,C6,C1_HIGH,
    ) ?. k) q& H- L2 V! i# H
  42.     C5,C0,C3,C3,) z% Q" y3 q- z3 J5 U/ z  I9 q
  43.     C4,C3,C4,C1_HIGH,7 b0 T8 m( q; \9 Z& G0 R; ^+ g
  44.     C3,C0,C1_HIGH,C1_HIGH,C1_HIGH,
    8 x6 z5 L. l5 x# H& d' l0 g0 L3 h' j
  45.     C7,C4S,C4S,C7,
    : ~% k' k$ ~9 W1 ^' c( m
  46.    # R- h8 |( p. K8 c; `
  47.     C7,C0,C6,C7,//
    7 l8 b. Y2 h: H* }1 b
  48.     C1_HIGH,C7,C1_HIGH,C3_HIGH,
    / {" m4 n8 p4 M6 D; O  d! B. f
  49.     C7,C0,C3,C3,; p3 F7 f' R/ ^% M
  50.     C6,C5,C6,C1_HIGH,
    4 q) k. d1 ]1 I% l
  51.     C5,C0,C3,
    ) Z/ x% l" _, w" h2 D  X
  52.     C4,C1_HIGH,C7,C7,C1_HIGH,$ H7 ^6 L) t; a9 A# a% a8 S( P) r
  53.     C2_HIGH,C2_HIGH,C3_HIGH,C1_HIGH,C0,1 R; B8 Q9 c5 c' [1 S' |$ p
  54.    - O% {6 X7 f, y! w4 Q+ b$ d
  55.     C1_HIGH,C7,C6,C6,C7,C5S,//
    # u" g/ w2 r6 F" g
  56.     C6,C0,C1_HIGH,C2_HIGH,, n, `# r; {" y& A. c
  57.     C3_HIGH,C2_HIGH,C3_HIGH,C5_HIGH,
    " o: N7 c7 y( G
  58.     C2_HIGH,C0,C5,C5,
    ' M* G  ]* Z% I% p
  59.     C1_HIGH,C7,C1_HIGH,C3_HIGH,C0,C0,
    $ I! w; o* S9 Z
  60.     C6,C7,C1_HIGH,C7,C2_HIGH,C2_HIGH,
    9 E7 ^/ B! ]! {! g" J9 U
  61.     C1,C5,C5,C0,
    % S' P) W. L% q% K7 z
  62.    
    & H1 n0 [& e  m" c7 I% U0 d
  63.     C4_HIGH,C3_HIGH,C2_HIGH,C1_HIGH,//  h& G& S3 [3 ^  j5 w4 J# \
  64.     C3_HIGH,
    7 m4 U6 s$ [( e
  65.     C3_HIGH,C0,C3_HIGH,
    # p, `8 Q# u2 M
  66.     C6_HIGH,C5_HIGH,C5_HIGH,
    , b2 {% p8 W: _. o" |
  67.     C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,/ b; U+ k% @' F9 M# e& G6 h
  68.     C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C5_HIGH,
    , U7 z* v! l" }5 g/ o
  69.     C3_HIGH,C0,C3_HIGH,- X' I. s' Z# R# |
  70.     C6_HIGH,C5_HIGH,: u8 n! [) [5 U; @/ f
  71.     C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,
    " a5 E- c. P3 `0 \1 j
  72.     C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C7,
    ( z/ A& S  r& ?0 Y; u- G" ]
  73. 1 P9 t' t- j' X) ?
  74.     C6,C0,C6,C7,
    * x  C8 @% ^3 ~& Q% ?
  75.    8 Z/ o' y- P0 \- D3 B* {
  76.     C6* q' E2 d: q2 b1 M/ H4 o
  77. };
    ; B% x: L/ O6 p. q3 ?& b5 ?
  78. float durt[]=                   //根据简谱列出各节拍# L# Z7 `0 S; R+ o8 q5 E
  79. {
    & w! H" T1 c/ R0 b( S
  80.     EIGHTH,EIGHTH,
    $ I! V+ Z# {+ Y, n! ]
  81.    1 j* I7 _$ e# w- n6 G% G( H+ j) y1 a
  82.     QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,9 j0 z9 d. N% h
  83.     QUARTER + QUARTER + QUARTER,EIGHTH,EIGHTH,  v0 W7 r; ]0 ^) m
  84.     QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,$ d& c( o0 C7 N7 E: n# ~$ B6 Z) ]
  85.     QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,. B- g0 A1 n6 g4 |+ Q
  86.     QUARTER + EIGHTH,EIGHTH,EIGHTH,QUARTER+EIGHTH,5 r9 t, O' U' e
  87.     QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,EIGHTH,4 K3 S% |; O( U9 n% o
  88.     QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,* m  ]) k& F0 x9 B* ?0 k
  89.    
    + x: A) x# X! \4 W2 j) M
  90.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
    - i0 H& L* M* ~( b
  91.     QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,& Q/ {5 \. Z, E! c6 N' C
  92.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,/ h% k  g3 N" u: J5 [" i5 V% q
  93.     QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,. u2 Z# o+ f6 q+ L: m/ R
  94.     QUARTER+QUARTER+QUARTER,EIGHTH,EIGHTH,
    . ^9 W* N9 j6 V0 Y% f
  95.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,0 [1 N# P+ @' s8 C
  96.     EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,1 t- X; ~+ _. N8 G
  97.    1 u4 N, q* S4 k) q( D" b3 b. n% A1 {
  98.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,
    ; y- G8 [+ H6 V4 J4 T5 s: W
  99.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
    3 O. D" M$ k% E  s
  100.     QUARTER+EIGHTH,QUARTER,QUARTER,QUARTER,2 a* M4 O  R: s$ i+ v* ^
  101.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,6 {* U7 }. d' R0 @
  102.     EIGHTH,EIGHTH,QUARTER,QUARTER,
    6 v4 g7 X# m! {2 v, F! T
  103.     QUARTER+QUARTER,QUARTER,QUARTER,
    4 j3 w# q& I0 `( W! @# K
  104.     EIGHTH,EIGHTH,QUARTER,QUARTER,EIGHTH,EIGHTH,
    $ S, t7 t9 `, _1 I
  105.     QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,
    4 G$ ^3 `$ n4 ]6 G. z6 C
  106.    
    2 E7 W' s5 v; P
  107.     QUARTER,QUARTER,QUARTER,QUARTER,
    5 b2 [3 v2 ?- C# S; G# y4 ?" ]
  108.     QUARTER+QUARTER+QUARTER,
    ; @- t6 C; k* i+ i
  109.     QUARTER+QUARTER,QUARTER,QUARTER,
    . W4 T" x% A. C; S' p$ A: ]
  110.     QUARTER+QUARTER,QUARTER,QUARTER,
    $ Q: {6 H% C3 V) `
  111.     EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,
    * b( P/ ~+ a8 H( |6 r4 y0 U! I
  112.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,/ z2 r2 i8 x% v9 {2 ^
  113.     QUARTER+QUARTER,QUARTER,QUARTER,; o1 \( a) ]# u+ T5 R
  114.     QUARTER+QUARTER,QUARTER+QUARTER," m8 T! C. c' N) O
  115.     EIGHTH,EIGHTH,QUARTER+QUARTER,EIGHTH,EIGHTH,
    $ s) q- s5 c' f2 l7 c3 u% \0 l
  116.     QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,$ o$ H& L7 K0 E$ E
  117.     QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
    " U$ H4 E, z5 E" f2 Y
  118.    8 u2 G7 J3 I& f' W2 K6 S8 i7 H1 @9 z
  119.     QUARTER+QUARTER+QUARTER
    1 F; S4 y0 E+ r* w1 @* x4 i
  120.    
    0 F0 Q: ^/ v- P, t0 p2 D) H; d
  121. };* {! {* m+ a. B3 L

  122. . P  Z( o) N6 X: u' W: L
  123. int Time = 2000;
    * d, e, j; R; W  v6 Q- A( ]5 t
  124. int BUZZER = A0;1 E. n2 v2 J( H% d" l, |5 R" r

  125. 2 {$ x3 C& g1 B4 g3 C# P2 b0 N) b
  126. int length;
    3 E# r  Q5 b. i, s9 P. P

  127. " f, e; R& \7 f- I% v( L
  128. void setup()' s, U! h% h9 W# l7 Q* v
  129. {) T$ `" Z/ A& V$ X1 E' X$ q. }
  130.   // put your setup code here, to run once:
    ' q) N% U: U- D' e

  131.   K" O& Y2 M5 P* i7 [
  132.     length=sizeof(tune)/sizeof(tune[0]);   //计算长度8 P6 U5 v2 g3 ]$ I# E9 K; {
  133. }1 W+ u: V+ L4 E4 N  }/ }

  134. ! r# ~2 u2 Y& L& W# e8 k1 Q
  135. void loop()# w, X4 T1 `' x" r! X! \5 D! H4 c
  136. {
    0 I3 G/ Q! \) Z, m
  137.   // put your main code here, to run repeatedly:
    " N) t  {3 J2 e$ K; p
  138.     for(int i=0;i<length;i++)3 g: k$ t* P7 q; w. F+ J
  139.     {3 Q2 G+ Q4 j  v9 x  O* e
  140.         if(tune[i]!=0)
    ' ~2 n# N, x/ g
  141.         {
    1 |4 j/ U/ ^; K' p# s1 R* |/ u
  142.             tone(BUZZER,tune[i]);! O+ U2 Q* H% F" s$ x
  143.         }  
    " p( C& b2 o/ Y  L5 ?0 n) R
  144.         else
      x( ]4 {+ p# Z$ Q
  145.         {7 W  N. Y! d* C& h# g
  146.             noTone(BUZZER);
    7 C! ]+ M* w" {. F
  147.         }: ]" X+ q) B6 G% R0 K' T- O) y
  148.         delay(Time*durt[i]); //这里用来乐曲速度。
    + ^, [8 l7 T1 t" o. p5 b
  149.     }: m/ Q3 K7 O+ h
  150.     delay(2000);/ a( r0 g* \9 p& j4 F" F) E
  151. }</font>
复制代码
& ]: K$ m5 J, h& H. p4 B; {8 w' z

- V# J  H" f  J9 O
. w- C/ t$ T$ v/ F" F& |/ l

1 k# Q: N' y6 ^# O

Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。# b0 A4 p6 x$ t' O3 U/ T: J$ w/ J
IDE当前支持的功能有:

  • GDB调试
  • 封装库下载安装
  • 代码自动补全提示
  • 中英文模式
  • UTF-8\GBK编码格式
  • 代码快速格式化
  • SWD\串口程序下载&调试(已验证)
  • DFU程序下载方式(待验证)
  • USB HID程序下载方式(待验证)
  • maple DFU程序下载方式(待验证)
  • maple DFU2程序下载方式(待验证)
  • MassStorage程序下载方式(待验证)
    3 \' R: {6 h- g% E' {; a

    1 Z  Z3 C$ W/ F. T  l) E  y( _5 s

更多功能细节请前往www.stduino.com进行了解

已经支持的芯片&板型列表:

  • Stduino UNO&Nano
  • Nucleo 144 boards
  • Nucleo 64 boards
  • Nucleo 32 boards
  • Discovery boards
  • Eval boards
  • STM32MP1 series coprocessor boards
  • Generic STM32F0 boards
  • Generic STM32F1 boards
  • Generic STM32F3 boards
  • Generic STM32F4 boards
  • Generic STM32H7 boards
  • Generic STM32L0 boards
  • 3D printer boards
  • LoRa boards
  • Electronic Speed Controller boards
  • Generic flight controllers
  • Garatronics boards
  • Midatronics boards, [# I( T# P# T5 a
    ( l1 q' I3 D! k% e; d

更多功能集成正在进行中~

5 J9 K; X8 u" ~) I) Q8 u* H
赞 收藏 评论0 发布时间:2020-8-6 20:04

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版