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

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

3天内不再提示

如何使用Arduino制作彩色LED合成器

454398 来源:wv 2019-09-04 10:33 次阅读

第1步:本教学中使用的触摸屏

对于这个Instructable,我将使用浩宇电子的触摸屏。我使用了以下内容:

5“图形LCD触摸屏,800x480,SPI,FT810

此屏幕的运费约为36美元。这比其他更多Arduino屏幕,但你得到了很多钱:

清晰的高分辨率触摸面板,分辨率为800x480。

板载图形协处理器RAM允许控制而不会阻碍Arduino。

内置音频合成器,带有高质量的声音样本和各种乐器可供选择。

风景和人像支持(在FT810或更好的上) 。

多点触控支持。

内置JPEG,波形音频和视频解码器,适用于高级项目。

第2步:准备屏幕

如何使用Arduino制作彩色LED合成器

一旦拿到屏幕,就需要将标头焊接到屏幕上.Haoyu屏幕是很棒,因为它们带有易于焊接的通孔,您可以选择直接在屏幕背面或在屏幕背面焊接接头。小型带状电缆,连接到可拆卸的分线板上。

要完成焊接作业,您需要暂时断开带状电缆并从面板背面取下PCB板。用指甲轻轻提起LCD连接器上的固定夹,然后释放带状电缆。然后,取下固定电路板的四个螺钉。

现在将5x2接头(或两个5x1接头)焊接到您想要的位置。用电工胶带盖住背面以避免短路。然后,重新拧上PCB并重新连接带状电缆。

步骤3:可选:打印LCD支架并添加黄铜插件

我选择3D打印用于固定LCD面板的支架[1]

面板配有四个黄铜插件;这些都是用热量压成塑料的。当它们冷却时,它们上的小齿咬入塑料中并防止它们掉出来。这些刀片是为3D打印部件添加耐用螺纹的常用方法。

一旦支架完成打印,我从面板上拧下四个黄铜插件。

我加热了我的熨斗并将尖端向上倾斜,轻轻平衡尖端上的插入物。然后我将塑料部件放在上面,然后慢慢地将插件推入预先形成的孔中,直到它们与表面齐平。

如果你的烙铁头有一个狭窄的圆锥形尖端,这个步骤会更好。如果你以前从未这样做过,那么你可能想要在熨斗很酷的时候练习 - 你只有一次机会在熨斗很热的时候做到这一点!

小心这一步作为黄铜插件变得非常热,你不希望它们落在你的腿上。在耐热表面上工作,如果它们从铁尖上脱落,就要抵制立即触及它们的诱惑!

[1]来源:LCD支架STL和CAD文件

步骤4:取下胶片并装载显示器

现在,翻转显示器并取下前面的丙烯酸框架,然后从液晶面板上剥下保护膜(这将增强显示器的清晰度)。使用螺钉将显示器安装在3D打印支架上。

步骤5:将焊头连接到LED模块

如图所示,使用侧面切割器断开四针长度的接头并将它们焊接到LED模块上。如果您愿意,也可以将跳线长度切成两半并直接焊接。

步骤6:连接电路

从Arduino到LED模块运行三根跳线,如下所示:

面包板上的5V到红色轨道

面板上的黑色导轨

IN到Arduino上的针脚~5

对于LCD显示器,连接:

5V到面包板上的红色轨道

GND到面包板上的黑色轨道

SCK到Arduino上的~13脚

MISO将Arduino上的〜12引脚

MOSI将Arduino上的~11引脚

CS将Arduino上的引脚~10引脚

PD在Arduino上固定~9

AUDIO进入音频电路,如面包板和原理图所示

GND转到面包板上的黑色导轨

来自Arduino:

从5V引脚到面包板上的红色导轨运行跳线

从GND引脚到黑色运行跳线面包板上的导轨

音频输出电路完成后,您现在可以将耳塞式耳机或一组放大的计算机扬声器插入音频插孔。

设计音频输出:

显示面板的AUDIO输出是一个不是mea的数字信号不能直接驾驶扬声器。试图这样做可能会损坏面板或扬声器。要提供正确的音频输出,您需要构建一个执行以下任务的调理电路:

将数字PWM(脉冲宽度调制)信号转换为模拟电压。

将输出电流和电压限制在安全水平。

任务可以通过两个电阻和两个电容来完成。

我查了一下FTDI FT810芯片的数据表发现,AUDIO引脚可以在3.3V时驱动高达16mA的电流。这意味着负载必须具有不小于206欧姆的电阻。为了保护引脚免受短路的影响,我首先将一个220欧姆的电阻与AUDIO引脚串联。然后我将另一个100欧姆电阻器接地,形成一个分压器。当没有任何东西连接到插孔时,这会将3.3V降低到大约1V的水平,这对于线路电平音频是安全的。 100nF形成一个低通滤波器,可以在传递音频的同时消除高频PWM噪声。剩下的1uF电容称为交流耦合电容。它阻止直流电流流出音频插孔,同时让音频信号(即AC)通过。

步骤7:安装FastLED库并运行代码

从我的github存储库下载包含Arduino sketch的.zip文件。

打开Arduino IDE并进入“Sketch” - 》“Include”图书馆“ - 》”管理图书馆。..。..“。安装Daniel Garcia的“FastLED”库。然后,打开“RainbowPiano.ino”文件并将其上传到您的Arduino Uno!

步骤8:代码概述

代码使使用我在C ++中开发的UI框架。此框架允许您从一个或多个UI屏幕构建界面。钢琴应用程序只有一个屏幕,由以下代码定义:

class PianoScreen : public InterfaceScreen {

。..

public:

static void onEntry();

static void onRedraw(draw_mode_t what);

static void onTouchStart(uint8_t tag);

static void onIdle();

};

// List all screens in your app in the following table

SCREEN_TABLE {

DECL_SCREEN(PianoScreen)

};

SCREEN_TABLE_POST

void PianoScreen::onEntry() {

// Code that executes when a screen is shown

}

void PianoScreen::onRedraw(draw_mode_t what) {

// Code that runs to draw a screen

}

void PianoScreen::onTouchStart(uint8_t tag) {

// Code that runs when the user touches the screen

}

void PianoScreen::onIdle() {

// Code for tasks that run while the screen is active

}

其中,最重要的方法是 onRedraw()。它通过调用 CommandProcessor 对象上的方法来绘制用户界面,该对象将绘图命令发送到显示面板。第一组命令用黑色清除屏幕(0x000000):

CommandProcessor cmd;

cmd.cmd(CLEAR_COLOR_RGB(0x000000))

.cmd(CLEAR(true,true,true));

然后,代码绘制屏幕顶部的仪器选择按钮:

#define GRID_ROWS 8

#define GRID_COLS 6

cmd.font(font_small)

.fgcolor(black)

.tag(241).button( BTN_POS(1,1), BTN_SIZE(1,1), F(“Piano”))

这里有几点需要注意。首先,UI库允许您在网格上布局界面。在这种情况下,我将接口布局在6x8网格上。然后我设置字体和颜色,然后是标签

每个界面按钮都与标签相关联。当用户单击某个按钮时,将使用该标记调用 onTouchStart()方法,以便您可以对该按钮采取适当的操作。标签位于按钮命令之前,按钮命令发送指令以在位置(1,1)处标记“钢琴”按钮,同时在网格上占据1x1的空间。用于布置钢琴键的代码类似,但是在循环中发生。

稍后在代码中,您会找到响应按钮并按下标签241的功能:

void PianoScreen::onTouchStart(uint8_t tag) {

switch(tag) {

case 241: highlighted_instrument = tag; instrument = PIANO; break;

。..

}

onRefresh();

}

当用户按下按钮时,代码会修改一些变量以将仪器设置为 PIANO ,然后调用 onRefresh()来更新屏幕突出显示新按钮。突出显示由 highlightCallback()函数完成,该函数在每个按钮调用 onRefresh()期间,允许您根据标签更改按钮的颜色。突出显示状态。

播放声音的代码有点不同:

void PianoScreen::onTouchStart(uint8_t tag) {

switch(tag) {

。..

default:

// Code for setting the LED colors

。..

if(instrument == HIHAT) {

// Special case for drum kit notes

} else {

// Sound off the note

sound.play(instrument, NOTE_C3 + tag - 1);

}

highlighted_note = tag;

}

onRefresh();

}

这包含了这个快速浏览的内容。我希望这个介绍足以让您开始为Arduino项目设计自己的图形界面!

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

    关注

    237

    文章

    22444

    浏览量

    645840
  • 合成器
    +关注

    关注

    0

    文章

    247

    浏览量

    25130
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184809
收藏 人收藏

    评论

    相关推荐

    频率合成器的作用解读

    频率合成器是一种电路或设备,用于产生特定频率的信号。它的作用包括但不限于以下几个方面
    的头像 发表于 11-25 09:17 501次阅读

    基于ADF4111的锁相环频率合成器设计

    电子发烧友网站提供《基于ADF4111的锁相环频率合成器设计.pdf》资料免费下载
    发表于 10-20 14:45 0次下载
    基于ADF4111的锁相环频率<b class='flag-5'>合成器</b>设计

    ADF4377 微波宽带合成器和集成VCO数据表 ADI

    电子发烧友网为你提供ADI(ADI)ADF4377 微波宽带合成器和集成VCO数据表相关产品参数、数据手册,更有ADF4377 微波宽带合成器和集成VCO数据表的引脚图、接线图、封装手册、中文资料
    发表于 10-11 18:54
    ADF4377 微波宽带<b class='flag-5'>合成器</b>和集成VCO数据表 ADI

    CDF5356: 微波宽带合成器和集成 VCO 数据表 ADI

    电子发烧友网为你提供ADI(ADI)CDF5356: 微波宽带合成器和集成 VCO 数据表相关产品参数、数据手册,更有CDF5356: 微波宽带合成器和集成 VCO 数据表的引脚图、接线图、封装手册
    发表于 10-10 19:12
    CDF5356: 微波宽带<b class='flag-5'>合成器</b>和集成 VCO 数据表 ADI

    锁相环频率合成器的优缺点

    锁相环频率合成器的优缺点  锁相环频率合成器,又称为PLL(Phase Locked Loop),是一种广泛应用的电路,能够将输入信号的频率合成为电路所需要的频率,并且能够实现对信号的相位和频率
    的头像 发表于 09-02 14:59 1404次阅读

    射频合成器的主要作用

    射频合成器是一种电子设备,用于生成射频信号。射频合成器在无线通信、雷达、卫星通信、广播和电视等领域中起着重要作用。它们能够产生稳定、准确的射频信号,以满足各种应用的需求。
    的头像 发表于 07-15 09:34 415次阅读

    系统的频域性能指标有哪些 频率合成器是如果影响系统指标的呢?

    我们常说频率合成器常被比作电子系统的“心脏”,那频率合成器是如果影响系统指标的呢?
    的头像 发表于 07-14 10:04 1326次阅读
    系统的频域性能指标有哪些 频率<b class='flag-5'>合成器</b>是如果影响系统指标的呢?

    加法合成器开源分享

    电子发烧友网站提供《加法合成器开源分享.zip》资料免费下载
    发表于 07-13 11:05 0次下载
    加法<b class='flag-5'>合成器</b>开源分享

    功分器和合成器的主要区别

    功分器(Power Divider)和合成器(Power Combiner)是两种常见的无源射频器件,它们在信号处理中有不同的功能和应用。
    的头像 发表于 07-13 09:21 564次阅读

    Arduino Atari朋克合成器

    电子发烧友网站提供《Arduino Atari朋克合成器.zip》资料免费下载
    发表于 06-30 11:14 0次下载
    <b class='flag-5'>Arduino</b> Atari朋克<b class='flag-5'>合成器</b>

    带有PAM8403音频放大器的更好的Arduino合成器

    电子发烧友网站提供《带有PAM8403音频放大器的更好的Arduino合成器.zip》资料免费下载
    发表于 06-30 10:35 3次下载
    带有PAM8403音频放大器的更好的<b class='flag-5'>Arduino</b><b class='flag-5'>合成器</b>

    数字频率合成器的作用

    数字频率合成器(Digital Frequency Synthesizer)是一种电子设备,用于生成精确的、可编程的高稳定度的频率信号。它的主要作用是在各种应用中提供精确的频率合成和调整。
    的头像 发表于 06-30 09:15 604次阅读

    Arduino合成器

    电子发烧友网站提供《Arduino合成器.zip》资料免费下载
    发表于 06-29 10:04 0次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>合成器</b>

    如何制作一个音频合成器

    合成器电路是能够使用电子设备产生音频信号的电路。现代合成器现在非常流行,因为它提供了制作优质音乐的便利性。您可能已经看到一些类似的合成器电路,例如电子钢琴,MIDI发生器等。该电路可以
    的头像 发表于 05-13 11:29 1362次阅读
    如何<b class='flag-5'>制作</b>一个音频<b class='flag-5'>合成器</b>?

    使用 Arduino Nano 创建基于 DCO 的音频合成器

    在这个项目中,学习使用Arduino Nano或Arduino Uno创建数字控制振荡器或基于DCO的音频合成器。 我喜欢音乐,我也喜欢电子。 多年来,我一直在制造音乐电子设备,主要是为我的电吉他
    的头像 发表于 05-03 16:03 1278次阅读
    使用 <b class='flag-5'>Arduino</b> Nano 创建基于 DCO 的音频<b class='flag-5'>合成器</b>