我們先來看看影片 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只
小聲地說...這個工作我是一邊看電視一邊彎折的,不然要彎折 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 每一層的負腳(上圖黑色導線)各焊上一條導線。
程式
//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. 檢查每一行是否有焊妥。
相關連結
1. LED 限流電阻計算 http://gc.digitw.com/Program/Resistor4LED/Resistor4LED.htm
2. Arduino UNO 開發板 https://www.arduino.cc/en/Main/ArduinoBoardUno
3. 玩轉光立方 LED Cube 4x4x4 -- 程式2 http://pizgchen.blogspot.tw/2017/01/led-led-cube-4x4x4-2.html
4. 圖形編輯器 https://www.robota.nl/en/blog/led-cube-4x4x4-pattern-designer/led-cube-simulation-and-pattern-generator.html
5. 免費的專業圖形編輯器 http://www.solderlab.de/index.php/software/glediator
採購資訊
光立方 LED Cube 4x4x4 http://goods.ruten.com.tw/item/show?21652958873589
1. LED 限流電阻計算 http://gc.digitw.com/Program/Resistor4LED/Resistor4LED.htm
2. Arduino UNO 開發板 https://www.arduino.cc/en/Main/ArduinoBoardUno
3. 玩轉光立方 LED Cube 4x4x4 -- 程式2 http://pizgchen.blogspot.tw/2017/01/led-led-cube-4x4x4-2.html
4. 圖形編輯器 https://www.robota.nl/en/blog/led-cube-4x4x4-pattern-designer/led-cube-simulation-and-pattern-generator.html
5. 免費的專業圖形編輯器 http://www.solderlab.de/index.php/software/glediator
採購資訊
光立方 LED Cube 4x4x4 http://goods.ruten.com.tw/item/show?21652958873589