Hiệu ứng hiển thị bảng led

32 972 4
Hiệu ứng hiển thị bảng led

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 6: Hiệu ứng hiển thị bảng led Để tạo các hiệu ứng thì ta phải quét ma trận led sao cho hình ảnh hiển thị trên ma trận đạt được như mong muốn. Do đó ta chỉ cần điều khiển việc đưa dữ liệu vào các chân của ma trận một cách hơp lý là có thể tạo ra được hiệu ứng mong muốn . Để thực hiện điều này ta có thể dùng 2 mảng dữ liệu, 1 mảng để lưu dữ liệu của hình ảnh ( chưa có hiệu ứng ), 1 mảng lưu dữ liệu của hình ảnh tức thời để đưa ra hiển thị. Mảng thứ 2 được xây dựng bằng cách xử lí lại dữ liệu của mảng thứ nhất. Nguyên tắc chung cho việc điều khiển led ma trận tạo hiệu ứng là sau khi 1 hình ảnh được hiển thị thì ta lấy mẫu cho hình ảnh tiếp theo rồi cho hiển thị hình ảnh đó ( dữ liệu mã hóa các hình ảnh này được lưu ở mảng thứ 2 ). 6.1) Bảng led hiển thị Trước khi xây dựng các hiệu ứng hiển thị ta cần xác định xem bảng led cần điều khiển có kích thước như thế nào và phải xác định được bảng led được xây dựng như thế nào. Khi hiểu rõ cách xây dựng bảng led ta mới có thể điều khiển cấp nguồn cho bảng led. Trong đồ án này chúng em xây dựng một bảng led gồm 6 ma trận led 8x8 hai màu ( xanh, đỏ) anot chung được bố tí thành hai hàng mỗi hàng 3 ma trận : 72 Hình 6 - Bảng led hiển thị Các ma trận được xoay sao cho các anot của led được nối chung theo từng cột. Mỗi cột có 8 led 2 màu, các catot của led xanh được nối với đầu ra của IC 74HC595 thứ nhất thông qua bộ dệm dòng ULN2803, còn các catot của led đỏ được nối với IC 74HC595 thứ hai. Hai IC 74HC595 được mắc nối tiếp nhau, đầu ra nối tiếp Q7’ của IC thứ nhất được nối với đầu vào của IC thứ 2. Đầu ra Q7’ của IC thứ 2 sẽ được nối với giắc cắm để mở rộng sang các led ma trận tiếp theo. Với cách bố trí như trên, đế của ma trận led mỗi ma trận led sẽ có 8 chân đầu vào cấp nguồn ( cho từng cột ), 2 chân đầu vào cấp nguồn cho các IC, 3 chân đầu vào nối với 74HC595 ( DS, SH_CP, ST_CP), và 5 chân đầu ra để nối với các ma trận led khác gồm 2 chân nguồn và 3 chân nối với 74HC595. Với cách tổ chức ma trận như trên phải cấp nguồn cho ma trận led theo từng cột. Dữ liệu cấp nguồn cho các hàng khi gửi nối tiếp thông qua SPI cần phải gửi theo thứ tự: dữ liệu cho ma trận led phía sau được gửi ra trước và sau khi đã gửi hết dữ liệu cho tất cả các ma trận thì mới chốt dữ liệu tại đầu ra của các IC 74HC595. Mỗi ma trận cần dữ liệu của 2 màu, IC chứa dữ liệu màu xanh ở phía trước nên ta sẽ phải truyền dữ liệu cho màu đỏ trước rồi mới đến màu xanh. Các phần tiếp theo của chương này sẽ tình bày về cách tạo các hiệu ứng hiển thị cho bảng led gồm 3 ma trận led có cấu tạo như trên. Tuy nhiên ta có thể sử dụng các thuật toán này khi mở rộng ma trận với kích thước lớn hơn. 73 6.2) Dịch trái, phải Với cách tổ chức dữ liệu mã hóa kí tự theo từng cột thì việc điều khiển hiển thị cho các ký tự dịch trái , phải trên led ma trận là khá đơn giản . Giả sử ta muốn hình ảnh dịch sang trái thì ta chỉ việc đưa dữ liệu của cột bên phải của hình ảnh trước ra để hiển thị cho cột hiện tại của hình ảnh sau (cột 1 của hình ảnh mới là cột 2 của hình ảnh cũ … ) . Cụ thể với ma trận 8 hàng 24 cột ta có thể làm như sau : - Dùng một mảng để lưu dữ liệu của toàn bộ hình ảnh khi không dịch chuyển. Mảng này cần có kích thước 24 bytes ( lưu dữ liệu của 24 cột ). - Dùng một mảng khác để lưu dữ liệu của các hình ảnh tức thời , hình ảnh này có kích thước bằng với hình ảnh trên (24 bytes). - Tại thời điểm đầu tiên thì hình ảnh tức thời sẽ lưu giá trị 0 cho tất cả các cột ( ma trận tắt ). Tại thời điểm thứ 2 ta gán giá trị của cột 1 của mảng thứ nhất và cột 24 của mảng thứ 2 . Tại thời điểm tiếp theo ta gán giá trị của cột 1,2 của mảng thứ nhất vào cột 23,24 của mảng thứ 2 . Cứ như thế khi lần lượt hiển thị và lấy mẫu lại hình ảnh ta sẽ thấy hình ảnh trên ma trận led dịch từ trái sang phải. 74 Hình 6 - Mô phỏng hiệu ứng dịch trái 75 Bắt đầu i<j i>23 Nạp giá trị cho M 1 Gán các phần tử M2 =0 Gán i=0 M2[23-j]=M1[j] j=j+1 Hiển thị ma trận Gán j=0 i=i+1 F FT T Hình 6 - Lưu đồ thuật toán hiệu ứng dịch trái Khi mở rộng kích thước của ma trận hay số lượng các ký tự làm vượt quá kích thước của ma trận thì ta vẫn có thể sử dụng phương pháp trên nhưng với giá trị giới hạn không phải là 23 mà là số cột của ma trận hay số cột cần để hiển thị hết toàn bộ các ký tự. 76 Ngoài ra ta cũng có thể xếp 2 mảng thành một, mảng ở sau, mảng 2 ở trước rồi cứ mỗi lần hiển thị ta là phép gán dịch trái các dữ liệu trong mảng M[i]=M[i+1], bắt đầu với i=0, gán M[2n-1]=0 với n là số cột hiển thị. Dữ liệu đưa ra hiển thị là n giá trị đầu của mảng. Hiệu ứng dịch phải cũng tương tự như dịch trái nhưng phải thay phép gán trong vòng lặp j thành M2[j]=M1[n-j]. Ta cũng có thể gom 2 mang làm một, mảng 1 ở trước mảng 2 ở sau, cứ mỗi lần hiển thị ta gán M[i] = M[i-1] nhưng bắt đầu với i = 2n-1và gán M[0]=0 ; dữ liệu đưa ra hiển thị là n giá trị sau của mảng. 77 6.3) Dịch lên xuống Với cách tổ chức dữ liệu mã hóa kí tự theo từng cột thì việc điều khiển hiển thị cho các ký tự dịch lên xuống có thể thực hiện bằng cách dịch bit các dữ liệu mã hóa hình ảnh của từng cột . Cụ thể với ma trận 8 hàng 24 cột cho hình ảnh dịch lên ta có thể làm như sau: - Dùng một mảng để lưu dữ liệu của toàn bộ hình ảnh khi không dịch chuyển. Mảng này cần có kích thước 24 bytes ( lưu dữ liệu của 24 cột ). - Dùng một mảng khác để lưu dữ liệu của các hình ảnh tức thời , hình ảnh này có kích thước bằng với hình ảnh trên (24 bytes). - Tại thời điểm đầu tiên thì hình ảnh tức thời sẽ lưu giá trị 0 cho tất cả các cột ( ma trận tắt ). Tại thời điểm thứ 2 ta cần gán bit mã hóa hàng trên cùng của mảng 1 ( MSB ) vào hàng dưới cùng của mảng 2 ( LSB ). Do đó ta cần phải dịch phải các bit trong từng byte dữ liệu của mảng 1 đi 7 bit rồi gán vào mảng 2. Tại thời điểm tiếp theo ta dịch phải 6 bit . Cứ như vậy hình ảnh sẽ dịch dần lên. Tuy nhiên nếu chi dịch như vậy thì thình ảnh chỉ dịch đến khi ra giữa ma trận. Để hình có thể tiếp tục dịch lên thì ta phải dịch trái dữ liệu đi từ 1 bit cho đến 7 bit . Sau khi dịch trái hết thì lại gán 0 cho tất cả các bit của ma trận . Hình 6 - Mô phỏng hiệu ứng dịch lên 78 Bắt đầu J>23 i>7 Nạp giá trị cho M1 Gán các phần tử M2 =0 i=0 M2[j]=M1[j]>>(8-i) J=J+1 Hiển thị J=0 i=i+1 F F T T Hiển thị J=0 M2[j]=M1[j]<<(i-8) J=J+1 J>23 i=i+1 T i>15 F FT Hình 6 - Lưu đồ thuật toán hiệu ứng dịch lên 79 Khi mở rộng ma trận chu trình gán giá trị hiển thị sẽ phứa tạp hơn do kích thước dữ liệu cần gán cho một cột của ma trận tăng lên. Khi đó ta có thể chia dữ liệu đem ra hiển thị thành nhiều mảng với mỗi mảng đại diện cho 1 “ dòng ” của ma trận. Phần tử đầu tiên của mỗi mảng sẽ chứa dữ liệu cho cột đầu tiên của mỗi dòng. Cứ mỗi lần dịch ta có thể gán Mt[i] = ( Mt[i]<<j ) | ( Md[i]>>(8-j) ). Với Mt là dòng trên, Md là dòng dưới . Hiệu ứng dịch xuống cũng tương tự như dịch lên nhưng khác ở chiều của phép dịch bit và số lần dịch bit ta có thể thay chiều của phép dịch và số bit dịch đổi từ (8-i) thành i . 80 6.4) Hiển thị từng kí tự Với cách tổ chức dữ liệu mã hóa kí tự theo từng cột thì việc điều khiển cho các ký tự lần lượt hiện trên bảng led có thể thực hiện bằng cách lấy mẫu lần lượt thêm từng ý tự một . Cụ thể với ma trận 8 hàng 24 cột cho hiển thị tưng ký tự một ta có thể làm như sau : - Dùng một mảng để lưu dữ liệu của toàn bộ hình ảnh khi không dịch chuyển. Mảng này cần có kích thước 24 bytes ( lưu dữ liệu của 24 cột ). - Dùng một mảng khác để lưu dữ liệu của các hình ảnh tức thời, hình ảnh này có kích thước bằng với hình ảnh trên (24 bytes). - Tại thời điểm đầu tiên thì mảng lưu hình ảnh tức thời được gán 0 để tắt tất cả các led. Sau đó tại các thời điểm tiếp theo ta lần lượt gán từng 6 bytes của mảng 1 vào mảng 2 để đưa ra hiển thị ( do cứ 6 bytes thì mã hóa 1 ký tự). Hình 6 - Mô phỏng hiệu ứng hiển thị từng chữ 81 [...]... trận led ( xoay 90 độ so với khi cấp nguồn theo cột ) 83 Kết luận Module điều khiển hiển thị đã hoàn thành , và đạt được những kết quả sau: - Có khả năng điều khiển hiển thị 2 chuỗi ký tự trên hai hàng ma trận, có khả năng điều khiển hiển thị ma trận có đọ rộng lớn hơn - Có khả năng hiển thị các dòng ký tự với ba màu xanh, đỏ và cam - Có khả năng điều khiển hiển thị các ký tự với một số hiệu ứng cơ... của dòng chữ hiển thị nhưng lại chưa điều khiển được màu sắc của từng ký tự Vấn đề này có thể dễ dàng khắc phục khi hiển thị các ký tự tĩnh, nhưng khi cần điều khiển các ký tự động thì sẽ khó khăn trong việc điều khiển màu sắc - Do quá trình điều khiển hiển thị cần có giai đoạn lấy mẫu lại dữ liệu nên khi điều khiển hiển thị ma trận có kích thước lớn có thể gây ảnh hưởng đến việc điều khiển tần số quét... các hiệu ứng và điều khiển hiển thị cần phải chú ý đến kích thước bộ nhớ Nếu cần có thể dùng thêm các bộ nhớ ngoài hoặc chọn các vi điều khiển có bộ nhớ đủ lớn để có thể tạo hiệu ứng cần thiết Các bảng điện tử thông dụng thường chỉ hiển thị một nội dung cố định nên ta có thể sử dụng bộ nhớ flash (có kích thước khá lớn ) để lưu giá trị của mảng thứ nhất, thậm chí có thể lưu toàn bộ các khung cần hiển thị. .. điều khiển hiển thị hiệu ứng có thể sử dụng khi mở rộng ma trận và có thể làm cơ sở để tạo các hiệu ứng phức tạp hơn - Có khả năng thay đổi tần số quét ma trận Tuy nhiên module vẫn còn một số giới hạn : - Có thể hiển thị các ký tự trên hai dòng nhưng lại độc lập với nhau Do đó khi gặp phải một số yêu cầu về việc hiển thị 2 dòng chữ có độ tương quan nhất định thì cần phải thay đổi về việc điều khiển... Khi đó ta chỉ cần điều khiển việc xuất dữ liệu theo địa chỉ để hiển thị Đối với phương pháp cấp nguồn theo từng cột thì việc tạo các hiệu ứng dịch trái, dịch phải khá đơn giản và việc mở rộng ma trận không ảnh hưởng nhiều đến việc gán dữ liệu nhưng với các hiệu ứng dịch lên xuống khá phức tạp khi mở rộng ma trận Tuy nhiên nếu chỉ sử dụng một hiệu ứng cho ma trận thì với hiệu ứng dịch lên, xuống ta có... M1 Gán các phần tử M2 =0 i=0 Hiển thị j=0 M2[i*6+j]=M1[i*6+j] j=j+1 F j>5 T i=i+1 T F i>3 Hình 6 - Lưu đồ thuật toán hiệu ứng hiển thị tưng ký tự 82 6.5) Kết luận Việc sử dụng 2 mảng dữ liệu một mảng lưu toàn bộ khung hình, một mảng lưu hình ảnh tức thời sẽ giúp việc tạo các hiệu ứng đơn giản hơn Xử lý các dữ liệu trên mảng thứ nhất rồi lưu vào mảng thứ 2 để đưa ra hiển thị sẽ cần một lượng bộ nhớ lớn... khiển hiển thị ma trận có kích thước lớn có thể gây ảnh hưởng đến việc điều khiển tần số quét Trong đề tài có thể có một số vấn đề hợp lý hay chưa tối ưu về các thuật toán điều khiển hiển thị và sử dụng bộ nhớ của vi điều khiển Do đó em rất mong có sự góp ý của các thầy cô và các bạn để đồ án có thể hoàn thiện hơn 84 Tài liệu tham khảo [1] Steven F Barrett and Daniel J Pack, Atmel AVR Microcontroller... http://www.dientuvietnam.net/forums/showthread.php?t=21785, truy nhập cuối cùng ngày 26/5/2009 [9] http://www.dientuvietnam.net/forums/showthread.php?t=15613, truy nhập cuối cùng ngày 26/5/2009 85 Phụ lục A: Sơ đồ ghép nối hệ thống điều khiển led ma trận Hình A - Sơ đồ ghép nối hệ thống 86 U5 74HC595 MR OE ULN2803 COM 1C 2C 3C 4C 5C 6C 7C 8C 10 18 17 16 15 14 13 12 11 10 18 17 16 15 14 13 12 11 10 18 17 16 15 14 13 12 11 2 470uF 10 13 1B... U1 12 11 14 10 13 12 11 14 KHỐI CẤP NGUỒN: Khoi cap nguon cho IC TR1 7805 VI VO 3 33pF TRAN-2P5S Hình A - Khối cấp nguồn KHỐI CHỐT DỮ LIỆU CÁC HÀNG U3 ULN2803 U6 74HC595 SCK MOSI OC0 Khoi chon hang cho LED Hình A - Khối chốt dữ liệu các hàng 87 KHỐI GIAO TIẾP VỚI MÁY TÍNH: C 3 1nF 5 ERROR 6 2 RI DTR CTS TXD RTS RXD DSR DC D 9 4 8 3 7 2 6 1 4 C2- P1 C2+ VSVS+ 8 7 13 14 R2IN T UT 2O R1IN T UT 1O 9 10 12... ay Hình A - Khối giao tiếp máy tính C7 B1 A1 A2 A3 A4 A5 A6 A7 A8 A8 A7 C5 A6 C6 C[0 7] C4 A5 C3 A4 C2 A3 A2 A1 C0 C1 KHỐI KHUẾCH ĐẠI DÒNG CHO CỘT: Hình A - Khối khuếch đại dòng cho cột 88 KHỐI ĐIỀU KHIỂN TRUNG TÂM VÀ QUÉT CỘT: U8 E1 E2 E3 74HC138 6 4 5 1 2 3 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 15 14 13 12 11 10 9 7 C0 C1 C2 C3 C4 C5 C6 C7 C[0 7] C2 U7 9 33pF 13 12 C1 40 39 38 37 36 35 34 33 33pF OC0 KHoi . Chương 6: Hiệu ứng hiển thị bảng led Để tạo các hiệu ứng thì ta phải quét ma trận led sao cho hình ảnh hiển thị trên ma trận đạt được như. được lưu ở mảng thứ 2 ). 6.1) Bảng led hiển thị Trước khi xây dựng các hiệu ứng hiển thị ta cần xác định xem bảng led cần điều khiển có kích thước như thế

Ngày đăng: 26/10/2013, 01:20

Hình ảnh liên quan

Hình 6- Bảng led hiển thị - Hiệu ứng hiển thị bảng led

Hình 6.

Bảng led hiển thị Xem tại trang 2 của tài liệu.
Hình 6- Mô phỏng hiệu ứng dịch trái - Hiệu ứng hiển thị bảng led

Hình 6.

Mô phỏng hiệu ứng dịch trái Xem tại trang 4 của tài liệu.
Hình 6- Lưu đồ thuật toán hiệu ứng dịch trái - Hiệu ứng hiển thị bảng led

Hình 6.

Lưu đồ thuật toán hiệu ứng dịch trái Xem tại trang 5 của tài liệu.
Cụ thể với ma trận 8 hàng 24 cột cho hình ảnh dịch lên ta có thể làm như sau: - Hiệu ứng hiển thị bảng led

th.

ể với ma trận 8 hàng 24 cột cho hình ảnh dịch lên ta có thể làm như sau: Xem tại trang 7 của tài liệu.
Hình 6- Lưu đồ thuật toán hiệu ứng dịch lên - Hiệu ứng hiển thị bảng led

Hình 6.

Lưu đồ thuật toán hiệu ứng dịch lên Xem tại trang 8 của tài liệu.
- Dùng một mảng khác để lưu dữ liệu của các hình ảnh tức thời, hình ảnh này có kích thước bằng với hình ảnh trên (24 bytes). - Hiệu ứng hiển thị bảng led

ng.

một mảng khác để lưu dữ liệu của các hình ảnh tức thời, hình ảnh này có kích thước bằng với hình ảnh trên (24 bytes) Xem tại trang 10 của tài liệu.
Hình 6- Lưu đồ thuật toán hiệu ứng hiển thị tưng ký tự - Hiệu ứng hiển thị bảng led

Hình 6.

Lưu đồ thuật toán hiệu ứng hiển thị tưng ký tự Xem tại trang 11 của tài liệu.
Hình A- Sơ đồ ghép nối hệ thống - Hiệu ứng hiển thị bảng led

nh.

A- Sơ đồ ghép nối hệ thống Xem tại trang 15 của tài liệu.
Hình A- Khối chốt dữ liệu các hàng - Hiệu ứng hiển thị bảng led

nh.

A- Khối chốt dữ liệu các hàng Xem tại trang 16 của tài liệu.
Hình A- Khối cấp nguồn - Hiệu ứng hiển thị bảng led

nh.

A- Khối cấp nguồn Xem tại trang 16 của tài liệu.
Hình A- Khối giao tiếp máy tính - Hiệu ứng hiển thị bảng led

nh.

A- Khối giao tiếp máy tính Xem tại trang 17 của tài liệu.
Hình A- Khối xử lý trung tâm và quét cột - Hiệu ứng hiển thị bảng led

nh.

A- Khối xử lý trung tâm và quét cột Xem tại trang 18 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan