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

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

3天内不再提示

RGBLED键盘模块钢琴的制作

454398 来源:工程师吴畏 2019-08-09 11:10 次阅读

步骤1:需要的材料

材料清单

Piezo Buzzer 1x

4x4键盘模块1x

Arduino Uno 1x

USB 2.0电缆类型A/B 1x

声音传感器模块1x

RGB LED 1x

330欧姆电阻3x

公对母跳线8x

男性跳线4x

3 pin公对母跳线1x

材料清单与上面的图片有序。

第2步:建立时间!

4x4键盘模块& Piezo Buzzer

理论

由于4x4键盘模块和压电蜂鸣器包含许多单独的引脚输入,我决定将所用的组件分成两部分对。专注于键盘,通常用作输入。 SunFounder 4 * 4矩阵键盘模块是一个矩阵非编码键盘,由16个并行键组成,每行和每列的键通过外部引脚连接 - 引脚Y1-Y4,如同标记旁边控制行,当X1- X4,列。

目的

这些组件对整个项目的目的是允许用户按下设置为a的按钮压电蜂鸣器通过赫兹频率产生的特定声音。

矩阵模块引脚 - Arduino引脚

4 - 2

3 - 3

2 - 4

1 - 5

5 - 6

6 - 7

7 - 8

8 - 13

Piezo Buzzer - Arduino Pin

黑色 - GND

红色 - 电源

我在这个版本中最困难的任务是弄清楚每根电线插入的位置。上面我提供了快速简便的线路位置,只要按照从上到下的方式,尖端需要花费时间并确保每个引脚都正确插入正确的插槽。

*提示是遵循每根导线从一端到另一端的位置。

特定元件导线的所有Tinkercad草图都是正确的颜色编码,因此请仔细阅读。

第3步:声音传感器模块和RGB LED

声音传感器模块和RGB LED

理论

声音传感器模块允许您检测声音何时超过您选择的设定点。通过麦克风检测声音并将其馈入LM393运算放大器。一旦声级超过设定值,模块上的LED将亮起并输出。

目的

这些组件对整个项目的目的是获得声音传感器模块的声音/音量读数,通过读取RGB LED将激活与声音有关的正确颜色。

声音传感器模块 - Arduino引脚(使用3针跳线)

输出 - A0模拟引脚

GND - 任何开路GND引脚插槽

VCC - 3V

RGB共阳极(+)LED - Arduino引脚

红色 - 9

电源 - 5V

绿色 - 10

蓝色 - 11

请记住电线,每根电线穿过330欧姆电阻。使用上面的图片作为参考。

我在这个版本中最困难的任务是弄清楚每根电线插入的位置。上面我提供了快速简便的线路位置,只要按照从上到下的方式,提示就是花时间确保每个引脚都正确插入到正确的插槽中以防止将来调试。

*提示是遵循每条线插入的方式。

特定组件线的所有Tinkercad草图都是正确的颜色编码,因此请遵循。

步骤4:代码

代码

此代码允许使用新定义的所有组件一起工作功能包含所有许多控件一个组件,它有许多可变变量,这些组件是RGB led,并使用rgb颜色改变打开时的颜色和压电蜂鸣器以及根据按钮按下它会产生的声音。

此代码中必须包含键盘库

下载后,将新库添加到ardu中ino,然后插入激活它所需的单行代码。

我在代码中遇到的困难是将新定义的函数放在何处通过反复试验我发现它必须在设置中而不是循环。

代码

#include // Keypad Library

int greenPin = 11; //RGB Green Pin connected to digital pin 9

int redPin= 10; //RGB Red Pin connected to digital pin 9

int bluePin = 9; //RGB Blue Pin connected to digital pin 9

int speakerPin = 12; // speaker connected to digital pin 12

const byte ROWS = 4; // four rows

const byte COLS = 4; // four coloums

const int soundPin = A0; //sound sensor attach to A0

char keys[ROWS][COLS] = {

{‘a’,‘b’,‘c’,‘d’},

{‘e’,‘f’,‘g’,‘h’},

{‘i’,‘j’,‘k’,‘l’},

{‘m’,‘n’,‘o’,‘p’}

}; // Visualization of keypad module

byte rowPins[ROWS] = {2, 3, 4, 5}; // connect to the row pinouts of the keypad

byte colPins[COLS] = {6, 7, 8, 13}; // connect to the colum pinouts of the keypad

Keypad keypad = Keypad ( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Creates keys

void setup(){

pinMode(speakerPin, OUTPUT); // sets the speakerPin to be an output

pinMode(redPin, OUTPUT); // sets the red pin to be an output

pinMode(greenPin, OUTPUT); // sets the green pin to be an output

pinMode(bluePin, OUTPUT); // sets the blue pin to be an output

Serial.begin (9600);

}

void setColor(int red, int green, int blue) // New defined function to allow RGB to display colour through RGB code

{

#ifdef COMMON_ANODE

red = 255 - red;

green = 255 - green;

blue = 255 - blue;

#endif

analogWrite(redPin, red);

analogWrite(greenPin, green);

analogWrite(bluePin, blue);

}

void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds){ // the sound producing functions

int x;

long delayAmount = (long)(1000000/frequencyInHertz);

long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));

for (x=0;x

void loop (){

char key = keypad.getKey();

int value = analogRead(soundPin);//read the value of A0

Serial.println(value);//print the value

if (key != NO_KEY) {

Serial.println(key);

}

if (key==‘a’){

beep(speakerPin,2093,100);

setColor(218, 112, 214);

}

if (key==‘b’){

beep(speakerPin,2349,100);

setColor(218, 112, 214);

}

if (key==‘c’){

beep(speakerPin,2637,100);

setColor(218, 112, 214);

}

if (key==‘d’){

beep(speakerPin,2793,100);

setColor(218, 112, 214);

}

if (key==‘e’){

beep(speakerPin,3136,100);

setColor(218, 112, 214);

}

if (key==‘f’){

beep(speakerPin,3520,100);

setColor(218, 112, 214);

}

if (key==‘g’){

beep(speakerPin,3951,100);

setColor(218, 112, 214);

}

if (key==‘h’){

beep(speakerPin,4186,100);

setColor(218, 112, 214);

}

if (key==‘i’){

beep(speakerPin,2093,100);

setColor(230, 230,0 );

}

if (key==‘j’){

beep(speakerPin,2349,100);

setColor(180,255,130);

}

if (key==‘k’){

beep(speakerPin,2637,100);

setColor(130,255,130);

}

if (key==‘l’){

beep(speakerPin,2739,100);

setColor(130,220,130);

}

if (key==‘m’){

beep(speakerPin,3136,100);

setColor(0,255,255);

}

if (key==‘n’){

beep(speakerPin,3520,100);

setColor(0,220,255);

}

if (key==‘o’){

beep(speakerPin,3951,100);

setColor(0,69,255);

}

if (key==‘p’){

beep(speakerPin,4186,100);

setColor(255, 0,255 );

}

}

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

    关注

    240

    文章

    23100

    浏览量

    657708
  • 钢琴
    +关注

    关注

    0

    文章

    9

    浏览量

    7776
收藏 人收藏

    评论

    相关推荐

    基于XIAO SAMD21开发板的数字键盘制作方案

    今天小编给大家带来了来自印度的Arnov Sharma 制作的基于XIAO SAMD21的数字键盘项目,该项目可以通过按键在电脑和OLED的屏幕上输入0-9的阿拉伯数字,可以当作一个数字副键盘来使用。
    的头像 发表于 09-06 10:02 268次阅读
    基于XIAO SAMD21开发板的数字<b class='flag-5'>键盘</b><b class='flag-5'>制作</b>方案

    磁轴键盘霍尔开关MST-MH481霍尔磁轴机械键盘

    磁轴键盘是一种利用霍尔效应进行触发的键盘,与传统的机械键盘有所不同。磁轴键盘的轴体采用了霍尔效应技术,可以更快速、更稳定地触发按键,同时也具有更高的耐用性和更长的使用寿命。它能够为每个
    的头像 发表于 06-22 08:07 570次阅读
    磁轴<b class='flag-5'>键盘</b>霍尔开关MST-MH481霍尔磁轴机械<b class='flag-5'>键盘</b>

    键盘的矩阵规格设计图

    键盘的矩阵规格设计图
    发表于 06-19 14:29 0次下载

    老陆测功耗 | 键盘敲出火星子啦

    高效办公离不开称手的键盘,如何“键”入佳境?比起有线键盘的那根线,无线键盘的多种连接模式让办公少了一“线”杂乱。比起电量突然耗尽的手足无措,随时更换干电池显得更加贴心。我们本期选择了两款干电池
    的头像 发表于 06-04 08:04 661次阅读
    老陆测功耗 | <b class='flag-5'>键盘</b>敲出火星子啦

    什么是磁轴键盘?电竞磁轴键盘高精度线性霍尔传感器方案简析

    磁轴键盘是一种新型的电脑键盘,相较于传统的机械键盘而言,它采用了磁性材料和磁场进行操作,具有更轻柔、噪音更小、寿命更长的优点
    的头像 发表于 04-18 14:12 4982次阅读
    什么是磁轴<b class='flag-5'>键盘</b>?电竞磁轴<b class='flag-5'>键盘</b>高精度线性霍尔传感器方案简析

    定制化DC电源模块的设计与制作

    定制化DC电源模块的设计与制作 定制化DC电源模块的设计与制作需要按照具体需求和要求来进行。下面是一般的设计和制作步骤: 1. 确定需求和规
    的头像 发表于 02-29 13:48 584次阅读
    定制化DC电源<b class='flag-5'>模块</b>的设计与<b class='flag-5'>制作</b>

    薄膜键盘领域设计#键盘

    薄膜键盘
    泰达克电子材料
    发布于 :2024年01月09日 11:30:41

    三模84键矮轴机械键盘:科大讯飞AI智能机械键盘的实力如何?

    作为一名长期奋斗在办公一线的职场人,我对键盘的要求非常高。而今天,我要为大家介绍的这款科大讯飞AI智能键盘D1,正是我在众多键盘中精心挑选出来的。 它不仅拥有三模84键矮轴机械键盘,还
    的头像 发表于 01-05 15:48 598次阅读
    三模84键矮轴机械<b class='flag-5'>键盘</b>:科大讯飞AI智能机械<b class='flag-5'>键盘</b>的实力如何?

    单片机如何读取键盘数据

    单片机作为一种嵌入式系统,往往需要与外部设备进行交互。其中之一的重要环节就是通过键盘读取输入的数据。在本文中,我们将详细介绍如何使用单片机读取键盘数据,包括键盘的原理、扫描方式、连接方式以及编程实现
    的头像 发表于 01-04 17:09 1552次阅读

    2024智能办公键盘推荐,AI赋能让办公更加高效快捷

    PPT  你是否曾为制作PPT而头痛,花费大量的时间和精力在排版和设计上?科大讯飞AI智能键盘D1内置海量PPT模板,只需输入主题,键盘即可智能生成精美的PPT,让你的演讲更加生动有趣,脱颖而出。 点评:这功能真是太香了,作为打
    的头像 发表于 01-04 15:31 552次阅读
    2024智能办公<b class='flag-5'>键盘</b>推荐,AI赋能让办公更加高效快捷

    当下热门的AI智能键盘到底怎么样?两款AI键盘到手实测

    有很多人会问AI都能用在键盘上了吗,我只想说随着AI的大力发展AI已经开始应用在各行各业中了, AI键盘的方便快捷确实能提升不少效率,小编在使用了一段时间后也是叹为观止,下面来分析测评一下小编
    的头像 发表于 01-02 17:51 613次阅读
    当下热门的AI智能<b class='flag-5'>键盘</b>到底怎么样?两款AI<b class='flag-5'>键盘</b>到手实测

    薄膜键盘弹性体可用的高弹 UV 胶

    键盘弹性体高弹UV胶,用于薄膜键盘的弹性体部分。
    的头像 发表于 12-30 09:22 473次阅读
    薄膜<b class='flag-5'>键盘</b>弹性体可用的高弹 UV 胶

    labview怎么用键盘操控事件结构

    LabVIEW是一款由美国国家仪器(National Instruments)开发的图形化编程语言和集成开发环境(IDE),它广泛应用于控制和测量领域。通过使用LabVIEW的键盘操控事件结构,用户
    的头像 发表于 12-27 10:14 2621次阅读

    键盘模组ATE手感测试机:打造舒适键盘的关键利器

    键盘模组ATE手感测试机:打造舒适键盘的关键利器?|深圳磐石
    的头像 发表于 12-13 09:11 824次阅读
    <b class='flag-5'>键盘</b>模组ATE手感测试机:打造舒适<b class='flag-5'>键盘</b>的关键利器

    阅读矩阵键盘的应用设计原理

    矩阵键盘以行和列的网格布线(尽管它们实际上不必以那个方向布置,例如在电子钢琴键盘的例子中)。在微控制器上,行或列引脚被永久设置为输入(在本文中,我们将坚持使用行连接实现此目的),而另一组引脚(在本文中,我们将坚持使用列连接实现此目的)在输出(驱动为低电平)和浮动(实际上是
    的头像 发表于 11-28 11:09 751次阅读
    阅读矩阵<b class='flag-5'>键盘</b>的应用设计原理