欢迎注册,加入沙洋社区—我们的网上家园!
您需要 登录 才可以下载或查看,没有帐号?注册
x
穷创客教育之Arduino编程第十课:蜂鸣器电子琴
蜂鸣器又分为有源蜂鸣器和无源蜂鸣器两种,无源蜂鸣器的电路板通常是裸露的,有源蜂鸣器的电路板通常是被黑胶覆盖的。前面我们已学过按键的使用,这节我们将加一个蜂鸣器做一个有趣的实验,做一个按键电子琴。
图片3.png (54.97 KB, 下载次数: 0)
2019-10-14 11:25 上传
一、实验现象
当分别按下第1 、2、3个按键时,蜂鸣器发出Do、Re、Mi声音。
一、电子元件:
开发板、10kΩ电阻3个、按键3个、无源蜂鸣器1个、面包板和杜邦线若干。
三、实验所用函数及语句
Arduino板上产生的音乐由tone()函数控制,代码有两种形式分别为:tone(pin, frequency, duration)或tone(pin, frequency)
① 第一个函数中,pin代表连接扬声器的管脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。
② 如果用第二个函数,则还需另外的noTone()函数来控制音乐的停止noTone(pin)。
③ 在上一步音乐程序中,还需包括一个pitches.h文件。
四、实验电路(接线太多要细心)
图片4.png (115.67 KB, 下载次数: 0)
2019-10-14 11:25 上传
五、编写程序
#include//可以不要若没有声音加上这一句
void setup() {
// put your setup code here, to run once:
pinMode(3,OUTPUT);
for(int i=8;i<11;i++){
pinMode(i,INPUT); //按键端口分别是:8、9、10为输入
}
}
void loop() {
// put your main code here, to run repeatedly:
if(digitalRead(8)==HIGH){//当按键8按下时执行,下同
tone(3,525,10);//3号端口播放10微秒,频率为525(哆)的声音,下同。
}
if(digitalRead(9)==HIGH){
tone(3,589,10);
}
if(digitalRead(10)==HIGH){
tone(3,661,10);
}
}