用Arduino作为控制设备让各种作品动起来吧! 第4篇:享受控制RGB LED灯的乐趣

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

 

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

 

目录

  1. 前言
  2. 闪光灯动画
  3. 用Arduino控制电机
  4. 控制三色LED
  5. 享受千变万化的动画

 

1. 前言

大家好!我是伊藤尚未。

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

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

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

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

 

2. 闪光灯动画

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

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

arduino-control-clipmotor-04-01

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

 

3. 用Arduino控制电机

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

arduino-control-clipmotor-04-02

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

arduino-control-clipmotor-04-03

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

arduino-control-clipmotor-04-04

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

arduino-control-clipmotor-04-05

完整的作品样子如下:

arduino-control-clipmotor-04-06

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

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

arduino-control-clipmotor-04-07

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

arduino-control-clipmotor-04-08

arduino-control-clipmotor-04-09

草图如下。其机制是通过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”来驱动。

电路图如下:

arduino-control-clipmotor-04-10

 

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

arduino-control-clipmotor-04-11

arduino-control-clipmotor-04-12

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

arduino-control-clipmotor-04-13

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

arduino-control-clipmotor-04-14

将其与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同时闪烁,光的三原色合在一起发出白色的光,所以动画看起来像之前的闪光灯动画。

arduino-control-clipmotor-04-15

 

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); 

}

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

arduino-control-clipmotor-04-16

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

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

arduino-control-clipmotor-04-17

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

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

 

伊藤 尚未
伊藤 尚未

日本电子制作普及推进委员会代表、媒体艺术家。作为科普作家、假扮动物园管理员的电工、理科实验课堂讲师、工作坊讲师、教材开发人员等,积极参与各种活动。 在月刊《儿童科学(诚文堂新光社)》连载电子制作项目长达19年,代表著书有《电子制作大图鉴》、《电子制作完美指南》。

相关文章

  1. 制作属于自己的Arduino扩展板!升级版Arduino电子制作

  2. 用Arduino和红光激光器制作激光琴【后篇】

  3. 用Arduino和红光激光器制作激光琴【前篇】

  4. raspberrypi-wearable-healthcare-device-04-01

    用Raspberry Pi和SensorMedal制作IoT跳绳设备 第四部分(剧终篇):在设备上安…

  5. arduino-control-clipmotor-05-01

    用Arduino作为控制设备让各种作品动起来吧! 第5篇:用Arduino控制伺服电机来演奏乐器!

  6. arduino-control-clipmotor-03-01

    用Arduino作为控制设备让各种作品动起来吧! 第3篇:电磁执行器的自制方法

  7. arduino-control-clipmotor-01_13

    用Arduino作为控制设备让各种作品动起来吧! 第1篇:用Arduino控制曲别针电动机

  8. raspberrypi-iot-jumprope-device-03-01

    用Raspberry Pi和SensorMedal制作IoT跳绳设备 第三部分:连接Google …

  9. raspberrypi-iot-jumprope-device-02-01

    用Raspberry Pi和SensorMedal制作IoT跳绳设备 第二部分:用SensorMed…

TECH INFO

  • Sugiken老师的电机驱动器课堂
  • 重点必看
  • 技术分享
  • Arduino入门指南

基础知识

  • Si功率元器件
  • IGBT功率元器件
  • 热设计
  • 电路仿真
  • 开关噪声-EMC
  • AC/DC
  • DC/DC
  • 电机
  • 传递函数

工程技巧


Sugiken老师的电机驱动器课堂

PICK UP

PAGE TOP