2016年12月31日 星期六

[玩轉光立方] LED Cube 4x4x4 for Arduino UNO -- 組裝教學

自從當了 Maker 之後,一直都覺得 LED Cube 光立方是一個非常酷炫的裝置,當它發光時視覺上不僅炫耀奪目,而且其中還隱藏了不少的數學原理,非常建議老師、家長和同學一起來玩玩。



我們先來看看影片 https://www.youtube.com/watch?v=XIb07gRdHn8


準備


材料
1. 電路板 *1
2. 公排針 *40P
3. 圓孔母排針 *20
4. 3mm 長腳 藍色霧面 LED *64


工具
1. 烙鐵 + 焊錫
2. 斜口鉗
3. 尖嘴鉗
4. 鑷子
5. 厚紙板
6. 電鑽 + 3mm 鑽頭
7. 原子筆或細簽字筆
8. M3*14mm 螺絲+螺帽 *4
9. 電阻 100~220R *1
10. 麵包板


開始動手做


一、檢查所有的 LED 是否有正常發亮

您購買的 LED 即使廠商如何口沫橫飛地述說它們品質是如何地好,建議您也必須要自己詳細查驗,否則您可能有機會遇到懊惱的時候。

1. 計算限流電阻。

藍色 LED 順向電壓約 3.0~3.4V (注意:顏色不同,可承受的電壓也不同),我們取 3.2V 來計算:

(5 - 3.2) / 15mA = 120R

可採用 100R 或 110R 電阻。

2. 將電阻與 5V 電源插入麵包板,逐一插入 LED,檢查 LED 是否正常發光。
將 LED 插入麵包板時要注意 LED 的正負極。



二、彎折 LED

1. 取出尖嘴鉗輔助彎折 LED,我們需要彎折出 3 種型式的 LED,圖面右側是未彎折前。
在彎折時須注意 LED 的正負腳,正腳在彎 2 折後仍保持與燈珠同方向,並且每一彎折應盡量保持90度角,如下:

Type A * 48只



Type B * 12只



Type C * 4只




小聲地說...這個工作我是一邊看電視一邊彎折的,不然要彎折 64 只 LED 還真是挺無聊的事情。


三、製作固定 LED 的模板

這個模板可以用來插入 LED,如此可以讓 LED 排列整齊,在焊接時不會移位。

1. 準備一張厚約 1~3mm 的硬紙板。我隨手找了個 68x68mm 的蛋糕盒。



2. 在上面畫上間距 14mm 的九宮格。14mm * 3 = 42mm,九宮格邊長是 42mm。
我先畫上交叉線找出盒子中心點,再由中心點往外畫出九宮格。


3. 用電鑽在交點處鑽出 16 個 3mm 圓孔。


四、將圓孔母排針焊到電路板上

1. 將 20 支圓孔母排針插到電路板上。板子有兩面,要注意方向。


2. 為了焊接前翻轉電路板,避免排針掉落,我將 Arduino UNO 板子疊上去,用 M3*14mm 螺絲+螺帽 *4 將他們鎖在一起。
在將螺絲鎖緊前可用手指頭輕敲電路板讓排針垂直站立,邊敲邊觀察哪支排針沒有垂直,此時可用鑷子調整排針。


這是翻轉後的樣子


3. 由於有少數幾支排針與螺帽非常接近,因此我先焊接中央部分的排針,待焊到螺帽旁的排針時再移除螺帽焊接排針。
您的焊接接技術一定比我好,就不必移除螺帽可直接焊接。



五、焊接公排針

1. 用斜口鉗將公排針剪出

6P * 2只
8P * 2只


2. 將上述排針(長)插入 Arduino UNO。注意圖片中排針的位置。


3. 對準公排針孔位,放上 LED Cube 電路板,須注意電路板正反面。
底下圖片是焊接好的樣子。




六、焊接 LED

先來看看我們要做出怎樣的東西


我把紙模寫上座標以利辨識


1. 將 Type A 插到座標(0,0)~(3,2)之間區塊,共 12 只。
注意 LED 的腳位方向。


2. 將 Type B 插到座標(0,3)~(2,3)之間直線,共 3 只。
注意 LED 的腳位方向。



3. 將 Type C 插到座標(3,3),共 1 只。
注意 LED 的腳位方向。


4. 將 LED 所有的負腳全部焊接在一起。
圖片中是焊接好取出的樣子。


5. 您需要做 4 組(L0~L3)上面圖片的 LED 層面。

6. 將 4 組 LED 層面的正腳都焊起來。
注意正腳搭接長度大約是 8mm 左右,盡量讓你的 LED 排列呈現出正方形。



7. 在 L0~L3 每一層的負腳(上圖黑色導線)各焊上一條導線。



8. 先將光立方電路板插入 Arduino UNO,再將整組 LED Cube 小心地插入圓孔排針,並且將 4 條導線另一端也插入圓孔排針,至此大功告成。



程式

//2017-01-01 LED_Cube4_01.ino
//從頂層到底層逐一點亮 LED

#define CUBE_SIZE 4
#define PLANE_SIZE CUBE_SIZE*CUBE_SIZE
#define PLANE_TIME 20
#define LED_TIME 500

int LEDPin[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1};
int PlanePin[] = {A2 , A3, A4, A5};

void setup()
{
  int pin;
  for (pin = 0; pin < PLANE_SIZE; pin++) {
    pinMode(LEDPin[pin], OUTPUT);
    digitalWrite(LEDPin[pin], LOW);
  }
  for (pin = 0; pin < CUBE_SIZE; pin++) {
    pinMode(PlanePin[pin], OUTPUT);
    digitalWrite(PlanePin[pin], HIGH);
  }
}

void loop()
{
  for (int plane = 0; plane < CUBE_SIZE; plane++)
  {
    digitalWrite(PlanePin[plane], LOW);
    for (int led = 0; led < PLANE_SIZE; led++)
    {
      digitalWrite(LEDPin[led], HIGH);
      delay(LED_TIME);
      digitalWrite(LEDPin[led], LOW);
    }
    digitalWrite(PlanePin[plane], HIGH);
    delay(PLANE_TIME);
  }
}

程式說明

1. UNO 腳位 D0~D13 & A0~A1 分別控制每一顆 LED,D0 控制的 LED 是靠近 D0 腳位那一顆,A1 腳位則是控制距離 D0 最遠的那一顆 LED。A2 控制頂層 LED,A5 則是控制底層 LED。

2. 把所有的腳位都設定成 OUTPUT,才可以指定它要 HIGH 或 LOW。當指定它為 HIGH 時電位是 5V;當指定它為 LOW時電位是 0V,相對於 5V 而言可以把它視為是 GND。

3. 在初始階段為了讓所有的 LED 都不亮,所以在 setup() 階段將 16只 LED 腳位都設為 LOW,並且將控制層面的 4 只腳位都設為 HIGH。

來看看影片



問題與解答

問題:LED 燈的變化不如預期,有些不會亮,是不是哪裡的焊接有問題?

解答:
請根據下圖,依下列步驟人工逐一通電檢查(請記得加上限流電阻):
Step1. 檢查每一個LED燈珠是不是好的。
Step2. 檢查每一個LED燈珠在彎折時的正負腳是否正確。
Step3. 檢查每一層是否有焊妥。
Step4. 檢查每一列是否有焊妥。
Step5. 檢查每一行是否有焊妥。

也可以用程式逐一點亮每一顆 LED,就知道哪些 LED 有問題。


2016年12月17日 星期六

DIY 音樂門鈴

這是一款非常簡單的音樂門鈴套件,除了適合國中小學生工藝課之外,也適合親子在假日一起動手做。


準備材料與工具


材料

088BD 音樂模塊 * 1
電晶體 S9013 * 1
電容 103 * 1
8R 小喇叭 * 1
按鈕 * 1
電池盒 * 1
電線 長度約 1M
外殼 * 1
電工膠帶 少許


工具

斜口鉗
尖嘴鉗
烙鐵 + 焊錫
M3十字起子


開始動手做

電源部分

1. 將鐵片置入背蓋的電池盒內。背蓋上方是 1 個大鐵片,下方是 2 個小鐵片,注意彈簧那個小鐵片是安裝在右側。


2. 翻轉背蓋,將突出的鐵片往外彎曲90度固定,以防止鐵片脫落。


3.注意正負極位置,將電源線焊上。(圖上的"+ -"符號是我用簽字筆寫上去的)



按鈕部分

1. 將白色電線夾入簧片。簧片裏面有尖齒,只要用尖嘴鉗緊壓簧片,尖齒會穿透電線膠皮進而導電。

為以防萬一,我多做了一小段裸露電線伸到簧片圓圈裏,待會兒再用螺絲鎖上時可接觸形成導通。


2. 用螺絲將一個簧片鎖入按鈕帽後,放到白色按鈕盒的洞口,並插入 2 個彈簧。



3. 用螺絲將簧片和長鐵片鎖上。



喇叭部分

1. 取 2 條電線分別焊到喇叭的正負極。



電路板部分

這是簡易電路圖,您可以注意一下圖中並沒有標示出 103 電容的位置。


由於這個套件是使用一只 -088BD 音樂 IC,我找到另一個比較詳細的電路圖,它有標示 103 電容的位置,您可以將這兩張圖互相對照一下。


如果材料包裏面的電晶體不是 S9013 而是 S8050,如此也沒有影響。其中 S9013 和 S8050 都是 NPN 型電晶體,而且集極電流最高都可以承受到 500mA,在一般情況下這兩款電晶體可以互相替用。

在將電晶體插入電路板時要注意電晶體的腳位。


我按照上面電路圖焊接後出現 2 個問題,一個是裝上電池後即使沒有按下按鈕,音樂也會一直響個不會停;另一個問題是這樣的接線方法電池會一直耗電。

於是...以下是我修改後的方法,在沒有按下按鈕時整體電路是不會耗電的。

1. 將電晶體和電容如下圖插入電路板並焊接。注意 103 電容腳位沒有正負極之分,它其中一隻腳與電晶體的 C 腳是插在同一個孔。


2. 將電源負極線焊到電路板的負極,也就是電晶體 E 腳。
3. 將電源正極線與按鈕任意一條線焊接,然後用絕緣帶纏繞以防短路。
4. 將按鈕另一條線與喇叭正極線焊到電路板的正極。
5. 將喇叭負極線焊到電路板上電晶體 C 腳。


底下是網友「海陸健兒」提供的接線方式。(感謝海大)



組裝

1. 將喇八輕輕壓入前蓋,如果覺得不夠緊固可以在喇叭與前蓋交界處周圍塗佈一圈快乾膠或熱熔膠。



2. 裁一小片紙膠帶貼住電路板焊接部位,以避免跟其它電線碰觸導致短路。

3. 將電路板放入喇叭旁的空間,按鈕電線從前蓋角落的小缺口穿出,將前蓋與背蓋闔上並用螺絲鎖緊,最後蓋上電池蓋。



這是完成圖




相關連結

S9013 Datasheet http://html.alldatasheet.com/html-pdf/311426/DAYA/S9013/94/1/S9013.html
S8050 Datasheet http://html.alldatasheet.com/html-pdf/154210/WEITRON/S8050/292/1/S8050.html
祝你生日快樂電子蠟燭 http://www.ttfanwen.com/info_10/fw_2350307.html


採購資訊

音樂門鈴套件 http://goods.ruten.com.tw/item/show?21630190930598