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
    +关注

    关注

    190

    文章

    6515

    浏览量

    195994
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Arduino plc和termux esp

    Arduino plc和termux esp
    的头像 发表于 12-06 06:41 1442次阅读

    高通宣布收购 Arduino,加速普及前沿边缘计算与 AI 技术

    “  全新 Arduino UNO Q 开发板与 Arduino App Lab 将为数百万开发者带来高通 Dragonwing 处理器的强大动力。  ”   要点速览: 强强联合 :此次收购将高
    的头像 发表于 10-08 11:15 362次阅读
    高通宣布收购 <b class='flag-5'>Arduino</b>,加速普及前沿边缘计算与 AI 技术

    索尼重载设备的高质量远程制作方案和应用(2)

    索尼的远程制作可以被称之为制作级的高质量远程制作,或重载设备的高质量远程制作,远程设备结合常规系统设备,提供和本地制作类似的
    的头像 发表于 08-21 15:56 883次阅读
    索尼重载设备的高质量远程<b class='flag-5'>制作</b>方案和应用(2)

    如何用Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录引导程序bootlaoder

    本文介绍了如何用能够Arduino IDE下载的Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录
    的头像 发表于 08-08 20:16 3079次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3开发板给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/UNO R3开发板重新烧录引导程序bootlaoder

    Arduino与LabVIEW联合编程指南

    Arduino编程并与LabVIEW上位机结合实现设备的远程控制与数据采集。
    发表于 06-19 15:54 1次下载

    各种WIFI天线制作技巧资料

    各种WIFI 天线制作技巧资料
    发表于 06-10 15:11 0次下载

    免费分享Arduino入门+进阶(全套例程+书籍)

    Arduino是一款开源电子原型平台,由硬件(单片机开发板)和软件(编程环境)组成,旨在让非专业用户也能轻松入门电子制作和编程。它的核心思想是简化硬件开发,通过直观的编程和模块化设计,让用户快速实现
    的头像 发表于 05-22 11:40 799次阅读
    免费分享<b class='flag-5'>Arduino</b>入门+进阶(全套例程+书籍)

    下一代物联网:芯科科技和Arduino借助边缘AI和ML简化Matter设计和应用

    Silicon Labs(芯科科技)和Arduino宣布建立合作伙伴关系,旨在通过Arduino Nano Matter开发板(基于芯科科技的MGM240系列多协议无线模块)的两阶段合作来简化Matter协议的设计和应用
    的头像 发表于 05-19 11:15 573次阅读
    下一代物联网:芯科科技和<b class='flag-5'>Arduino</b>借助边缘AI和ML简化Matter设计和应用

    《ESP32S3 Arduino开发指南》第二章 Arduino基础知识

    完成一个电子产品的制作。这就给开源硬件的推广和普及设定了一个很高的门槛,电子爱好者需要花很多时间和精力才能开始开发和制作自己的作品。而使用Arduino能很快地完成一个电子产品的制作
    发表于 05-13 09:28

    STM32开发板一般都会配置arduino接口,是不是基本上也都会支持arduino

    STM32开发板一般都会配置arduino接口,是不是基本上也都会支持arduino?这个在哪里可以查询开发板是否支持
    发表于 03-07 06:33

    开源项目!手把手教你制作一个互动式LED墙壁时钟!

    一定经验,本指南都将带你走完所有必要的步骤。 教程内容概览 制作视频 编码视频 CAD文件 材料清单 电子组件: Arduino Uno x 1 DS1302 实时时钟模块 x 1 WS2812B
    发表于 02-08 17:47

    用于 SPI 绝对编码器的 Arduino 示例代码

    作者:Damon Tarry, Design Applications Engineer, Same Sky 本 Arduino 示例代码教程旨在为用户提供一个坚实的起点,以便通过串行外设接口
    的头像 发表于 01-26 21:35 1323次阅读
    用于 SPI 绝对编码器的 <b class='flag-5'>Arduino</b> 示例代码

    STM32、Arduino、树莓派开发方式差异大吗

    最近看到有网友问:STM32、Arduino、树莓派开发方式差异大吗?   要说相同点,它们之间也有很多相同点。但你要说他们之间开发的差异,其实也蛮大的。   STM32、Arduino、树莓派三者
    的头像 发表于 01-02 11:33 1939次阅读

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

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

    Arduino采集雷达模块数据与串口绘图

    Arduino采集雷达模块数据与串口绘图
    的头像 发表于 12-14 11:44 1215次阅读
    <b class='flag-5'>Arduino</b>采集雷达模块数据与串口绘图