穷创客教育之Arduino编程第十课:蜂鸣器电子琴

网友投稿 2019-10-09 14:17

蜂鸣器又分为有源蜂鸣器和无源蜂鸣器两种,无源蜂鸣器的电路板通常是裸露的,有源蜂鸣器的电路板通常是被黑胶覆盖的。前面我们已学过按键的使用,这节我们将加一个蜂鸣器做一个有趣的实验,做一个按键电子琴。

https://cdn.china-scratch.com/timg/191011/141J44Z3-0.jpg 

一、实验现象

当分别按下第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文件。

四、实验电路(接线太多要细心)

 https://cdn.china-scratch.com/timg/191011/141J41042-1.jpg

五、编写程序

#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);

  }    

}

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com