查看: 1335|回复: 3

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

[复制链接]
  • TA的每日心情
    开心
    2020-7-1 08:56
  • 签到天数: 58 天

    [LV.5]常住居民I

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

    [mw_shl_code=arduino,true]
    //本来曲子是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);
      }[/mw_shl_code]

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

    [LV.5]常住居民I

    发表于 2019-3-24 09:09 | 显示全部楼层
    arduino 是不是只能教小学生?
  • TA的每日心情
    开心
    2020-7-1 08:56
  • 签到天数: 58 天

    [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都是用作测试,做做小玩具,真正工业上用的很少~
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    Arduino官方开发板购买
    Arduino官方开发板购买
    以下为Arduino官方开发板国内购买渠道,点击即可前往淘宝购买 seeedStudio淘宝
    中文 字库 的8针 OLED 12864模块 arduino
    中文 字库 的8针 OLED 128
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    ESP8266-01s网页配网+红外NEC学习固件
    ESP8266-01s网页配网+红外
    红外学习+html网页配网通用固件 硬件:esp8266-01s,红外发射二极管,红外接收头,50
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表