Chương 3 : Nguyêntắc điều khiểnledmatrận 3.1) Cấu trúc và nguyên lý cấp nguồn cho led matrậnLedmatrận bao gồm các led đơn được xếp thành hàng và cột . Các led đơn trong cùng một hàng thì được nối chung anot (catot) còn trong cùng một cột thì được nối chung catot (anot). Do đó để các led có thể sáng ta phải cấp nguồn cho led như sau : cấp mức cao (thấp) cho hàng và mức thấp (cao) cho cột. Hình 3 - Ledmatrận chung anot Với cách sắp xếp như trên tại một thời điểm ta không thể hiển thị một kí tự (với trên 2 hàng 2 cột) trên ma trận. Do đó để có thể hiển thị một kí tự trên ledma 42 trận thì ta phải lợi dụng hiện tượng lưu ảnh trên võng mạc. Ta phải để cho từng hàng (cột) của kí tự lần lượt kiện thị trên ledmatrận với tần số cao. Trước tiên ta phải xác định mức logic cần cấp cho từng hàng (cột) của ledmatrận để hiển thị ký tự rồi lưu các giá trị logic này lại. Sau đó khi cần hiển thị ký tự thì ta lần lượt đưa các giá trị này ra các chân cấp nguồn cho hàng (cột) đồng thời cấp nguồn cho cột (hàng) tương ứng với nó. 3.2) Nguyêntắc tạo font chữ hiển thị Để cụ thể hơn ta xét ví dụ hiển thị chữ R trên ledmatrận 8x8 theo cách quét lần lượt từng cột ma trận. Do quét theo từng cột nên ta sẽ phải xác định mức logic cần cấp cho tất cả các led trong từng cột. Giả thiết các led cùng hàng mắc chung anot, các led trong cùng một cột mắc chung catot. Khi đó nếu muốn một led nào đó trong cột sáng thì ta phải cấp điện áp mức cao vào hàng tương ứng. Bảng 3 - Tạo font chữ cho kí tự Nhìn vào bảng trên ta thấy muốn hiển thị chữ R phải cấp nguồn cho các led trong từng cột như sau : Cột 5: L , H , H , L , L , L , H , L H H H H H H H H H H H H H H H H H H 43 Cột 4: H , L , L , H , L , H , L , L Cột 3: H , L , L , H , H , L , L , L Cột 2: H , L , L , H , L , L , L , L Cột 1: H , H , H , H , H , H , H , L Các led trong các cột khác được cấp điện áp mức thấp . Các giá trị này cần được lưu lại trong bộ nhớ của vi điềukhiển để khi cần ta có thể lấy ra. Ta có thể lưu các giá trị này thành từng byte trong bộ nhớ theo trật tự từ hàng 1 tới hàng 8 hay ngược lại. Ví dụ cột 1 ta lưu theo thứ tự từ hàng một tới 8 thì lưu giá trị 0F8H còn nếu ngược lại thì là 7FH . Việc mã hóa font phụ thuộc vào cách cấp nguồn cho matrận led. Nếu ta cấp nguồn cho từng cột của matrậnled sáng lần lượt thì font chữ phải lưu các giá trị logic mã hóa cách cập nguồn cho tất cả các led trong cột đó. Giả sử ta mã hóa font 6 cột 8 hàng ( 5 cột mã hóa chữ 1 cột tạo khoảng cách 2 chữ kế tiếp) như đã nêu trong nguyêntắcđiềukhiểnled thì mỗi kí tự cần 6 byte dữ liệu để lưu. 3.3) Điềukhiển hiển thị ledmatrận Để tiện cho việc truy xuất dữ liệu ta có thể khai báo 1 mảng trong bộ nhớ Flash của Atmega16 lưu các dữ liệu này. Khi đó địa chỉ đầu của dữ liệu mã hóa 2 ký tự gần nhau thì cách nhau cách nhau 6. Vì vậy khi biết được vị trí của 1 kí tự trong font thì ta có thể xác định địa chỉ của dữ liệu mã hóa kí tự đó. Trên cơ sở đó ta có thể dễ dàng xuất dữ liệu của kí tự cần hiển thị ra . Sau khi xác định được các mức logic cần cấp cho matrậnled thì ta có thể tiến hành điềukhiển quá trình cấp nguồn cho ledmatrận để có được hình ảnh như ý muốn. Việc cấp nguồn cho ledmatrận phụ thuộc vào cách mã hóa dữ liệu (theo từng hàng hay theo từng cột của ma trận). Nếu dữ liệu mã hóa là các hàng trong 1 cột (hàng) thì tại một thời điểm ta chỉ cấp nguồn cho một cột (hàng . Quá trình điềukhiển hiển thị ledmatrận 8x8 theo từng cột (hàng) bao gồm các bước sau : - B1: Lấy mẫu dữ liệu : lấy các dữ liệu về mức logic cần cấp cho các cột (hàng) của matrận - B2: Bắt đầu với cột i=1. 44 - B3: Cấp nguồn cho cột i - B4: Xuất dữ liệu tương ứng với cột đó ( đã được lấy mẫu từ trước) để cấp nguồn cho các hàng của matrận - B5: i=i+1 ; quay lại bước 2 nếu i>8 ,nếu không thì quay lại bước 3 Bắt đầu i>8 Lấy mẫu dữ liệu i=1 Xuất dữ liệu của cả cột i ra 74HC595 i=i+1 FT Chốt dữ liệu cột i Hình 3 - Lưu đồ thuật toán cấp nguồn cho matrậnled 45 Nếu chỉ điềukhiển 1 số lượng ledmatrận nhỏ thì ta có thể dùng trực tiếp các chân của vi điềukhiển để điềukhiển việc cấp nguồn cho ledma trận. Nếu matrận lớn hơn thì ta phải dùng các bộ ghi dịch để cấp nguồn cho ledma trận. Để hình ảnh trên ledmatrận hiển thị rõ ràng không bị nháy ta cần phải điềukhiển tần số quét ledma trận. Có thể dùng các bộ định thời của vi điềukhiển để điềukhiển thời điểm cấp nguồn cho ledmatrận tạo tần số quét. Tóm lại để điều khiểnledmatrận ta đầu tiên ta cần phải xác định được phương pháp cấp nguồn cho matrận ( cấp nguồn theo từng cột hay từng hàng ). Sau khi đã xác định được phương pháp cấp nguồn ta cần phải xây dựng font chữ cho phù hợp với cách cấp nguồn. Từ đây ta có thể tiến hành điềukhiển việc cấp nguồn cho matrận để dòng chữ trên matrận hiển thị như mong muốn. 46 . Chương 3 : Nguyên tắc điều khiển led ma trận 3.1) Cấu trúc và nguyên lý cấp nguồn cho led ma trận Led ma trận bao gồm các led đơn được xếp thành. cấp nguồn cho ma trận led 45 Nếu chỉ điều khiển 1 số lượng led ma trận nhỏ thì ta có thể dùng trực tiếp các chân của vi điều khiển để điều khiển việc cấp