Hiển thị ma trận LED khối 8x8x8
Trang 1TRƯỜ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
Trang 2Bảng phân công
Trang 3LỜ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ể
Trang 4MỤ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
Trang 5TÓ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âydự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 Tuynhiê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 ảnhcò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àmsao để 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ầnthờ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 đó
Trang 6nế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àitheo 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ướirồ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ểubậ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ểnxuố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ểnlê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áohoa đ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 sangtrái
+Jump:Hiệu ứng này mô phỏng sự co, dãn của một hình lập phương trongkhô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ằmdọc di chuyển từ sau ra trước
Trang 7+ Cube_Jump:Hiệu ứng này mô phỏng sự co, dãn của một hình lậpphươ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ùngvớ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 ghidị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ùythí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ệucá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ếpnhau thì chân này đưa vào đầu vào của con tiếp theo khi đã dịch đủ 8bit (Shiftclock)
+ Chân 10: Khi chân này ở mức thấp (mức 0) thì dữ liệu sẽ bị xóa
Trang 8+ Chân 11: Chân vào xung clock Khi có 1 xung clock tích cực ở sườndươ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ườndươ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ệubấ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 chophé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ỉ đưavà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ầntá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 nhauvào nối vào arduino, do đó ta dùng arduino để điều khiển các thanh ghi thựchiện đúng chức năng mong muốn
Trang 9Hình 1: Sơ đồ nguyên lý.
Trang 11- 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)
Đ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 Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 20 mA
Trang 12III Giải pháp triển khai
Hình 2: Khối LED trong không gian 3D.
Trang 13Hì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ớigó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
Trang 14Hì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 1hà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ữngthanh thép thẳng, khoảng cách các điểm LED từ 3cm đến 4cm
Trang 15Hì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àngLED dưới
- Các con LED sau khi hàn phải cách thật đều nhau thì sau khi lên khốiLED3D 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.
Trang 16Hì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.
Trang 174 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ảngcá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ớpLED 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ớiboard 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ớinhau
Các điểm LED càng cách đều nhau thì càng thể hiện được hiệu ứng một
Trang 18Xong giai đoạn này ta thu được khối LED3D có kích thước 8x8x8 (512pixel).
Hình 10: Khối LED có kích thước 8x8x8 sau khi xây dựng xong.
Trang 19-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ớinhau 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ộtcách sinh động và đẹp mắt, các hiệu ứng sẽ rõ ràng hơn
Trang 20Hì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
Trang 216.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.
Trang 22IV 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.
Trang 23+Hiệu ứng Glow :
Hình 16: Hiệu ứng Glow.
+Hiệu ứng Rotate_cross:
Hình 17: Hiệu ứng Rotate_cross.
Trang 242.Hình ảnh sản phẩm :
Hình 18: Hình ảnh sản phẩm .
Trang 25Đá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ốtvớ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
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àinguyên từ internet