利用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月25日
下一篇 2023年4月25日

相关文章

  • .NET CPU爆高事故事故分析某供应链WEB网站

    .NET CPU爆高事故分析 最近,某供应链WEB网站出现了CPU爆高的问题,导致网站响应变慢,甚至无法访问。在本文中,我们将详细讲解如何分析和解决这个问题。 问题描述 某供应链WEB网站出现了CPU爆高的问题,导致网站响应变慢,甚至无法访问。经过初步分析,发现问题出现在.NET应用程序中。 分析步骤 步骤一:使用性能分析工具 使用性能分析工具可以帮助我们找…

    C# 2023年5月16日
    00
  • 关于Python 位运算防坑指南

    下面是关于 “Python 位运算防坑指南” 的完整攻略。 什么是位运算? 通俗来说,位运算是对二进制数的操作,主要包括与(&)、或(|)、异或(^)、左移(<<)和右移(>>)。 Python 中可以用以下语法进行位运算: a & b # 与运算 a | b # 或运算 a ^ b # 异或运算 a <<…

    C# 2023年5月15日
    00
  • C#类中属性与成员变量的使用小结

    请听我仔细讲解! C#类中属性与成员变量的使用小结 在开发C#应用程序的过程中,使用类是很常见的。类是描述对象行为和特征的模板,而属性和成员变量是类中最常用的元素之一。下面,我们将详细介绍C#类中属性与成员变量的使用。 成员变量 成员变量也称为字段,是类中用于存储数据的变量。成员变量可以在类的任何方法之外进行定义,这样就可以在整个类中使用。定义成员变量时,可…

    C# 2023年5月31日
    00
  • Unity3D实验室之iOS真机闪退的解决方法

    下面我来详细讲解“Unity3D实验室之iOS真机闪退的解决方法”的完整攻略。 Unity3D实验室之iOS真机闪退的解决方法 问题描述 在Unity3D开发iOS应用过程中,经常会遇到iOS真机上会出现闪退的情况。这种问题可能由于很多方面引起,需要仔细分析和排查。 本文将从几个方面来讲解如何解决iOS真机闪退问题。 解决方法 1. 清除缓存 有时候我们在测…

    C# 2023年6月3日
    00
  • Unity3d使用FairyGUI 自定义字体的操作

    当Unity3d项目需要使用自定义字体时,我们可以使用FairyGUI来实现。下面是Unity3d使用FairyGUI自定义字体的操作攻略,包含以下内容: 下载安装BMFont工具; 制作自定义字体; 使用FairyGUI设置自定义字体。 下载安装BMFont工具 BMFont是一个字体文件制作工具,可将字体文件转化成所需格式。我们需要下载这个工具,并安装到…

    C# 2023年5月15日
    00
  • 详解C#编程中一维数组与多维数组的使用

    详解C#编程中一维数组与多维数组的使用 一维数组的定义和使用 定义 一维数组是由相同类型元素组成的一组有序集合。这些元素在内存中按照一定的顺序依次存放。在C#中,我们可以通过以下语法来定义一个一维数组: <数据类型>[] <数组名> = new <数据类型>[<数组长度>]; 例如,定义一个长度为5的int类型…

    C# 2023年6月7日
    00
  • .NET中保证线程安全的高级方法Interlocked类使用介绍

    Interlocked类是.NET Framework中保证线程安全的高级方法之一,其主要提供了一系列原子操作,用于保护资源的访问并防止数据竞争。下面将对Interlocked类进行介绍。 一、Interlocked类概述 Interlocked类是System.Threading命名空间中的一个类,包含了一组原子操作方法,该方法能够保证一个指定地址上的操作…

    C# 2023年6月7日
    00
  • 使用C#创建Windows服务的实例代码

    下面我将为你分享如何使用C#创建Windows服务的攻略,步骤包含两条示例说明。 一、创建Windows服务 1.打开Visual Studio,在菜单中选择“文件”→“新建”→“项目”→“Windows服务”。 2.设置服务名称和解决方案名称等信息,点击“创建”按钮。 3.在“Solution Explorer”中找到“Service1.cs”文件,并双击…

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