凡是官网购买产品,均可以获得积分,(积分可以用来下载技术资料)还可以获得精致技术支持。澳门开元棋牌色情_澳门开元棋牌官网_开元棋牌输了25万实验室可提供全套电子方案定制服务,了解详情请咨询客服。???????????
查看: 344|回复: 1
打印 上一主题 下一主题

澳门开元棋牌色情_澳门开元棋牌官网_开元棋牌输了25万开源小项目-制作简单的电子钢琴

[复制链接]

18

主题

26

帖子

90

活跃值

注册会员

Rank: 2

活跃值
90
跳转到指定楼层
楼主
发表于 2019-7-29 11:23:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 赵勇 于 2019-8-10 13:59 编辑

一、工具原料
二、 硬件连接


三、接线原理图

四、方法步骤(实现代码)
[C++] 纯文本查看 复制代码
/**********************************************************
*    文件: 制作简单的电子钢琴.ino      by 澳门开元棋牌色情_澳门开元棋牌官网_开元棋牌输了25万实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url])
*    -^^- 澳门开元棋牌色情_澳门开元棋牌官网_开元棋牌输了25万开源,让电子制作变得更简单! -^^-
*    时间: 2019/07/24 9:07
*    说明: 
************************************************************/
int buzzer = 10;//设置蜂鸣引脚


int KEY_1 = 1;//按键1的引脚为一号
int KEY_2 = 2;//按键2的引脚为二号
int KEY_3 = 3;
int KEY_4 = 4; 
int KEY_5 = 5;
int KEY_6 = 6;
int KEY_7 = 9;//按键7的引脚为九号

int A = 0;//定义7个变量存放各个按键的电平状态
int B = 0;
int C = 0;
int D = 0;
int E = 0;
int F = 0;
int G = 0;



void tone1_YES();
void tone2_YES();
void tone3_YES();
void tone4_YES();
void tone5_YES();
void tone6_YES();
void tone7_YES();
// 复位或上电后运行一次:
void setup() {
        
        pinMode(1,INPUT);//对按键进行初始化,也可以将代码写成pinMode(KEY_1,INPUT);
        
        pinMode(2,INPUT);
        pinMode(3,INPUT);
        pinMode(4,INPUT);
        pinMode(5,INPUT);
        pinMode(6,INPUT);
        pinMode(9,INPUT);
        
        digitalWrite(buzzer,HIGH);//设置蜂鸣器的电压为高
        pinMode(10,OUTPUT);//初始化蜂鸣器的状态

    //在这里加入初始化相关代码,只运行一次:

}

//一直循环执行:
void loop() {
         A = digitalRead(KEY_1);//把读到的按键1电压存放到A
         B = digitalRead(KEY_2);
         C = digitalRead(KEY_3);
         D = digitalRead(KEY_4);
         E = digitalRead(KEY_5);
         F = digitalRead(KEY_6);
         G = digitalRead(KEY_7);
        
        if(A == HIGH)//当按下第一个按键A,即A的电压为高
        {
                tone1_YES();//执行第一个音符
        }
        if(B == HIGH)
        {
                tone2_YES();//执行第二个音符,同理也可以将所有音符放入,按下按键就可以播放一首歌。
        }
        if(C == HIGH)
        {
                tone3_YES();
        }
        if(D == HIGH)
        {
                tone4_YES();
        }
        if(E == HIGH)
        {
                tone5_YES();
        }
        if(F == HIGH)
        {
                tone6_YES();
        }
        if(G == HIGH)
        {
                tone7_YES();
        }
}
        void tone1_YES()
        {
                tone(10,1523,100);//第一个数字是代表使发音的引脚,第二个数字是发音频率,第三个数字代表声音持续的时间
                //音符do
        }
        void tone2_YES()
        {
                tone(10,1587,100);//音符 ri
                
        }
        void tone3_YES()
        {
                tone(10,1659,100);// 音符 mi
        
        }
        void tone4_YES()
        {
                tone(10,1698,100);//音符 fa
        }
        void tone5_YES()
        {
                tone(10,1784,100);//so
        }
        void tone6_YES()
        {
                tone(10,1880,100);//la
        }
        void tone7_YES()
        {
                tone(10,2420,100);//xi
        }
        //ps,根据版本不同,tone的音符 数据有不同。

四、测试验证
请查看回帖。

18

主题

26

帖子

90

活跃值

注册会员

Rank: 2

活跃值
90
沙发
?楼主| 发表于 2019-7-30 09:48:59 | 只看该作者
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver| 手机版| 小黑屋| 澳门开元棋牌色情_澳门开元棋牌官网_开元棋牌输了25万实验室 ( 粤ICP备17040594号-3 )

GMT+8, 2019-10-20 16:10 , Processed in 0.355633 second(s), 22 queries .

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