You are on page 1of 26

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN
LẬP TRÌNH HỆ THỐNG VÀ VI ĐIỀU KHIỂN

ĐỀ TÀI:

LED CUBE 8x8x8

GVHD: TS. HUỲNH HỮU HƯNG


SVTH: NGUYỄN HẢI ĐĂNG
PHẠM HÒA MÂU
PHAN THANH VƯƠNG
LỚP: 16T1

Đà Nẵng, 5-2019
Bảng phân công

STT Mô tả công việc Thành viên thực hiện

1 Đưa ra ý tưởng, phân tích và thiết kế hệ thống.

2 Tìm hiểu chức năng, cách sử dụng và mua thiết bị.


Cả nhóm

3 Nghiên cứu sơ đồ mạch để lắp đặt các linh kiện.

Cắt LED, hàn LED trên từng hàng và hàn thành


4 Đăng, Vương
khối lập phương.

Làm mạch PCB và nối mạch PCB với khối LED


5 Mâu. Vương
lập phương.

Tìm hiểu và xây dựng code các hiệu ứng nạp vào
6 Cả nhóm
mạch.

7 Làm báo cáo,slide thuyết trình. Đăng, Mâu


LỜI NÓI ĐẦU

Ngày nay, ngành khoa học kĩ thuật ngày càng phát triển, cùng
với đó là nhu cầu đòi hỏi của con người ngày một nâng cao trong
nhiều lĩnh vực của đời sống xã hội. Trong đó có nhu cầu về một cuộc
sống tiện nghi, thông minh. Hiện tại, Công nghệ thông tin được người
ta quan tâm và nhắc đến nhiều hơn bao giờ hết vì nó là một phần
không thể thiếu trong cuộc sống văn minh, tri thức. Máy vi tính, các
thiết bị di động cùng với những phần mềm là công cụ đắc lực giúp ta
quản lý, tổ chức, sắp xếp, điều khiển và xử lý công việc một cách
nhanh chóng và chính xác. Là một sinh viên ngành Công nghệ thông
tin, chúng em có cơ hội được nghiên cứu sâu hơn và đi vào các bước
tạo ra sản phẩm thông qua Đồ án Lập trình hệ thống và Vi điều
khiển.
Khi bạn đến các nơi công cộng, khu giải trí bạn dễ dàng bắt gặp
những áp phích quảng cáo điện tử, các hệ thống đèn chiếu LED chạy
theo các hướng khác nhau với nhiều hiệu ứng, hình ảnh và màu sắc
rất ấn tượng. Từ yêu cầu của môn học kĩ thuật vi xử lý và thực tiễn
như trên, chúng em quyết định chọn đề tài cho đồ án môn học là :
“Hiển thị ma trận LED khối 8x8x8”
Chúng em xin chân thành cảm ơn thầy TS. Huỳnh Hữu Hưng,
giảng viên trường Đại Học Bách Khoa – Đại Học Đà Nẵng đã chỉ
bảo tận tình trong quá trình làm đồ án. Tuy đã có nhiều cố gắng trong
quá trình thực hiện, nhưng sẽ không tránh khỏi những thiếu sót.
Chúng em mong nhận được sự đóng góp ý kiến của thầy. Chúng em
xin cam đoan nội dung của bài báo cáo này là do nhóm thực hiện,
không có sao chép, và những nội dung sao chép được trích dẫn cụ thể.
MỤC LỤC
Tóm tắt đồ án……………………………………………………………….………..5
I. Giới thiệu đề tài…………………………………………………………….……..5
1.Tên đề tài…………………………………………………………………….…...5
2.Vấn đề cần giải quyết……………………………………………………….…....5
3.Đề xuất giải pháp thực hiện ………………………………………………….…..5
II. Phân tích đề tài……………………………………………………………..…….6
1.Các chức năng của sản phẩm……………………………………………….….…6
2.Nguyên tắc làm việc của linh kiện………………………………………….……7
3.Tham số kĩ thuật…………………………………………………………….…..10
4.Đoạn code kết nối làm việc với linh kiện………………………………………12
III. Giải pháp triển khai…………………………………………………………..12
1.Lựa chọn và định dạng chân LED………………………………………………13
2.Tạo hàng cho khối LED………………………………………………………...14
3.Tạo lớp cho khối LED…………………………………………………………..15
4.Dựng khối LED…………………………………………………………………17
5.Xây dựng mạch in PCB…………………………………………………………19
6.Hoàn thiện sản phẩm……………………………………………………………21
IV. Kết quả đạt được………………………………………………………………22
1.Kết quả thực hiện các hiệu ứng…………………………………………………22
2.Hình ảnh sản phẩm……………………………………………………………...24
Đánh giá và kết luận……………………………………………………………….25
1.Ưu điểm…………………………………………………………………………25
2.Nhược điểm……………………………………………………………………..25
3.Hướng phát triển………………………………………………………………...25
4.Kết luận…………………………………………………………………………25
TÓM TẮT ĐỒ ÁN
Dựa trên nguyên tắc như quét màn hình, ta có thể thực hiện việc hiển thị ma trận
đèn bằng cách quét theo hàng và quét theo cột trên khối LED3D 8x8x8 đã xây
dựng từ trước. Mỗi Led trên ma trận LED có thể được coi như một điểm ảnh.
Địa chỉ của mỗi điểm ảnh này được xác định đồng thời bởi mạch giải mã hàng
và giải mã cột, điểm ảnh này sẽ được xác định trạng thái nhờ dữ liệu đưa ra từ
mạch PCB bao gồm các thanh ghi dịch. Kết quả thu được là bộ khung LED đã
ghép nối mạch PCB có thể hiển thị tất cả các hiệu ứng theo ý tưởng mà chúng ta
đã code và nạp vào mạch.

I. Giới thiệu đề tài

1.Tên đề tài : LED CUBE 8x8x8

2.Vấn đề cần giải quyết:


Tại mỗi thời điểm chỉ có trạng thái của một điểm ảnh được xác định. Tuy
nhiên khi xác định địa chỉ và trạng thái của điểm ảnh tiếp theo thì các điểm ảnh
còn lại sẽ chuyển về trạng thái tắt (nếu LED đang sáng thì sẽ tắt dần). Vậy làm
sao để có thể hiển thị được toàn bộ hình ảnh của ma trận đèn?

3.Đề xuất giải pháp thực hiện:


Ta có thể quét ma trận nhiều lần với tốc độ quét rất lớn, lớn hơn nhiều lần
thời gian kịp tắt của đèn. Mắt người chỉ nhận biết tối đa 24 hình mỗi giây do đó
nếu tốc độ quét rất lớn thì sẽ không nhận ra được sự thay đổi nhỏ của đèn mà sẽ
thấy được toàn bộ hình ảnh, hiệu ứng cần hiển thị.
II. Phân tích đề tài

1.Các chức năng của sản phẩm:


- Sản phẩm có tất cả 14 hiệu ứng, bao gồm các hiệu ứng và đặc tả khái quát về
hiệu ứng sau đây (Hình ảnh các hiệu ứng sẽ được trình bày ở phần Kết Quả Đạt
Được) :
+Rotate_Circle : Các cột đèn(8 bóng) sẽ sáng lần lượt từ trong ra ngoài
theo những vòng tròn từ nhỏ đến lớn
+PU_PD: Các mảng đèn nằm ngang (các lớp) sẽ sáng từ trên xuống dưới
rồi rừ dưới lên trên.
+Rotate_Cross: Các đèn ở 4 mặt ngoài của ma trận led sẽ sáng theo kiểu
bậc thang.
+Spiral: Các cột đèn sáng từ trong ra ngoài theo hình xoắn ốc
+Bloom: Các vòng đèn sáng từ trong ra ngoài rồi từ ngoài vào trong như
hiệu ứng hoa nở.
+Rain:Các đèn ở tầng trên sẽ sáng một cách ngẫu nhiên rồi di chuyển
xuống dưới trông như hiệu ứng mưa rơi
+Firework: Một bóng đèn ở tầng dưới sáng ngẫu nhiên sau đó di chuyển
lên các tầng trên sau đó các vòng đèn phía trên sáng rực lên như hiệu ứng pháo
hoa đang bắn.
+PL_PR: Các mảng đèn dọc di chuyển từ trái sang phải rồi từ phải sang
trái
+Jump:Hiệu ứng này mô phỏng sự co, dãn của một hình lập phương trong
không gian với tâm của nó ở chính giữa khối led
+Number: Hiệu ứng này hiển thị các số từ 0-9 trên một mảng led nằm dọc
di chuyển từ sau ra trước.
+Character :Hiệu ứng này hiển thị một số chữ cái trên một mảng led nằm
dọc di chuyển từ sau ra trước.
+ Cube_Jump:Hiệu ứng này mô phỏng sự co, dãn của một hình lập
phương trong không gian với tâm của nó là một trong tám góc của khối led.
+Glow: Hiệu ứng này hiển thị quá trình sáng, tắt ngẫu nhiên của 512 bóng
đèn trong khối led.
+Send_Voxels: Hiệu ứng này hiển thị quá trình đảo led ở tầng trên cùng
với tầng dưới cùng. Tức là ở mỗi tầng có 32 bóng sáng ngẫu nhiên, nếu bóng ở
tầng này tắt thì bóng ở tầng kia sáng.

2.Nguyên tắc làm việc của linh kiện:


- Trong đồ án này, chúng em dùng các thanh ghi dịch74HC595. Các thanh ghi
dịch này thường dùng trong các mạch quét led 7, led matrix…để tiết kiệm số
chân VĐK tối đa (3 chân). Có thể mở rộng số chân vi điều khiển bao nhiêu tùy
thích mà không IC nào có thể làm được bằng việc mắc nối tiếp đầu vào dữ liệu
các IC với nhau.
- Giới thiệu về thanh ghi dịch 74HC595:

+ Chân 1->7 : 7 chân output.


+ Chân 8: Chân cấp nguồn âm.
+ Chân 9: Chân dữ liệu nối tiếp. Nếu dùng nhiều 74HC595 mắc nối tiếp
nhau thì chân này đưa vào đầu vào của con tiếp theo khi đã dịch đủ 8bit (Shift
clock).
+ Chân 10: Khi chân này ở mức thấp (mức 0) thì dữ liệu sẽ bị xóa.
+ Chân 11: Chân vào xung clock. Khi có 1 xung clock tích cực ở sườn
dương (từ 0 lên 1) thì 1bit được dịch vào ic (Latch clock).
+ Chân 12: Xung clock chốt dữ liệu. Khi có 1 xung clock tích cực ở sườn
dương thì cho phép xuất dữ liệu trên các chân output. Lưu ý có thể xuất dữ liệu
bất kỳ lúc nào bạn muốn, ví dụ đầu vào chân 14 dc 2 bit khi có xung clock ở
chân 12 thì dữ liệu sẽ ra ở chân Qa và Qb (chú ý chiều dịch dữ liệu từ Qa=>Qh)
(Reset).
+ Chân 13: Chân cho phép tích cực ở mức thấp (0) .Khi ở mức cao, tất cả
các đầu ra của 74HC595 trở về trạng thái cao trở, không có đầu ra nào được cho
phép (SQH).
+ Chân 14: đầu vào dữ liệu nối tiếp. Tại 1 thời điểm xung clock chỉ đưa
vào được 1 bit (output) QA=>QH trên các chân (15,1,2,3,4,5,6,7).
+ Chân 15: chân output.
+ Chân 16: chân cấp nguồn +5V (VCC).
-Nguyên lý làm việc của bảng mạch :
Bảng mạch bao gồm 8 thanh ghi dịch 74HC595, mỗi thanh ghi dịch
có 8 chân output do đó bảng mạch sẽ có 64 chân output thực hiện chức năng của
64 chân dương trong khối led. Khi ta muốn đưa 1 bit vào bên trong thanh ghi thì
cần 1 xung clock ở chân 11 và nếu muốn xuất 8 bit ra 8 chân của nó thì ta cần
tác động mức cao lên chân 12. Nếu muốn xóa dữ liệu trong thanh ghi thì cần tác
động mức thấp vào chân 10. Các chân 10,11,12 đều được nối chung với nhau
vào nối vào arduino, do đó ta dùng arduino để điều khiển các thanh ghi thực
hiện đúng chức năng mong muốn.
Hình 1: Sơ đồ nguyên lý.
3.Tham số kĩ thuật:
-512 LED Blue chân cắm :

+ Đường kính : 5mm.


+ Dòng điện tiêu thụ : 10-20mA.
+ Độ sáng : 150200mcd.
+ Điện áp : 3 – 3,5V.

-Các tham số kĩ thuật của ic 74HC595:


+Dịch chuyển nối tiếp 8 bit
+Phạm vi điện áp hoạt động từ 2-6V
+Tần số khoảng 25MHZ ở điện áp 4,5V
+Dòng đầu vào thấp: 1 μA (Tối đa)
+Có thể xóa thanh ghi trực tiếp
- Thông số bản mạch Arduino UNO R3 :

Vi điều khiển ATmega328 họ 8bit


Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 6
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 20 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng
bởi bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
4.Đoạn code kết nối làm việc với linh kiện:

# define SCK1 A4
# define DATA1 13
# define RCK1 12
void setup()
{
pinMode(SCK1,OUTPUT);
pinMode(DATA1,OUTPUT);
pinMode(RCK1,OUTPUT);
}

III. Giải pháp triển khai

Hình 2: Khối LED trong không gian 3D.


Hình 3: Tầng, lớp của khối và đế dựng khối.
1. Lựa chọn và định dạng chân LED :
- LED để làm khối LED3D là loại LED có khả năng phát ánh sáng với
góc càng rộng càng tốt ( LED siêu sáng đục 5mm hoặc LED 3mm…..).
- Board mạch hổ trợ tất cả các LED có màu sắc khác nhau: xanh, lục,
vàng, đỏ, trắng…Ở đây nhóm chúng em chọn board mạch màu lục.
- Cách bẻ chân LED 5mm :
+ Chân Âm bẽ nằm ngang so với LED
+ Chân Dương để thẳng
Hình 4: Xác định và bẽ chân LED.
2. Tạo hàng cho khối LED3D :
Sau khi bẻ xong, chúng ta hàn các chân Âm của LED lại với nhau thành 1
hàng, mỗi hàng gồm 8 con LED. Hoàn tất ta được 64 hàng từ 512 con LED.
Chú ý:
- Hàn chân LED : khoảng cách giữa các con LED khoảng 0,9 inch.
- Muốn hàn khối LED có khoảng cách lớn hơn, chúng ta cần thêm những
thanh thép thẳng, khoảng cách các điểm LED từ 3cm đến 4cm.
Hình 5: Hàn 8 chân âm của 8 LED thành 1 hàng.

3. Tạo lớp cho khối LED3D:


Nối mỗi 8 hàng lại với nhau, ta được 8 lớp ( mỗi lớp có 8x8 pixel )
- Các chân Dương của hàng LED trên hàn với các chân Dương của hàng
LED dưới.
- Các con LED sau khi hàn phải cách thật đều nhau thì sau khi lên khối
LED3D mới đẹp mắt.

Hình 6: Khung gỗ hỗ trợ việc hàn ghép các LED thành hàng, khối dễ dàng hơn.
Hình 7: Một lớp LED sau khi hàn xong.
Xong giai đoạn này ta thu được 8 lớp , mỗi lớp gồm có 8 hàng và 8 cột
( 64 pixel )

Hình 8: 8 lớp LED kích thước 8x8.


4. Dựng khối LED3D:
Giai đoạn này quyết định khối LED3D sau khi hoàn thành sẽ như thế nào
và hiệu ứng trình diễn trên đó có đúng như mong muốn hay không.
Chuẩn bị 1 tấm MICA với 64 lỗ khoan cách đều nhau và bằng khoảng
cách giữa các điểm LED.
Cắm lần lượt 8 Lớp 8x8 lên tấm MICA. Nếu hàn chuẩn và đẹp thì các lớp
LED sẽ rất vừa và khớp.

Hình 9: Các tầng, các lớp LED trên bản MICA.


Tiến hành hàn nối các mảng LED lại với nhau sao cho các con LED cách
đều nhau và hàn khối LED3D lên mạch điều khiển. Khi này khối LED3D và
mạch sẽ tạo thành 1 khối lập phương, bao gồm 64 cột và 8 mảng(tầng).
Các mảng(tầng) phải cách đều nhau, song song với nhau và song song với
board mạch điều khiển.
Các chân Âm của các con LED trên cùng 1 mảng phải được nối lại với
nhau.
Các điểm LED càng cách đều nhau thì càng thể hiện được hiệu ứng một
cách sinh động và đẹp mắt, các hiệu ứng sẽ rõ ràng hơn.
Xong giai đoạn này ta thu được khối LED3D có kích thước 8x8x8 (512
pixel).

Hình 10: Khối LED có kích thước 8x8x8 sau khi xây dựng xong.
-Các chân Âm của các con LED trên cùng 1 mảng phải được nối lại với
nhau và được nối đến các chân từ D2-D9 của arduino.
- Các điểm LED càng cách đều nhau thì càng thể hiện được hiệu ứng một
cách sinh động và đẹp mắt, các hiệu ứng sẽ rõ ràng hơn.

5.Xây dựng mạch in PCB :


- Đến tiệm photocopy in mạch bên dưới ra giấy ủi chuyên dùng cho in
mạch.

Hình 11: . Bảng in mạch PCB

-Mua một bo đồng kích thước khoảng 15cmx15cm.


-Dùng bàn là để in hình mạch trên vào bo đồng.
Hình 12: Bo mạch sau khi ủi.
-Tiếp đến ta tiến hành ngâm bo mạch in được vào dung dịch FeCl3 , lắc
đều trong 5-7 phút sau đó lấy ra lau khô. Tiến hành hàn các linh kiện vào mạch
ta thu được bo mạch như hình dưới.

Hình 13: Mạch in PCB dung trong đồ án.


6.Hoàn thiện sản phẩm:
-Hàn bo mạch làm được vào khối led.
-Nối các chân âm của khối led với các chân D2->D9 của arduino
-Nối các chân theo sơ đồ nguyên lý của bảng mạch vào arduino (cụ thể là
các chân A4,D12,D13,GND,+5V).
-Làm hộp đựng cho arduino.

Hình 14: Cách nối dây để ghép nối Module với khối LED 8x8x8.
IV. Kết quả đạt được

1.Kết quả thực hiện các hiệu ứng :


- Các hiệu ứng phần lớn hiển thị rõ ràng , dễ quan sát và đúng theo ý tưởng đề ra
ban đầu. Tuy nhiên, vẫn còn một ít hiệu ứng xảy ra hiện tượng nhảy sai LED
(chập LED) khi chạy.

+Hiệu ứng PU_PD:

Hình 15 : Hiệu ứng PU_PD.


+Hiệu ứng Glow :

Hình 16: Hiệu ứng Glow.


+Hiệu ứng Rotate_cross:

Hình 17: Hiệu ứng Rotate_cross.


2.Hình ảnh sản phẩm :

Hình 18: Hình ảnh sản phẩm.


Đánh giá và kết luận

1. Ưu điểm :
- Khi đề tài được mở rộng thì sẽ có khả năng ứng dụng thực tiễn rất lớn.
- Sản phẩm đáp ứng các yêu cầu đặt ra, triển khai và vận hành tốt.
- Với số đèn LED lớn, có thể lập trình được nhiều hiệu ứng hơn, bắt mắt hơn và
chủ động sáng tạo, tùy chỉnh theo ý thích.
- Hiệu suất chiếu sáng cao.
2. Nhược điểm :
-Các mối hàn chưa được chắc chắn, có nguy cơ bong tróc nếu bị va đập mạnh
-Khung led được làm bằng thép nên sẽ có hiện tượng rỉ sét, không tiếp xúc tốt
với mối hàn
-Mạch in PCB tự làm thủ công nên cũng không tránh được quá trình oxi hóa.
3. Hướng phát triển :
-Mở rộng ra các khối led lớn hơn như 10x10x10, 12x12x12 so với 8x8x8 như
hiện tại
-Thực hiện một số hiệu ứng phức tạp và linh động hơn như hiệu ứng sóng biển,
hiệu ứng đồ vật, con vật…
-Kết hợp với các vi điều khiển khác có tốc độ, bộ nhớ lớn hơn.
4. Kết luận :
Qua đồ án này, chúng em đã học tập được rất nhiều kiến thức bổ ích:
- Biết cách kết nối các linh kiện với vi điều khiển
- Biết cách đọc datasheet của các linh kiện điện tử
- Biết cách làm một mạch in PCB
- Biết cách hàn cách linh kiện vào bảng mạch, dây dẫn
- Nâng cao kĩ năng làm việc nhóm, phân chia công việc và tự khai thác tài
nguyên từ internet.

You might also like