查看: 859|回复: 3

[教程] 我在教编程时写的蜂鸣器小程序

[复制链接]
  • TA的每日心情
    开心
    2019-10-2 15:16
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2019-3-23 20:28 | 显示全部楼层 |阅读模式
    仅供新手娱乐测试。看看是什么曲子。
    //本来曲子是D调,写成了C调。要修改就改第一个数组吧。

    kittenblock中小学创客名师推荐的图形化编程软件

    
    //本来曲子是D调,写成了C调。要修改就改第一个数组吧。
    int yinfu[21] = {262,294,330,349,392,440,494,523,578,659,698,784,880,988,1046,1175,1318,1397,1568,1760,1976};
    int sound[] = {11,11,11,11,9,10,11,14,12,12,12,12,10,12,11,0,11,11,11,11,13,12,11,10,10,0,10,10,10,10,9,8,7,0,14,14,14,14,11,12,14,14,16,15,15,15,15,14,13,12,0,13,13,13,13,13,14,15,11,0,13,13,14,15,14,13,14,0};
    int spe[] = {2,2,2,2,2,2,6,6,2,2,2,2,2,2,8,4,2,2,2,2,2,2,1,5,4,2,2,2,2,2,3,1,10,2,2,2,2,2,2,2,6,2,4,2,2,2,3,1,2,10,2,2,2,2,2,2,2,6,4,2,2,2,2,2,2,2,10,2};
    void setup() {
      pinMode(7,OUTPUT); //设置7口为输出口,接蜂鸣器
      pinMode(A0,INPUT);  //电位器接口,调整播放速率
    }
    void loop() {
      for(int i = 0;i<2;i++){  //循环两遍
          for (int x = 0;x<34;x++){
              int y = analogRead(A0);  //读取A0口,调整播放速率
              if (sound[x] != 0)       //0为休止符
                tone(7,yinfu[sound[x]]);  //音高
              delay(spe[x]*y);        //音长
                  noTone(7);      // 停止
            delay(y/100);
          }
      }
      delay(200);   //两遍之后延时
          for (int x = 34;x<68;x++){  //这是后面的部分
              int y = analogRead(A0);
              if (sound[x] != 0)
                tone(7,yinfu[sound[x]]);
            delay(spe[x]*y);
              noTone(7);
            delay(y/100);
          }
      delay(500);
      }


  • TA的每日心情
    无聊
    2019-9-3 11:40
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2019-3-24 09:09 | 显示全部楼层
    arduino 是不是只能教小学生?
  • TA的每日心情
    开心
    2019-10-2 15:16
  • 签到天数: 53 天

    [LV.5]常住居民I

     楼主| 发表于 2019-3-24 09:28 | 显示全部楼层
    rockze 发表于 2019-3-24 09:09
    arduino 是不是只能教小学生?

    跟年龄没关系吧,只要想学。我这个是给成人基础入门的。
  • TA的每日心情
    无聊
    2019-9-3 11:40
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2019-3-24 15:16 | 显示全部楼层
    zong0001 发表于 2019-3-24 09:28
    跟年龄没关系吧,只要想学。我这个是给成人基础入门的。


    去了几个常见的论坛看了,arduino都是用作测试,做做小玩具,真正工业上用的很少~
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    程序设计问题求大虾们帮帮忙
    程序设计问题求大虾们帮帮
    大家好,我是一个萌新想设计一个程序,现在遇到困难了。当运行按下按钮,电机会向end
    请问 3块 MCP 4725 ,能否同时接在一起使用?
    请问 3块 MCP 4725 ,能否
    买来时,ADDR是全开路的,使用代码中的所有地址,均无法使用。 // For Adafruit M
    打砖块游戏
    打砖块游戏
    **** 本内容被作者隐藏 ****
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表