7859浏览
楼主: 驴友花雕

[入门] 【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:12:43

程序三:有源蜂鸣器急促发声(间隔0.5秒)
1实验开源图形编程(Mind+、编玩边学)

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:14:04

2)实验场景图

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:16:23

程序四:Arduino HC-SR04 安全報警器
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序四:Arduino HC-SR04 安全報警器
  4. */
  5. //定义引脚
  6. #define buzzer 3 //蜂鸣器接D3
  7. #define trigPin 4 //超声波模块Trig接D4
  8. #define echoPin 5 //超声波模块Echo接D5
  9. #define ledbin 13 //LED灯接D13
  10. void setup() {
  11.   Serial.begin (9600);
  12.   pinMode(trigPin, OUTPUT);//设置为输出
  13.   pinMode(echoPin, INPUT);//设置为输入
  14.   pinMode(buzzer, OUTPUT);//设置为输出
  15.   pinMode(ledbin, OUTPUT);//设置为输出
  16. }
  17. void loop() {
  18.   long duration, distance;
  19.   digitalWrite(trigPin, LOW);
  20.   delayMicroseconds(2);
  21.   digitalWrite(trigPin, HIGH);
  22.   delayMicroseconds(10);
  23.   digitalWrite(trigPin, LOW);
  24.   duration = pulseIn(echoPin, HIGH);
  25.   distance = (duration / 2) / 29.1;//超声波测距换算为厘米
  26.   //当距离小于10厘米(预设阙值),触发报警
  27.   if (distance < 10) {
  28.     digitalWrite(buzzer , HIGH);//蜂鸣器响
  29.     digitalWrite(ledbin , HIGH);//LED亮
  30.     delay(1000);
  31.   }
  32.   else {
  33.     digitalWrite(buzzer , LOW);
  34.     digitalWrite(ledbin , LOW);
  35.   }
  36. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:17:26

2)实验场景图

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:18:46

程序五:地震声光报警器
1)实验开源仿真编程(Linkboy V4.63

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:20:36

2)实验场景图

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:21:53

程序六:火灾报警器
1)实验开源图形编程(Mind+、编玩边学)


【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:23:05

2)实验串口返回情况

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:24:20

3)实验场景图

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:26:42

无源蜂鸣器模块的几个实验
1程序:升降调的警报声
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序七:升降调的警报声
  4. */
  5. #define BUZZER_PIN A0//无源蜂鸣器接A0
  6. void setup()  {
  7.   pinMode(BUZZER_PIN, OUTPUT);//设置A0为输出
  8. }
  9. void loop()  {
  10.   for (int i = 200; i <= 800; i++)  // 200HZ ~ 800HZ
  11.   {
  12.     tone(BUZZER_PIN, i);
  13.   }
  14.   delay(1000);             //最大频率保持1s
  15.   for (int i = 800; i >= 200; i--) // 800HZ ~ 200HZ
  16.   {
  17.     tone(BUZZER_PIN, i);
  18.     delay(10);
  19.   }
  20. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:27:54

2)实验场景图

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:30:02

程序八:播放一段以前可能听过的小旋律
1)实验使用了一个额外的文件 pitches.h。该文件包含典型音符的所有音高值。例如,NOTE_C4 是中间 C。NOTE_FS4 是升 F,等等。此音符表最初由 Brett Hagman 编写,tone() 命令基于他的工作。每当您想制作音符时,您可能会发现它很有用。要制作 pitches.h 文件,请单击串行监视器图标正下方的按钮并选“新选项卡”,或使用 Ctrl+Shift+N。然后粘贴以下代码:

  1. /*************************************************
  2. * Public Constants
  3. *************************************************/
  4. #define
  5. NOTE_B0  31#define NOTE_C1  33#define NOTE_CS1 35#define NOTE_D1  37#define NOTE_DS1 39#define NOTE_E1  41#define NOTE_F1  44#define NOTE_FS1 46#define NOTE_G1  49#define NOTE_GS1 52#define NOTE_A1  55#define NOTE_AS1 58#define NOTE_B1  62#define NOTE_C2  65#define NOTE_CS2 69#define NOTE_D2  73#define NOTE_DS2 78#define NOTE_E2  82#define NOTE_F2  87#define NOTE_FS2 93#define NOTE_G2  98#define NOTE_GS2 104#define NOTE_A2  110#define NOTE_AS2 117#define NOTE_B2  123#define NOTE_C3  131#define NOTE_CS3 139#define NOTE_D3  147#define NOTE_DS3 156#define NOTE_E3  165#define NOTE_F3  175#define NOTE_FS3 185#define NOTE_G3  196#define NOTE_GS3 208#define NOTE_A3  220#define NOTE_AS3 233#define NOTE_B3  247#define NOTE_C4  262#define NOTE_CS4 277#define NOTE_D4  294#define NOTE_DS4 311#define NOTE_E4  330#define NOTE_F4  349#define NOTE_FS4 370#define NOTE_G4  392#define NOTE_GS4 415#define NOTE_A4  440#define NOTE_AS4 466#define NOTE_B4  494#define NOTE_C5  523#define NOTE_CS5 554#define NOTE_D5  587#define NOTE_DS5 622#define NOTE_E5  659#define NOTE_F5  698#define NOTE_FS5 740#define NOTE_G5  784#define NOTE_GS5 831#define NOTE_A5  880#define NOTE_AS5 932#define NOTE_B5  988#define NOTE_C6  1047#define NOTE_CS6 1109#define NOTE_D6  1175#define NOTE_DS6 1245#define NOTE_E6  1319#define NOTE_F6  1397#define NOTE_FS6 1480#define NOTE_G6  1568#define NOTE_GS6 1661#define NOTE_A6  1760#define NOTE_AS6 1865#define NOTE_B6  1976#define NOTE_C7  2093#define NOTE_CS7 2217#define NOTE_D7  2349#define NOTE_DS7 2489#define NOTE_E7  2637#define NOTE_F7  2794#define NOTE_FS7 2960#define NOTE_G7  3136#define NOTE_GS7 3322#define NOTE_A7  3520#define NOTE_AS7 3729#define NOTE_B7  3951#define NOTE_C8  4186#define NOTE_CS8 4435#define NOTE_D8  4699#define NOTE_DS8 4978
复制代码
并将其保存为 pitches.h


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:31:17

2)Arduino参考开源实验代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序八:播放一段以前可能听过的小旋律
  4.   接脚:蜂鸣器接D8
  5. */
  6. #include "pitches.h"
  7. // 旋律中的音符
  8. int melody[] = {
  9.   NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
  10. };
  11. // 每個音的的拍子,4:4分音符,8:8分音符
  12. int noteDurations[] = {
  13.   4, 8, 8, 4, 4, 4, 4, 4
  14. };
  15. void setup() {
  16.   // 遍历旋律的音符
  17.   for (int thisNote = 0; thisNote < 8; thisNote++) {
  18.     //計算每個音的長度,4分音符: 1000 / 4,8分音符:1000/8
  19. int noteDuration = 1000 / noteDurations[thisNote];
  20.     tone(8, melody[thisNote], noteDuration);
  21.     // 每個音之間要停一小段時間,範例是建議拍子的長度加30%
  22. int pauseBetweenNotes = noteDuration * 1.30;
  23.     delay(pauseBetweenNotes);
  24.     // 停止播放音调
  25.     noTone(8);
  26.   }
  27. }
  28. void loop() {
  29.   // 无需重复旋律
  30. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:32:29

程序九:播放根据不断变化的模拟输入而变化的音高(光敏电阻模块)
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序九:播放根据不断变化的模拟输入而变化的音高(光敏电阻模块)
  4.   接脚:蜂鸣器接D9,光敏电阻接A0
  5. */
  6. void setup() {
  7.   // 初始化串行通信(仅用于调试):
  8.   Serial.begin(9600);
  9. }
  10. void loop() {
  11.   int sensorReading = analogRead(A0);// 读取传感器
  12.   // 打印传感器读数,这样你就知道它的范围
  13.   Serial.println(sensorReading);
  14.   // 映射模拟输入范围(在这种情况下,来自光敏电阻的 400 - 1000)
  15.   //到输出音高范围(120 - 1500Hz)
  16.   int thisPitch = map(sensorReading, 400, 1000, 120, 1500);
  17.   tone(9, thisPitch, 10);// 播放音高
  18.   delay(1);        // 读取之间的延迟以确保稳定性
  19. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:35:07

2)实验串口返回情况


【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:37:00

3)实验场景图


【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:38:24

程序十:播放变调声音
实验开源仿真编程(Linkboy V4.63)

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:40:47

程序十一:三角波发生器的警报声
实验开源仿真编程(Linkboy V4.63)


【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:41:58

程序十二:祝你生日快乐
1)实验开源仿真编程(Linkboy V4.63)

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:43:21

2)实验场景图

【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-5-5 16:44:52

程序十三:循环播放中音
实验开源图形编程(Mind+、编玩边学)


【Arduino】168种传感器模块系列实验(49)---蜂鸣器模块图1

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail