利用Arduino制作音乐播放+随节奏闪光仪器实现

yizhihongxing

1.实验器材

Arduino开发板,面包板一块,杜邦线若干,LED灯若干,220欧电阻若干,蜂鸣器一个。

2.实验操作

  • 将六个led灯的正极依次接到arduino板I/O接口的2-7口,
  • 电源负极依分别接一个220欧的电阻 。
  • 整体负极接arduino板的GND接口。
  • 蜂鸣器正极接arduino板I/O接口的8口,负极接GND。

3.代码实现

int buzzer=8; //设置控制蜂鸣器的数字 设置控制蜂鸣器的数字 IO脚 
int BASE = 2 ; //第一颗 第一颗 LED 接的 I/O 腳 
int NUM = 6; //LED 的总数 
  int song[] = {
/* 儿歌《小星星》*/
277,277,415,415,466,466,415,
370,370,330,330,311,311,277,
415,415,370,370,330,330,311,
415,415,370,370,330,330,311,
277,277,415,415,466,466,415,
370,370,330,330,311,311,277,
415,415,370,370,330,330,311,
415,415,370,370,330,330,311,
277,277,415,415,466,466,415,
370,370,330,330,311,311,277,
};
void setup() {
for (int thisNote = 0; thisNote <154; thisNote++)
{
int noteDuration = 1000/noteDurations[thisNote];// 计算每个节拍的时间,以一个节拍一秒为例,四分之一拍就是1000/4毫秒,八分之一拍就是1000/8毫秒
tone(8, song[thisNote],noteDuration);
int pauseBetweenNotes = noteDuration * 1.10; // 每个音符间的停顿间隔,以该音符的130%为佳
delay(pauseBetweenNotes);
noTone(8);
}

for (int i = BASE;i < BASE + NUM; i ++) 
  {
    pinMode(i, OUTPUT); //设定数字 设定数字 I/O脚为输出 脚为输出 
    } 
 for (int i = BASE; i < BASE + NUM; i ++) 
  {
    digitalWrite(i, LOW); //设定数字 设定数字 I/O脚输出为 脚输出为 "低",即逐渐关灯 
    delay(200); //延迟 
    }
for (int i = BASE; i < BASE + NUM; i ++) 
    {
     digitalWrite(i, HIGH); //设定数字 I/O脚输出为 "高",即逐渐开灯
      delay(200); //延迟
     }
}
void loop() {
setup();
}

4.实现实物图

4.1 流水灯接口:

image

4.2 蜂鸣器接口:

image

4.3 Arduino板接口:

image

原文链接:https://www.cnblogs.com/Noiimplant/archive/2023/04/24/17351050.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Arduino制作音乐播放+随节奏闪光仪器实现 - Python技术站

(0)
上一篇 2023年4月24日
下一篇 2023年4月25日

相关文章

  • C#多线程之线程池ThreadPool详解

    C#多线程之线程池ThreadPool详解 简介 线程池是一种使用共享资源(线程)的方式,它在系统中维护着一定数量的线程,在任务到来时将其分配给线程执行,执行完毕后线程归还给线程池,以便其他任务使用。线程池采用的是池化思想,能够避免频繁创建和销毁线程造成的资源浪费,提高程序性能。在C#中,我们可以使用ThreadPool类实现线程池的功能。 线程池的优点 线…

    C# 2023年6月6日
    00
  • .Net整合Json实现REST服务客户端的方法详解

    .Net整合Json实现REST服务客户端 什么是REST服务? REST(Representational State Transfer)是目前最流行的一种网络应用程序的设计风格和开发方式,是一种轻量级的Web服务解决方案。它采用REST架构,通过HTTP协议实现,既可以返回XML或JSON格式的数据。 相较于SOAP,REST服务具有轻量级、易于缓存、可…

    C# 2023年5月31日
    00
  • asp.net Execl的添加,更新操作实现代码

    接下来我会详细讲解如何在ASP.NET中进行Excel的添加和更新操作。 准备工作 在进行Excel操作之前,我们需要安装EPPlus包,它是一个免费的开源库,可以让我们在ASP.NET中轻松地操作Excel文件。在Visual Studio中,可以通过NuGet包管理器安装EPPlus。 添加Excel文件 要向Excel文件中添加数据,我们需要使用EPP…

    C# 2023年5月31日
    00
  • 流量统计器如何鉴别C#:WebBrowser中伪造referer

    要理解流量统计器如何鉴别C#: WebBrowser中伪造referer,需要先了解什么是referer。 Referer通常指HTTP请求头中的Referer(即引用),它是由HTTP客户端(例如网页浏览器)发送的一种HTTP Headers。它表示了客户端是从哪个URL提交请求的。这个Header让Web浏览器和服务器能够更好地进行访问分析、日志记录、反…

    C# 2023年6月6日
    00
  • C#微信公众平台开发之access_token的获取存储与更新

    C#微信公众平台开发之access_token的获取存储与更新 前言 微信公众平台开发中,access_token是关键的全局唯一接口调用凭据,获取access_token是进行后续接口调用的必要步骤。因为获取access_token每日调用次数有限,并且获取access_token的过程中存在一些约束和具体的有效期,所以需要进行存储和更新。 本文将详细介绍…

    C# 2023年5月31日
    00
  • c#判断代码是否执行超时的几种方式总结

    让我们来详细讲解一下“c#判断代码是否执行超时的几种方式总结”。 1. 前言 在执行c#代码的过程中,有些情况下我们需要判断代码是否执行超时。比如:当执行某个查询sql时,由于数据量过大或查询条件不合理,就可能会导致查询时间过长,这时候我们就需要用到本文介绍的几种方式来判断是否执行超时。 2. 判断代码是否执行超时的几种方式 本文将介绍如下几种方式: 2.1…

    C# 2023年6月6日
    00
  • ASP.NET Core项目中调用WebService的方法

    在ASP.NET Core项目中调用WebService的方法,可以使用HttpClient或者Service Reference两种方式。以下是详细的攻略: 使用HttpClient调用WebService 使用HttpClient调用WebService需要手动构造SOAP请求,并将请求发送到WebService的URL。以下是具体步骤: 创建HttpC…

    C# 2023年5月15日
    00
  • 关于Unity中RectTransform与transform的区别

    关于Unity中RectTransform与transform的区别 在Unity中,RectTransform和transform是两个非常常用的组件,用于控制游戏对象在屏幕上的位置、旋转和缩放。本文将详细讲解RectTransform和transform的区别以及使用场景。 RectTransform和transform的区别 transform组件是所…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部