zoukankan      html  css  js  c++  java
  • 图形化编程娱乐于教,Kittenblock arduino实例,蜂鸣器

    跟很多学生聊过,很多学生不是不努力,只是找不到感觉。有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同。关键的问题在于,带入感,我能给出的建议,就是咬咬牙,坚持住,没有学不会的知识。会陆续分享图形化编程的经验,希望能够做成一个专题。如果您觉得有用,就给点个赞吧。涉及的软件包括Kittenblockarduino。

    程序解读:蜂鸣器演奏音乐

    知识点: 蜂鸣器arduino音乐,执行器,控制

    重点:蜂鸣器

    涉及的软件:Kittenblock、arduino

     

    无源蜂鸣器模块:有三个管脚,其中  管脚接地(GND), 中间的管脚接 5V , 标注"S"的管脚接信号(数字I/O)

    有源蜂鸣器是一通电就响的,两个脚分别是正负极,  两个脚一长一短, 短脚为负极, 长脚为正极接VCC,有源蜂鸣器,要注意正负极。

    而无源蜂鸣器的是需要波形信号驱动的,两个脚没有正负极。

     

    #include <Arduino.h>

    int my_variable;

    const int noteMap[] = {440, 494, 262, 294, 330, 349, 392};

    void buzzMusic(int pin, const char * notes){

        int freq;

        int len = strlen(notes);

        int octave = 4;

        int duration = 500;

        for(int i=0;i < len;i++){

            if(notes[i]>='a' && notes[i]<='g'){

              freq = noteMap[notes[i]-'a'];

            }else if(notes[i]=='r'){

              freq = 0;

            }else if(notes[i]>='2' && notes[i]<='6'){

              octave = notes[i] - '0';

            }else if(notes[i]==':'){

              i++;

              duration = (notes[i] - '0')*125;

            }else if(notes[i]==' '){ // play until we meet a space

              freq *= pow(2, octave-4);

              tone(pin, freq, duration);

          delay(duration);

            }

        }

    }

    void setup(){

    }

    void loop(){

      tone(5, 300, 500);

      delay(1*1000);

      buzzMusic(5, "g5:1 d c g4:2 b:1 c5:3 ");

      delay(2*1000);

    }

    开发计算机创智课程的实践研究
  • 相关阅读:
    Aurora 数据库支持多达五个跨区域只读副本
    Amazon RDS 的 Oracle 只读副本
    Amazon EC2 密钥对
    DynamoDB 读取请求单位和写入请求单位
    使用 EBS 优化的实例或 10 Gb 网络实例
    启动 LAMP 堆栈 Web 应用程序
    AWS 中的错误重试和指数退避 Error Retries and Exponential Backoff in AWS
    使用 Amazon S3 阻止公有访问
    路由表 Router Table
    使用MySQLAdmin工具查看QPS
  • 原文地址:https://www.cnblogs.com/ztg1/p/12621328.html
Copyright © 2011-2022 走看看