菜鸡的第一个作品:一个简易的数字键盘电子琴-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4825|回复: 0

菜鸡的第一个作品:一个简易的数字键盘电子琴

[复制链接]
发表于 2017-7-18 16:42 | 显示全部楼层 |阅读模式

//  需要使用pitches 头文件,可以直接打开 digital的示例代码,带有keyboard的任选 将正文代码替换//

#include "pitches.h"
  int melody[] =
  { 0,NOTE_C4,NOTE_D4,NOTE_E4,NOTE_F4,NOTE_G4, NOTE_A4,NOTE_B4 ,NOTE_C5} ;

  char x;
  int  n;

void setup(){

  Serial.begin(9600);
  pinMode(10,OUTPUT);
  
  
}

void loop(){

  while(Serial.available()>0)
  {
    x=Serial.read();
    if(x=='0') n=0;
    if(x=='1') n=1;
    if(x=='2') n=2;
    if(x=='3') n=3;
    if(x=='4') n=4;
    if(x=='5') n=5;
    if(x=='6') n=6;
    if(x=='7') n=7;
    if(x=='8') n=8;
   
    tone(10,melody[n],500);
    Serial.println(n);
  }
}

/* 理想的代码 没有那么多 if ,直接用melody[x-‘0’] 来判断输出的音名 ,不行,自己问题出在:  x是char 型,不是数组的下标,于是改用 melody[int(x-'0')] 还是不行
只能全用if了 求指教 */
  



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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 02:51 , Processed in 0.070906 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表