0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何制作基于Arduino的钢琴

454398 来源:工程师吴畏 2019-07-29 09:49 次阅读

简介

我们已经看到一些使用Arduino的面向应用的项目,如心率监测,机械臂,家庭自动化等有时候,我们只为了8x8x8 LED Cube,计算机手势控制等项目而开展项目。

基于Arduino的钢琴项目属于有趣的项目类别,你知道,这个项目没有任何真实世界的应用程序(至少不是直接的),但可以用来理解Arduino的某些功能(就像它使用音调的声音产生能力) ()功能)。

尽管如此,声音和音调可以提供很好的音频我们的项目中有反馈意见。

如何制作基于Arduino的钢琴?

而不是询问如何制作基于Arduino的钢琴,正确的问题应该是如何使用Arduino生成不同的音调。我们知道Arduino能够产生PWM信号

我将使用Arduino的这个功能来产生音调。使用Arduino生成音调的另一种方法是使用函数tone()函数。

使用tone()函数,您可以生成不同频率但具有固定值的方波周期(50%)。在内部,tone()函数依赖于Arduino的定时器(或更准确的ATmega328P微控制器)。

电路图

下图显示了使用Arduino进行钢琴应用的电路图。从电路图中可以看出,它是一个相当简单的电路。

所需组件

Arduino UNO

按钮X 8

小压电蜂鸣器(或小型扬声器)

连接电线

面包板

电源

电路设计

Arduino Piano电路的设计非常简单。首先,将5V压电蜂鸣器(即其正极端子)连接到Arduino的引脚10。您必须将Piezo蜂鸣器连接到Arduino的一个PWM引脚。 Piezo蜂鸣器的另一端连接到GND。

现在,将7个按钮连接到Arduino的数字I/O引脚3到9。这些引脚用作音调输入引脚。我使用了Arduino的INTERNAL PULL UP功能,因此我没有将任何外部上拉电阻连接到这些引脚。

这些按钮的所有其他端子都是连接到GND。最后,另一个按钮连接到Arduino的引脚2,作为中断引脚。此按钮的另一端也连接到GND。

我使用了板载LED(连接到引脚13的LED)来指示常规音调播放和录制的音调之间播放。

代码

项目代码如何制作基于Arduino的钢琴如下所示。

工作

按照电路图进行连接,并将代码上传到Arduino。一旦打开电路电源,Arduino就可以接受来自按钮的输入。

每个按钮都与代码中的PWM信号相关联。按下按钮时,通过压电式蜂鸣器产生特定的PWM信号。

现在,对于录制和重复模式,使用不同的按钮播放几个音调。按下每个按钮,Arduino开始录制,即记下按钮的顺序,开启时间和关闭时间。

完成音调后,您可以按下中断按钮。一旦Arduino进入中断模式,所有先前按下的音调将通过压电蜂鸣器播放。

在正常音调播放期间,即按下按钮时,LED在引脚13上保持ON。在重复模式期间,它保持关闭状态。

这里要理解的重点是我没有使用Arduino的tone()函数。您可以尝试使用该功能生成不同频率的声音。

结论

A有趣的DIY项目名为Arduino的钢琴在这里实施。这个项目有助于理解Arduino的声音功能。虽然我没有使用tone()函数,但您可以使用该函数实现相同的结果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    187070
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino实现CAN总线通信呢

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微控制器平台,可以通过附加
    的头像 发表于 12-23 09:06 144次阅读

    Arduino Nano Matter开发板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter开发板现已正式上市。这是延续今年3 月芯科科技和Arduino释出Arduino
    的头像 发表于 12-10 13:50 201次阅读

    自己设计的Arduino UNO R3主控板原理图+PCB源文件(可直接打样)

    一年前做的Arduino UNO r3,开源精神,把自己这块板子奉献给大家,板子没有什么问题,可以直接打样制作,原理图文件都表明了型号。不用谢~ Arduino UNO R3主控板原理图部分截图: *附件:MYArduino
    发表于 12-10 10:14

    开源项目!基于 Arduino 的 MIDI 架子鼓

    牢固地固定在插槽中。 第 6 步:给鼓垫接线 1、固定电缆: 使用热胶将带状电缆连接到垫子上。 2、焊接鼓垫: 通过焊接将鼓垫连接到多频段带状电缆。 第 7 步:制作 Arduino 扩展板 1
    发表于 11-25 12:00

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 531次阅读

    stm32与Arduino的比较

    在微控制器的世界里,STM32和Arduino是两个经常被提及的名字。STM32是一系列由STMicroelectronics生产的高性能微控制器,而Arduino则是一个开源电子原型平台,基于易于
    的头像 发表于 11-19 15:45 861次阅读

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 849次阅读

    如何用Arduino制作一个简易自动喂鱼器

    如果你家里养有鱼,并想找到一种自动化喂食的方法,这个项目可能会对你有所启发。 在这个教程中,作者将展示如何制作自己的基于Arduino的自动喂鱼器,让小鱼不在饿肚子。 自动喂鱼器的工作原理非常
    发表于 03-28 11:25

    如何制作自己的Arduino电容计

    在这个项目中,您将学习如何制作自己的Arduino电容计(测量电容器的值,范围从pF到1000的uF)。一般来说,电子爱好者喜欢设计自己的小工具而不是购买。在这个项目中,我们使用两种电容测量方法,即
    的头像 发表于 02-25 15:10 1573次阅读
    如何<b class='flag-5'>制作</b>自己的<b class='flag-5'>Arduino</b>电容计

    arduino如何停止loop循环

    Arduino的loop循环是其主要的程序执行部分,该循环将在Arduino开发板上持续运行,并且只有在程序被重新上传或开发板断电重启时才会停止。然而,在某些情况下,你可能需要在程序执行过程中停止或
    的头像 发表于 02-14 16:24 4540次阅读

    arduino中while循环怎么跳出

    Arduino 是一款开源的硬件平台,广泛应用于各种物联网和嵌入式系统项目。在 Arduino 上编写代码时,循环结构起到了至关重要的作用。而其中的 while 循环更是常用于需要根据特定条件重复
    的头像 发表于 02-14 16:22 2591次阅读

    如何使用Arduino制作智能垃圾箱

    在这个项目中,我将向您展示如何使用Arduino制作智能垃圾箱,当您带着垃圾接近时,垃圾箱的盖子会自动打开。
    的头像 发表于 02-11 12:22 3028次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>智能垃圾箱

    使用Arduino Nano制作一个4×4×4 LED立方体

    在这个项目中,我们将使用 Arduino Nano 制作一个很酷的 4×4×4 LED立方体。LED 立方体,也称为 LED矩阵,可以照亮您的房间、学习空间或创客区域,使其看起来非常酷炫。此外,它非常容易构建,并帮助您在电子和编码方面发挥创意。
    的头像 发表于 02-11 12:07 3211次阅读
    使用<b class='flag-5'>Arduino</b> Nano<b class='flag-5'>制作</b>一个4×4×4 LED立方体

    2023年Arduino开放原码报告:持续茁壮的Arduino生态系!

    所谓出钱就是买一片Arduino开发板或是付费订阅Arduino Cloud云端服务,或单纯资金赞助;出力就是撰写Arduino相关的程序并无私的分享程序代码或回报错误或投入翻译等,笔者即有若干翻译新版
    的头像 发表于 01-25 16:45 1450次阅读
    2023年<b class='flag-5'>Arduino</b>开放原码报告:持续茁壮的<b class='flag-5'>Arduino</b>生态系!

    Arduino制作循迹小车教程

    Arduino制作循迹小车完全教程
    发表于 01-05 11:09 7次下载