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

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

3天内不再提示

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

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

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

    关注

    237

    文章

    22450

    浏览量

    645881
  • 电机
    +关注

    关注

    139

    文章

    8313

    浏览量

    142112
  • RGB
    RGB
    +关注

    关注

    4

    文章

    763

    浏览量

    57412
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184843
收藏 人收藏

    评论

    相关推荐

    arduino + wiscam 基于Windows控制RGB

    串口与Arduino串口连接,上位机软件发送控制指令到Wiscam,Wiscam通过透传串口将数据传到ArduinoArduino通过PWM控制
    发表于 06-29 17:49

    Arduino学习日记之点亮RGB

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

    RGB LED控制器的资料分享

    描述RGB LED控制
    发表于 09-09 07:44

    如何通过MQTT控制RGB LED

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

    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-12 14:33 0次下载
    在<b class='flag-5'>Arduino</b>上使用共阴极和共阳极<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>

    Arduino控制RGB LED灯条

    电子发烧友网站提供《Arduino控制RGB LED灯条.zip》资料免费下载
    发表于 12-29 11:39 3次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>的<b class='flag-5'>RGB</b> <b class='flag-5'>LED</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 893次阅读
    用<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>雪花

    如何使用ArduinoRGB Led产生16M色

    电子发烧友网站提供《如何使用ArduinoRGB Led产生16M色.zip》资料免费下载
    发表于 06-28 14:44 0次下载
    如何使用<b class='flag-5'>Arduino</b>的<b class='flag-5'>RGB</b> <b class='flag-5'>Led</b>产生16M色

    使用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>灯条

    如何使用Arduino控制RGB LED

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