第1篇:用Arduino控制曲別針電動機
第2篇:非接觸式開關的制作與控制
第3篇:自制電磁執(zhí)行器的制作方法
我們推出了一項新計劃,即通過使用了Arduino的簡單制作來學習電子制作的原理和基礎知識。此次為我們分享的嘉賓是伊藤尚未先生,他活躍于媒體藝術領域,并且在書籍領域以講解“更深層次的原理”而聞名。第4篇我們將用Arduino來控制RGB LED燈。
目錄
前言
閃光燈動畫
用Arduino控制電機
控制三色LED
享受千變萬化的動畫
1. 前言
大家好!我是伊藤尚未。
這次我想嘗試制作一個可以稱之為動畫的原理和鼻祖的“走馬盤”?!白唏R盤”也被稱為“詭盤(phenakistiscope)”,不過相比之下“走馬盤(Zoetrope)”這個詞對于喜歡電子制作的人來說可能更熟悉。無論哪種,都是在具有某種主題的轉盤上設置一些狹縫,當人通過狹縫觀看時,狹縫便起到快門的作用,轉盤旋轉時讓人感覺像在看動畫。
這是1830年代在歐洲發(fā)明的視覺玩具,有平面的、立體的、鏡像的和另設快門的,產品形式多樣。類似于翻書動畫,也可以說是當今影視技術的鼻祖。
如果嘗試以電子作品的形式展現出來的話,就需要通過使LED等光源閃爍來使人看到的瞬間連續(xù)起來。通過將LED燈控制為連續(xù)閃光燈并使繪有連續(xù)圖畫的轉盤旋轉起來,即可表現出動畫的效果。這也是因為白色LED的發(fā)明,加之電路配置變得更簡單了,才讓我們能夠享受其中的制作樂趣。
雖然在書籍和網絡上已經有多種多樣的制作介紹,但我突發(fā)奇想,如果不僅僅用白色LED閃爍,而是用RGB閃爍的方式,應該會有更豐富的表現吧,所以我決定制作出來,并介紹給大家。
2. 閃光燈動畫
我通常在工作室等進行電子制作,但最近,用簡單的電路使LED閃爍的制作,以及將其燈光照射到繪有圖畫的轉盤上形成動畫的項目多起來了。
這種裝置通常采用由晶體管、電阻器和電容器組成的簡單振蕩電路,不過在這次的作品中,我讓閃爍速度也成為可調的了。
很遺憾的是,不知道是視頻中的幀率問題還是什么原因,效果沒有很好地拍攝出來。從視頻中可以看到,轉盤的轉速會逐漸變慢并最終停止,動畫的速度也隨之變化。
3. 用Arduino控制電機
我希望它一直以相同的速度旋轉,所以我決定制作一個用電機驅動的裝置。電機使用的是“萬寶至”公司生產的“FA-130RA”。
從包裝上看,正常轉速是6500rpm,感覺這個速度有點太快了,所以我決定通過控制讓轉速慢一些。
我做了一個支架用來將轉盤的軸固定在上方,用皮帶輪將電機的旋轉傳遞給轉盤,并使用Arduino的模擬輸出來控制電機的旋轉速度。
我使用了ROHM的晶體管“2SD1866”進行驅動。
完整的作品樣子如下:
由于電機在開始轉動時需要一定的動力,因此很難從一開始就減速,所以我先讓電機轉起來,然后再使之低速轉動。為此,我做了一個可以用手旋轉進行調節(jié)的半可調電阻器旋鈕裝置,這樣就可以手動控制轉速了。
使用Arduino進行模擬輸入,以控制電機。電路圖如下:
使用電機控制用的晶體管“2SD1866”進行驅動,并由一節(jié)干電池提供1.5V電壓。將這些部件組裝在面包板上之后的示意圖如下:
草圖如下。其機制是通過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的引腳11、引腳12和引腳13驅動,紅色對應引腳13,綠色對應引腳12,藍色對應引腳11。外部電源為3節(jié)干電池,4.5V。我把它們焊接到了萬用板上并接線。電路板接線圖如下:
為了便于照亮安裝在電機底座上的轉盤,我將該LED板安裝在傾斜的底座上,另外還在電機底座上安裝了Arduino和面包板等部件。由于LED的光線不夠均勻,所以我為LED安裝了擴散罩。
從電機底座的后面看,樣子如下:
將其與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同時閃爍,光的三原色合在一起發(fā)出白色的光,所以動畫看起來像之前的閃光燈動畫。
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); }
這樣,雖然沒有改變整體的周期,但看起來像紅色、綠色、藍色的人在白色人中間奔跑。
如果用來表演,還可以增加更多表達方式??梢苑謩e混合顏色,還可以讓它們一會兒出現一會兒消失,是不是很有趣?
這讓我想起當我還是個學生的時候,在節(jié)目中創(chuàng)造各種模式演出的樂趣。如今,當我確定某個創(chuàng)意“可行”的時候,在考慮把創(chuàng)意做成作品時傾向于直接進入完成期了。這種現象也稱為“擱置”(笑)。
最后,把電路圖合在一起,整個電路圖如上圖所示。1.5V電源用于電機,4.5V電源用于LED,當然Arduino也連接了USB。另外,我還進行了焊接并使用了面包板。
如您所見,這次的電子作品制作中使用了各種手法,不過我更希望大家也來挑戰(zhàn)一下!
本系列連載一覽
第1篇:用Arduino控制曲別針電動機
第2篇:非接觸式開關的制作與控制
第3篇:自制電磁執(zhí)行器的制作方法
第4篇:享受控制RGB LED燈的樂趣(本章)
第5篇:用Arduino控制伺服電機來演奏樂器!
審核編輯黃宇
-
led
+關注
關注
242文章
23146瀏覽量
658562 -
電機
+關注
關注
142文章
8938瀏覽量
145123 -
RGB
+關注
關注
4文章
798瀏覽量
58392 -
Arduino
+關注
關注
187文章
6464瀏覽量
186669
發(fā)布評論請先 登錄
相關推薦
評論