开启左侧

【培训作品】好玩的音乐_刘虹明

[复制链接]
发表于 2017-10-18 23:37:39 | 显示全部楼层 |阅读模式
作品简介
该作品主要通过Arduino UNO、i创学院扩展板、蜂鸣器模块、超声波模块控制。

作品功能和理念
当小朋友进入到超声波感应范围内(30cm),音乐自动响起,小朋友离开超声波感应范围则音乐唱完一首停止;当小朋友一直在超声波感应范围内,音乐则循环的响起。


程序代码:
#include <Mouse.h>
int buzzer=3;
const int TrigPin=9;
const int EchoPin=8;

int distance;
int scale[]={393,441,495,393,
393,441,495,393,
495,556,624,
495,556,624,
624,661,624,556,495,393,
624,661,624,556,495,393,
495,294,393,
495,294,393,
  };
  float duration[]={
  1,1,1,1,
  1,1,1,1,
  1,1,1+1,
  1,1,1+1,
  0.5,0.5,0.5,0.5,1,1,
  0.5,0.5,0.5,0.5,1,1,
  1,1,1+1,
  1,1,1+1,

    };
int len=0;
void setup() {
  Serial.begin(9600);
  pinMode(buzzer,OUTPUT);
  pinMode(TrigPin,OUTPUT);
  pinMode(EchoPin,INPUT);
  len=sizeof(scale)/sizeof(scale[0]);
}


void loop(){
  digitalWrite(TrigPin,LOW);
  delayMicroseconds(2);
  digitalWrite(TrigPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin,LOW);
distance=pulseIn(EchoPin,HIGH)/58.0;
Serial.print(distance);
Serial.println("cm");
if(distance<30){
  for(int i=0;i<len;i++){
  tone(buzzer,scale);
  delay(250*duration);
  noTone(buzzer);
  delay(10);  
  }

}


  digitalWrite(buzzer,LOW);



    distance=pulseIn(EchoPin,HIGH)/58.0;


}


图片

图片

图片

图片

shipin.mp4

3.81 MB, 下载次数: 6

小视频

回复

使用道具 举报

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

本版积分规则

精彩课程推荐

关于我们

帮助中心

商务合作

点击这里给我发消息

关注微信公众号

Copyright © 2016-2017 i创学院 - 上海享渔教育科技有限公司 Powered by Discuz!     ( 沪ICP备16033954号-1 )