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

    关注

    244

    文章

    24779

    浏览量

    693411
  • 钢琴
    +关注

    关注

    0

    文章

    9

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何禁用多个键盘

    ,如何禁用那些 i jus 需要一个键盘来处理所有文本区域。 基本上,用户需要为多个字段提供用户输入,为此我正在使用文本区域,单击键盘的勾号会触发回调以设置这是我的用例。
    发表于 05-12 07:15

    探索 Adafruit Trellis:开源背光键盘驱动系统

    最多可以在共享的 I2C 总线上拼接 8 个模块。 Trellis 的 PCB 是专门为适配 Adafruit 4x4 弹性键盘而设计的。每个 PCB 上有
    的头像 发表于 05-10 16:15 719次阅读

    DIY达芬奇剪辑键盘开源项目介绍

    达芬奇官方 Speed Editor 专业剪辑键盘好用是真的,2500 元的售价也让不少剪辑师直呼肉疼。今天给大家带来一款超香的开源 DIY 项目,完美复刻官方剪辑键盘核心功能,低成本就能自制专属剪辑控台,效率拉满。
    的头像 发表于 05-06 11:30 560次阅读
    DIY达芬奇剪辑<b class='flag-5'>键盘</b>开源项目介绍

    低功耗BLE应用三模键盘模块方案

    在无线外设市场,键盘产品正加速向多模化、低功耗方向演进。针对厂商对低功耗BLE应用的迫切需求,基于CH592芯片的三模键盘模块方案提供了USB/BLE/2.4G一体化解决思路。三模键盘
    的头像 发表于 04-14 17:20 514次阅读
    低功耗BLE应用三模<b class='flag-5'>键盘</b><b class='flag-5'>模块</b>方案

    低成本宏键盘旋钮开源项目介绍

    办公切软件、调参数太繁琐?创作时控笔刷 / 缩放总找快捷键?商用宏键盘价格高,还难适配个性化操作需求?想自制宏键盘,却遇设计复杂、组装难度高的问题?
    的头像 发表于 03-25 11:09 680次阅读

    #光模块定制 韶关亿宏科技光纤通信光模块#电子技术 #电子爱好者 #电子制作

    模块
    韶关亿宏科技光纤通信
    发布于 :2026年03月11日 09:26:53

    【开源键盘合集】60%、100%、120%多种键盘布局,你选哪种?

    “本合集收录了多款使用KiCad设计的开源客制化键盘,是时候复刻一把了”点击跳转,可获取设计文件扫码入群,失效请加微信:opensrc_KLin本合集涵盖了60%、100%、120%多种配列键盘
    的头像 发表于 01-27 08:05 3361次阅读
    【开源<b class='flag-5'>键盘</b>合集】60%、100%、120%多种<b class='flag-5'>键盘</b>布局,你选哪种?

    新品 | Chain DualKey,可编程双按键输入开发板

    ChainDualKey是一款可编程双按键输入开发板,搭载ESP32-S3FN8主控芯片。正面集成2个支持热插拔的青轴机械键盘按键及2个可编程RGBLED,交互反馈优异;内置350mAh锂电池,结合
    的头像 发表于 10-31 16:31 1973次阅读
    新品 | Chain DualKey,可编程双按键输入开发板

    富芮坤FR2012A芯片赋能声云智能语音键盘

    在数字化办公时代,键盘作为人机交互的核心工具,其智能化程度直接决定了工作效率与体验。安徽声云智能科技有限公司推出的智能语音键盘,正是基于这一理念打造的划时代产品。它不仅继承了传统键盘的输入功能,更
    的头像 发表于 09-17 14:19 1841次阅读

    新大陆哪款手持采集器是带键盘和全屏的?

    在现代商业和工业领域,手持采集器的应用越来越广泛,一款既带键盘又有全屏的手持采集器往往能为工作带来更高的效率和更好的体验。那么新大陆哪款手持采集器是带键盘和全屏的呢?下面为您推荐两款优秀的产品
    的头像 发表于 09-09 16:04 972次阅读
    新大陆哪款手持采集器是带<b class='flag-5'>键盘</b>和全屏的?

    如何制作字母数字键盘

    制作字母数字键盘
    发表于 09-05 07:24

    键盘常见问题的解决方法

    用户点击输入框时,软键盘默认弹出。但在特定场景下,需要对软键盘的弹出和收起进行控制,如点击空白区域收起软键盘,进入页面时输入框主动获焦。开发者还需根据软键盘状态和高度调整页面布局。
    的头像 发表于 09-04 09:11 1058次阅读

    键盘薄膜高弹UV胶则是一种特殊改性的UV固化胶,用于薄膜键盘按键弹性体的部分或高弹性密封

    薄膜键盘是一种常见的键盘类型,它使用薄膜作为按键的触发器。而键盘薄膜高弹UV胶则是一种特殊改性的UV固化胶,用于薄膜键盘按键弹性体的部分或高弹性密封。薄膜
    的头像 发表于 08-26 10:03 1250次阅读
    <b class='flag-5'>键盘</b>薄膜高弹UV胶则是一种特殊改性的UV固化胶,用于薄膜<b class='flag-5'>键盘</b>按键弹性体的部分或高弹性密封

    如何使用 QMK的固件键盘开源在 NUC029 上实现键盘

    使用 QMK的固件键盘开源在 NUC029 上实现键盘
    发表于 08-20 08:22

    HarmonyOS应用自定义键盘解决方案

    自定义键盘是一种替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯,对按键布局进行可视化重构、设置多功能组合键位,使输入更加便捷和舒适。在安全防护层面,自定义键盘
    的头像 发表于 06-05 14:19 2743次阅读