arduino 嗡鸣器 音乐_求助!求教开关控制蜂鸣器播放音乐的问题

博主希望实现通过按键控制Arduino蜂鸣器播放音乐,并能随时停止。目前遇到问题,按键按下后音乐无法在播放中停止。期待大佬帮助实现更复杂的音游节奏大师效果,如有偿指导更好。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

大是想做一个,能按键控制蜂鸣器发出音乐

可是按键按下后 必须唱完那首歌才停止,不能实现再按一次,就能随时让他停

研究了半天,我的菜鸟水平知识量真的是做不到TTTTTATTTTT。老师教了按键控制的代码,但蜂鸣器的音乐不能用 buzzer=HIGH 这样控制TAT,不知道怎样放到if的条件里…………

跪求大佬的帮助!!!(重点部分已加粗)

因为是个设计作业,但水平有限,实际还想做到音游节奏大师的效果,就……能if触摸板+音节同时实现就success…………如果有大佬能指导,可有偿TAAAAAAAT!!!!

现在找到的代码是根据网上大神的蜂鸣器播放教程稍微修改的(如下)

#define NTD0 -1

#define NTD1 294

#define NTD2 330

#define NTD3 350

#define NTD4 393

#define NTD5 441

#define NTD6 495

#define NTD7 556

#define NTDL1 147

#define NTDL2 165

#define NTDL3 175

#define NTDL4 196

#define NTDL5 221

#define NTDL6 248

#define NTDL7 278

#define NTDH1 589

#define NTDH2 661

#define NTDH3 700

#define NTDH4 786

#define NTDH5 882

#define NTDH6 990

#define NTDH7 112

//c pinlv

#define WHOLE 1

#define HALF 0.5

#define QUARTER 0.25

#define EIGHTH 0.25

#define SIXTEENTH 0.625

int tune[]=

{

NTD3,NTD3,NTD4,NTD5,

NTD5,NTD4,NTD3,NTD2,

NTD1,NTD1,NTD2,NTD3,

NTD3,NTD2,NTD2,

NTD3,NTD3,NTD4,NTD5,

NTD5,NTD4,NTD3,NTD2,

NTD1,NTD1,NTD2,NTD3,

NTD2,NTD1,NTD1,

NTD2,NTD2,NTD3,NTD1,

NTD2,NTD3,NTD4,NTD3,NTD1,

NTD2,NTD3,NTD4,NTD3,NTD2,

NTD1,NTD2,NTDL5,NTD0,

NTD3,NTD3,NTD4,NTD5,

NTD5,NTD4,NTD3,NTD4,NTD2,

NTD1,NTD1,NTD2,NTD3,

NTD2,NTD1,NTD1

};

float durt[]=

{

1,1,1,1,

1,1,1,1,

1,1,1,1,

1+0.5,0.5,1+1,

1,1,1,1,

1,1,1,1,

1,1,1,1,

1+0.5,0.5,1+1,

1,1,1,1,

1,0.5,0.5,1,1,

1,0.5,0.5,1,1,

1,1,1,1,

1,1,1,1,

1,1,1,0.5,0.5,

1,1,1,1,

1+0.5,0.5,1+1,

};

int length;

int buzzer=7;

int button=6;

int led=3;

void setup()

{

pinMode(buzzer,OUTPUT);

pinMode(led,OUTPUT);

length=sizeof(tune)/sizeof(tune[0]);

}

void loop()

int buttonState=digitalRead(button);

if (buttonState == HIGH) {

{

for(int x=0;x

{

tone(buzzer,tune[x]);

delay(400*durt[x]);

noTone(buzzer);

}

delay(2000);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值