用按键控制蜂鸣器(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这 是 曲 子 音 调 代 码, 可 以 从 库 中 调 出
int tune[] = {NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_D0,
NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_D0,NOTE_D6, NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6,NOTE_D0,NOTE_D6, NOTE_DH1,NOTE_D6,NOTE_D5,NOTE_DH1,NOTE_D6,NOTE_D0, NOTE_D1,NOTE_D1,NOTE_D3, NOTE_D1,NOTE_D1,NOTE_D3,NOTE_D0, NOTE_D6,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6, NOTE_D5,NOTE_D1,NOTE_D3,NOTE_D0, NOTE_DH1,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D6, NOTE_D5,NOTE_D1,NOTE_D2,NOTE_D0, NOTE_D7,NOTE_D7,NOTE_D5,NOTE_D3, NOTE_D5, NOTE_DH1,NOTE_D0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_D0,NOTE_D5,NOTE_D1,NOTE_D3,NOTE_D0, NOTE_DH1,NOTE_D0,NOTE_D6,NOTE_D6,NOTE_D5,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_D0,NOTE_D5,NOTE_D1,NOTE_D2,NOTE_D0, NOTE_D3,NOTE_D3,NOTE_D1,NOTE_DL6, NOTE_D1, NOTE_D3,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_D3,NOTE_D5,NOTE_D6,NOTE_D6, NOTE_DH1,NOTE_D0,NOTE_D7,NOTE_D5, NOTE_D6, };
这部 分就 是整 首曲 子的 音符 部分, 用了 一个 序列 定义 为 tune, 整数
float duration[]= {1,1,0.5,0.5,1,
0.5,0.5,0.5,0.5,1,0.5,0.5, 0.5,1,0.5,1,0.5,0.5, 0.5,0.5,0.5,0.5,1,1, 1,1,1+1, 0.5,1,1+0.5,1, 1,1,0.5,0.5,1, 0.5,1,1+0.5,1, 0.5,0.5,0.5,0.5,1+1, 0.5,1,1+0.5,1, 1+1,0.5,0.5,1, 1+1+1+1, 0.5,0.5,0.5+0.25,0.25,0.5+0.25,0.25,0.5+0.25,0.25, 0.5,1,0.5,1,1, 0.5,0.5,0.5+0.25,0.25,0.5+0.25,0.25,0.5+0.25,0.25, 0.5,1,0.5,1,1, 1+1,0.5,0.5,1, 1+1+1+1, 0.5,1,0.5,1+1, 0.5,1,0.5,1+1, 1+1,0.5,0.5,1, 1+1+1+1};
项目程序代码
及部分解释
#define NOTE_D0 -1 #define NOTE_D1 294 #define NOTE_D2 330 #define NOTE_D3 350 #define NOTE_D4 393 #define NOTE_D5 441 #define NOTE_D6 495 #define NOTE_D7 556 #define NOTE_DL1 147 #define NOTE_DL2 165 #define NOTE_DL3 175 #define NOTE_DL4 196 #define NOTE_DL5 221 #define NOTE_DL6 248 #define NOTE_DL7 278 #define NOTE_DH1 589 #define NOTE_DH2 661 #define NOTE_DH3 700 #define NOTE_DH4 786 #define NOTE_DH5 882 #define NOTE_DH6 990 #define NOTE_DH7 112 #define WHOLE 1 #define HALF 0.5 #define QUARTER 0.25 #define EIGHTH 0.25 #define SIXTEENTH 0.625
} void loop() { val=digitalRead(inpin);//读取数字7 口电平值赋给val if(val==HIGH)//检测按键是否按下,按键按下时小灯亮起
{ for(int x=0;x<length;x++)//循环音符的次数 {tone(tonePin,tune[x]);//此函数依次播放tune序列里的数组,即每个音符 delay(400*duration[x]);//每个音符持续的时间 noTone(tonePin);//停止当前音符,进入下一音符
} delay(5000);//等待5秒后,循环重新开始
} }
项目实际硬件连接图示 及效果视频
Байду номын сангаас
自主设计实验的收获与体会 学习这门课,最主要的还是理解上难,实际编写程序实在还是难点,还
有就是实际硬件连接的时候依然还是不太清楚。但是,通过这门课,对程序 的编写与硬件的实际应用有了比较直观的了解,也对程序的编写有了进一步 的练习。这门课学到了很多与医学上编程应用以及实际硬件的基本原理,开 阔了我们的视野。
对该门选修课程的建议 希望老师对报名的资格进行限制,以及在正式上课前对部分主要程序
代码的应用先进行跟详细的讲解,这样,编程方面比较薄弱的同学上课能 够明白代码的执行,也更加明白原理 希望老师在实际硬件连接的时候能够演示一下,同时讲解一些硬件的运行 原理,这样我们能有更加深刻的认识,也更好地理解程序与硬件的执行原 理。 希望老师能推荐一些教学视频,让感兴趣的同学在课后能够再进行复习与 再学习。
这部分 是整首 曲子的 接拍部 分,也 定义个 序列 duration,
int length;//定义一个变量用来表示共有多少个音符 int tonePin =11;//定义数字11 接口 int inpin=7;//定义数字7 接口 int val;//定义变量val
void setup() { pinMode(tonePin,OUTPUT);//定义小灯接口为输出接口 pinMode(inpin,INPUT);//定义按键接口为输入接口 length = sizeof(tune)/sizeof(tune[0]);//sizeof函数查出tone序列里有多少个音符