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

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

3天内不再提示

Arduino:享受控制RGB LED灯的乐趣

Petc 2023-02-20 13:30 1691次阅读

第1篇:用Arduino控制曲别针电动机
第2篇:非接触式开关的制作与控制
第3篇:自制电磁执行器的制作方法

我们推出了一项新计划,即通过使用了Arduino的简单制作来学习电子制作的原理和基础知识。此次为我们分享的嘉宾是伊藤尚未先生,他活跃于媒体艺术领域,并且在书籍领域以讲解“更深层次的原理”而闻名。第4篇我们将用Arduino来控制RGB LED灯。

目录

前言

闪光灯动画

用Arduino控制电机

控制三色LED

享受千变万化的动画

1. 前言

大家好!我是伊藤尚未。

这次我想尝试制作一个可以称之为动画的原理和鼻祖的“走马盘”。“走马盘”也被称为“诡盘(phenakistiscope)”,不过相比之下“走马盘(Zoetrope)”这个词对于喜欢电子制作的人来说可能更熟悉。无论哪种,都是在具有某种主题的转盘上设置一些狭缝,当人通过狭缝观看时,狭缝便起到快门的作用,转盘旋转时让人感觉像在看动画。

这是1830年代在欧洲发明的视觉玩具,有平面的、立体的、镜像的和另设快门的,产品形式多样。类似于翻书动画,也可以说是当今影视技术的鼻祖。

如果尝试以电子作品的形式展现出来的话,就需要通过使LED等光源闪烁来使人看到的瞬间连续起来。通过将LED灯控制为连续闪光灯并使绘有连续图画的转盘旋转起来,即可表现出动画的效果。这也是因为白色LED的发明,加之电路配置变得更简单了,才让我们能够享受其中的制作乐趣。

虽然在书籍和网络上已经有多种多样的制作介绍,但我突发奇想,如果不仅仅用白色LED闪烁,而是用RGB闪烁的方式,应该会有更丰富的表现吧,所以我决定制作出来,并介绍给大家。

2. 闪光灯动画

我通常在工作室等进行电子制作,但最近,用简单的电路使LED闪烁的制作,以及将其灯光照射到绘有图画的转盘上形成动画的项目多起来了。

这种装置通常采用由晶体管电阻器电容器组成的简单振荡电路,不过在这次的作品中,我让闪烁速度也成为可调的了。

很遗憾的是,不知道是视频中的帧率问题还是什么原因,效果没有很好地拍摄出来。从视频中可以看到,转盘的转速会逐渐变慢并最终停止,动画的速度也随之变化。

3. 用Arduino控制电机

我希望它一直以相同的速度旋转,所以我决定制作一个用电机驱动的装置。电机使用的是“万宝至”公司生产的“FA-130RA”。

poYBAGPyzLmAYdwkAAGoexvtTmk828.jpg

从包装上看,正常转速是6500rpm,感觉这个速度有点太快了,所以我决定通过控制让转速慢一些。

pYYBAGPyzLuAZU2zAAJwGC6uiq4402.jpg

我做了一个支架用来将转盘的轴固定在上方,用皮带轮将电机的旋转传递给转盘,并使用Arduino的模拟输出来控制电机的旋转速度。

pYYBAGPyzL2AQSlbAAEOsULALxM861.jpg

我使用了ROHM的晶体管“2SD1866”进行驱动。

poYBAGPyzL-AVmBEAACdhrSU9Tk517.jpg

完整的作品样子如下:

poYBAGPyzMGAPnQNAAIeJQtb5TA739.jpg

由于电机在开始转动时需要一定的动力,因此很难从一开始就减速,所以我先让电机转起来,然后再使之低速转动。为此,我做了一个可以用手旋转进行调节的半可调电阻器旋钮装置,这样就可以手动控制转速了。

使用Arduino进行模拟输入,以控制电机。电路图如下:

pYYBAGPyzMSAQ-q4AAIzvyVUfvY192.png

使用电机控制用的晶体管“2SD1866”进行驱动,并由一节干电池提供1.5V电压。将这些部件组装在面包板上之后的示意图如下:

poYBAGPyzMaAMbcTAAPf1o85O7w369.png

pYYBAGPyzMiADOM5AAIqMZLCMow524.jpg

草图如下。其机制是通过A0引脚将半可调电阻器的值模拟输入,并通过引脚9经由20kΩ的电阻器驱动连接到晶体管集电极的电机。

int Value01 = 0;

void setup() {

Serial.begin(9600);
pinMode(9, OUTPUT);

}

void loop() {

int Value01 = analogRead(A0);
Serial.println(Value01);
analogWrite(9, Value01 / 4);

}

当我实际尝试使其转动起来时,转盘竟然能够以很低的速度旋转。当我用前面用过的闪光灯照射转盘时,它表现如下:

4. 控制三色LED

现在,为了提高亮度,我打算增加LED的数量。此外,为了制作出最初想象中的RGB LED,我分别采用了5个红色、绿色和蓝色的LED。

为了让Arduino控制这些LED,我决定也用晶体管“2SD1866”来驱动。

电路图如下:

pYYBAGPyzMqAKDp4AAIHlv1-Vcs367.png

每个晶体管由Arduino的引脚11、引脚12和引脚13驱动,红色对应引脚13,绿色对应引脚12,蓝色对应引脚11。外部电源为3节干电池,4.5V。我把它们焊接到了万用板上并接线。电路板接线图如下:

poYBAGPyzMyAeLL2AAN2_IJriyU150.png

poYBAGPyzM6Afe7iAAJVb5suuso298.jpg

为了便于照亮安装在电机底座上的转盘,我将该LED板安装在倾斜的底座上,另外还在电机底座上安装了Arduino和面包板等部件。由于LED的光线不够均匀,所以我为LED安装了扩散罩。

pYYBAGPyzNCAM3xaAAEASzG1OTY241.jpg

从电机底座的后面看,样子如下:

poYBAGPyzNGAaarbAADP4J8Debc888.jpg

将其与Arduino连接。首先,为了让所有的LED同时闪烁,在前面提到的电机控制部分基础上,草图中又增加了部分内容:

int Value01 = 0;

void setup() {

pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);

Serial.begin(9600);
pinMode(9, OUTPUT);
}

void loop() {

int Value01 = analogRead(A0);
Serial.println(Value01);
analogWrite(9, Value01 / 4);

digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
delay(1);

digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
delay(49);

}

当前设置为点亮0.001秒,熄灭0.049秒,每秒闪烁20次。由于RGB同时闪烁,光的三原色合在一起发出白色的光,所以动画看起来像之前的闪光灯动画。

poYBAGPyzNSAMf10AAKyoiY6Luc505.jpg

5. 享受千变万化的动画

下面,我们让RGB错开时间亮起。除了全部亮起形成白色光之外,还可以通过错开时间让红色、绿色和蓝色LED分别亮起,来使转盘上的图形显示不同的颜色。草图如下:

int Value01 = 0;
 
void setup() {
 
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
 
    Serial.begin(9600);
    pinMode(9, OUTPUT);
}
 
void loop() {
 
    int Value01 = analogRead(A0);
     Serial.println(Value01);
    analogWrite(9, Value01 / 4);
     
  digitalWrite(13, HIGH);               
  digitalWrite(12, HIGH);  
  digitalWrite(11, HIGH);  
  delay(1);                
 
  digitalWrite(13, LOW);   
  digitalWrite(12, LOW);  
  digitalWrite(11, LOW); 
  delay(13); 
 
  digitalWrite(13, HIGH);               
  delay(1);                
  digitalWrite(13, LOW);   
  delay(11); 
 
  digitalWrite(12, HIGH);               
  delay(1);                
  digitalWrite(12, LOW);   
  delay(11); 
 
  digitalWrite(11, HIGH);               
  delay(1);                
  digitalWrite(11, LOW);   
  delay(11); 

}

这样,虽然没有改变整体的周期,但看起来像红色、绿色、蓝色的人在白色人中间奔跑。

pYYBAGPyzNaAOu0cAAM4d-V6xxg373.jpg

如果用来表演,还可以增加更多表达方式。可以分别混合颜色,还可以让它们一会儿出现一会儿消失,是不是很有趣?

这让我想起当我还是个学生的时候,在节目中创造各种模式演出的乐趣。如今,当我确定某个创意“可行”的时候,在考虑把创意做成作品时倾向于直接进入完成期了。这种现象也称为“搁置”(笑)。

pYYBAGPyzNeAUtPAAAKYVblMk7E952.png

最后,把电路图合在一起,整个电路图如上图所示。1.5V电源用于电机,4.5V电源用于LED,当然Arduino也连接了USB。另外,我还进行了焊接并使用了面包板。

如您所见,这次的电子作品制作中使用了各种手法,不过我更希望大家也来挑战一下!

本系列连载一览

第1篇:用Arduino控制曲别针电动机
第2篇:非接触式开关的制作与控制
第3篇:自制电磁执行器的制作方法
第4篇:享受控制RGB LED灯的乐趣(本章)
第5篇:用Arduino控制伺服电机来演奏乐器!

审核编辑黄宇

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

    关注

    242

    文章

    23624

    浏览量

    669434
  • 电机
    +关注

    关注

    143

    文章

    9217

    浏览量

    147964
  • RGB
    RGB
    +关注

    关注

    4

    文章

    803

    浏览量

    59456
  • Arduino
    +关注

    关注

    188

    文章

    6485

    浏览量

    189798
收藏 人收藏
    相关推荐
    热点推荐

    Arduino学习日记之点亮RGB

    */// 在大多数Arduino控制板上,13号引脚有一个LED// 给引脚设置一个别名“led”int
    发表于 08-11 19:09

    如何通过MQTT控制RGB LED

    条驱动板。如果我将一个简单的草图上传到控制 PWM 的 WeMos,我的 RGB LED 带会在颜色之间淡化。所以所有硬件都在工作。我
    发表于 05-23 06:44

    RGB Led是什么?

    RGB Led是什么? RGB LED与白光LED两者其实都是希望达到白光的效果,只不
    发表于 11-18 13:41 2.4w次阅读

    用自己声音或智能手机控制RGB LED带实现梦幻效果

    本项目将使用智能手机设置RGB LED带的颜色,这些RGB带内建蓝牙功能,可接收智能手机上的android应用程序发送的指令。这样,我们
    的头像 发表于 07-15 09:11 7111次阅读
    用自己声音或智能手机<b class='flag-5'>控制</b><b class='flag-5'>RGB</b> <b class='flag-5'>LED</b><b class='flag-5'>灯</b>带实现梦幻效果

    RGB LED控制器开源分享

    电子发烧友网站提供《RGB LED控制器开源分享.zip》资料免费下载
    发表于 08-18 14:41 20次下载
    <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b><b class='flag-5'>灯</b><b class='flag-5'>控制</b>器开源分享

    RGB LED褪色Arduino库开源分享

    电子发烧友网站提供《RGB LED褪色Arduino库开源分享.zip》资料免费下载
    发表于 10-27 14:25 0次下载
    <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>褪色<b class='flag-5'>Arduino</b>库开源分享

    Arduino Uno与RGB LED连接

    电子发烧友网站提供《将Arduino Uno与RGB LED连接.zip》资料免费下载
    发表于 11-14 11:35 1次下载
    将<b class='flag-5'>Arduino</b> Uno与<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>连接

    使用Arduino和Python Tkinter进行RGB Led控制

    电子发烧友网站提供《使用Arduino和Python Tkinter进行RGB Led控制.zip》资料免费下载
    发表于 11-30 12:00 0次下载
    使用<b class='flag-5'>Arduino</b>和Python Tkinter进行<b class='flag-5'>RGB</b> <b class='flag-5'>Led</b><b class='flag-5'>控制</b>

    Arduino控制RGB LED

    电子发烧友网站提供《Arduino控制RGB LED条.zip》资料免费下载
    发表于 12-29 11:39 4次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>的<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b><b class='flag-5'>灯</b>条

    用于LED串的Arduino控制电源

    电子发烧友网站提供《用于LED串的Arduino控制电源.zip》资料免费下载
    发表于 02-08 15:58 0次下载
    用于<b class='flag-5'>LED</b><b class='flag-5'>灯</b>串的<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>电源

    Arduino RGB Led控制通过PC

    电子发烧友网站提供《Arduino RGB Led控制通过PC.zip》资料免费下载
    发表于 02-09 11:30 0次下载
    <b class='flag-5'>Arduino</b> <b class='flag-5'>RGB</b> <b class='flag-5'>Led</b><b class='flag-5'>控制</b>通过PC

    Arduino控制伺服电机来演奏乐器!

    第1篇:用Arduino控制曲别针电动机第2篇:非接触式开关的制作与控制第3篇:自制电磁执行器的制作方法第4篇:享受控制RGB
    的头像 发表于 02-20 10:15 1486次阅读
    用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>伺服电机来演奏乐器!

    带有Arduino Uno的RGB LED雪花

    电子发烧友网站提供《带有Arduino Uno的RGB LED雪花.zip》资料免费下载
    发表于 06-16 10:19 2次下载
    带有<b class='flag-5'>Arduino</b> Uno的<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>雪花

    使用Arduino的Android控制RGB LED

    电子发烧友网站提供《使用Arduino的Android控制RGB LED条.zip》资料免费下载
    发表于 07-05 09:45 2次下载
    使用<b class='flag-5'>Arduino</b>的Android<b class='flag-5'>控制</b><b class='flag-5'>RGB</b> <b class='flag-5'>LED</b><b class='flag-5'>灯</b>条

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用Arduino控制RGB LEDRGB(红-绿-蓝)LED可以通过
    的头像 发表于 02-11 10:28 6512次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>

    ElfBoard技术贴|如何调整eMMC存储分区

    ELF 2开发板基于瑞芯微RK3588高性能处理器设计,拥有四核ARM Cortex-A76与四核ARM Cortex-A55的CPU架构,主频高达2.4GHz,内置6TOPS算力的NPU,这一设计让它能够轻松驾驭多种深度学习框架,高效处理各类复杂的AI任务。

    ElfBoard
    15小时前
    390

    米尔基于MYD-YG2LX系统启动时间优化应用笔记

    1.概述MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600/DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、

    米尔电子
    21小时前
    241

    运放技术——基本电路分析

    虚短和虚断的概念由于运放的电压放大倍数很大,一般通用型运算放大器的开环电压放大倍数都在80dB以上。而运放的输出电压是有限的,一般在10V~14V。因此运放的差模输入电压不足1mV,两输入端近似等电位,相当于“短路”。开环电压放大倍数越大,两输入端的电位越接近相等。“虚短”是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称

    张飞实战电子官方
    1天前
    298

    飞凌嵌入式携手中移物联,谱写全国产化方案新生态

    4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”在深圳成功举办。中移物联网有限公司(以下简称“中移物联”)携OneOS操作系统与飞凌嵌入式共同推出的工业级核心板亮相会议展区,操作系统产品部高级专家严镭受邀作《OneOS工业操作系统——助力国产化智能制造》主题演讲。

    飞凌嵌入式
    1天前
    691

    ATA-2022B高压放大器在螺栓松动检测中的应用

    实验名称:ATA-2022B高压放大器在螺栓松动检测中的应用实验方向:超声检测实验设备:ATA-2022B高压放大器、函数信号发生器,压电陶瓷片,数据采集卡,示波器,PC等实验内容:本研究基于振动声调制的螺栓松动检测方法,其中低频泵浦波采用单频信号,而高频探测波采用扫频信号,利用泵浦波和探测波在接触面的振动声调制响应对螺栓的松动程度进行检测。通过螺栓松动检测

    Aigtek安泰电子
    2天前
    997

    MOS管驱动电路——电机干扰与防护处理

    此电路分主电路(完成功能)和保护功能电路。MOS管驱动相关知识:1、跟双极性晶体管相比,一般认为使MOS管导通不需要电流,只要GS电压(Vbe类似)高于一定的值,就可以了。MOS管和晶体管向比较c,b,e—–>d(漏),g(栅),s(源)。2、NMOS的特性,Vgs大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压达到4V或10V就可以

    张飞实战电子官方
    2天前
    348

    压敏(MOV)在电机上的应用剖析

    一前言有刷直流电机是一种较为常见的直流电机。它的主要特点包括:1.结构相对简单,由定子、转子、电刷和换向器等组成;2.通过电刷与换向器的接触来实现电流的换向,从而使电枢绕组中的电流方向周期性改变,保证电机持续运转;3.具有调速性能较好等优点,可以通过改变电压等方式较为方便地调节转速。有刷直流电机在许多领域都有应用,比如一些电动工具、玩具、小型机械等。但它也存

    深圳市韬略科技有限公司
    2天前
    239

    硬件原理图学习笔记

    这一个星期认真学习了硬件原理图的知识,做了一些笔记,方便以后查找。硬件原理图分为三类1.管脚类(gpio)和门电路类输入输出引脚,上拉电阻,三极管与门,或门,非门上拉电阻:正向标志作用,给悬空的引脚一个确定的状态三极管:反向三极管(gpio输出高电平,NP两端导通,被控制端导通,电压为0)->NPN正向三极管(gpio输出低电平,PN两端导通,被控制端导通,

    张飞实战电子官方
    04-30 18:40
    413

    TurMass™ vs LoRa:无线通讯模块的革命性突破

    TurMass™凭借其高传输速率、强大并发能力、双向传输、超强抗干扰能力、超远传输距离、全国产技术、灵活组网方案以及便捷开发等八大优势,在无线通讯领域展现出强大的竞争力。

    道生物联
    2天前
    760

    RZT2H CR52双核BOOT流程和例程代码分析

    RZT2H是多核处理器,启动时,需要一个“主核”先启动,然后主核根据规则,加载和启动其他内核。本文以T2H内部的CR52双核为例,说明T2H多核启动流程。

    RA生态工作室
    04-03 17:14
    2.1k

    干簧继电器在RF信号衰减中的应用与优势

    在电子测试领域,RF(射频)评估是不可或缺的一部分。无论是研发阶段的性能测试,还是生产环节的质量检测,RF测试设备都扮演着关键角色。然而,要实现精准的RF评估,测试设备需要一种特殊的电路——衰减电路。这些电路的作用是调整RF信号的强度,以便测试设备能够准确地评估RF组件和RF电路的各个方面。衰减器的挑战衰减器的核心功能是校准RF信号的强度。为了实现这一点,衰

    斯丹麦德电子
    04-30 11:33
    728

    ElfBoard嵌入式教育科普|ADC接口全面解析

    当代信息技术体系中,嵌入式系统接口作为数据交互的核心基础设施,构成了设备互联的神经中枢。基于标准化通信协议与接口规范的技术架构,实现了异构设备间的高效数据交换与智能化协同作业。本文选取模数转换接口ADC作为技术解析切入点,通过系统阐释其工作机理、性能特征及重要参数,为嵌入式学习者爱好者构建全维度接口技术认知框架。

    ElfBoard
    04-30 09:34
    390

    深入理解C语言:C语言循环控制

    在C语言编程中,循环结构是至关重要的,它可以让程序重复执行特定的代码块,从而提高编程效率。然而,为了避免程序进入无限循环,C语言提供了多种循环控制语句,如break、continue和goto,用于改变程序的执行流程,使代码更加灵活和可控。本文将详细介绍这些语句的作用及其应用场景,并通过示例代码进行说明。Part.1break语句C语言中break语句有两种

    合众恒跃
    04-29 18:49
    518

    第 21 届(顺德)家电电源与智能控制技术研讨会圆满落幕--其利天下斩获颇丰

    2025年4月25日,其利天下应大比特之邀出席第21届(顺德)家电电源与智能控制技术研讨会,已圆满落幕。一、演讲回顾我司研发总监冯建武先生在研讨会上发表了主题为《重新定义风扇驱动:一套算法兼容百种电机的有效磁链观测器方案》的演讲,介绍了我司研发自适应技术算法(简称),该方案搭载有效磁链观测器,适配百种电机类型,结合FOC算法可实现免调参稳定启动、低速静音控制

    其利天下技术
    04-28 19:29
    1.4k

    来自资深工程师对ELF 2开发板的产品测评

    来自资深工程师对ELF 2开发板的使用测评

    ElfBoard
    04-28 15:03
    549