Quảng báo được sử dụng trong rất nhiều lĩnh vực của đời sống xã hội . Hầu như đi đâu ta cũng có thể thấy những bảng quảng cáo với nhiều hình thức khác nhau. Với mục đích làm nổi bật lên sản phẩm của mình cả khi trời sáng hay tối người ta đã sử dụng rộng rãi các bảng quảng cáo điện tử. Bảng quảng báo điện tử có nhiều loại , được sử dụng trong nhiều lĩnh vực khác nhau , có khả năng hiển thị hình ảnh và màu sắc phong phú . Tuy nhiên do điều kiện có hạn nên trong đồ án này chúng em mong muốn tìm hiểu về nguyên lý thiết kế một bảng quảng cáo điện tử có khả năng điều khiển hiển thị các kí tự theo như mong muốn và thiết kế một module led quảng báo cỡ nhỏ để thử nghiệm.
Giới thiệu chung
Quảng cáo là hình thức truyền thông mà chúng ta thường gặp hàng ngày, từ truyền hình, radio đến internet trong nhà, và các băng rôn, biển quảng cáo, tờ rơi ngoài trời Vậy quảng cáo có vai trò gì và tại sao nó lại quan trọng trong việc giới thiệu sản phẩm và dịch vụ?
Quảng cáo là hình thức truyền thông nhằm giới thiệu sản phẩm, dịch vụ, công ty hoặc ý tưởng, với mục tiêu tác động đến hành vi và thói quen mua sắm của người tiêu dùng Các doanh nghiệp tham gia quảng cáo để nâng cao hình ảnh thương hiệu, giới thiệu sản phẩm và thu hút khách hàng tiềm năng, từ đó tăng cường tính cạnh tranh và mang lại lợi ích kinh tế Một chiến dịch quảng cáo hiệu quả không chỉ thúc đẩy sự phát triển của doanh nghiệp mà còn khẳng định vai trò quan trọng của quảng cáo trong đời sống xã hội hiện đại.
Quảng cáo trên thế giới đã phát triển mạnh mẽ, nhưng tại Việt Nam, nhiều sản phẩm quảng cáo vẫn còn ở mức độ thấp do các hạn chế hiện có Để tiếp cận khách hàng tiềm năng, các sản phẩm quảng cáo cần được truyền tải qua nhiều kênh truyền thông khác nhau, bao gồm báo in, tạp chí, đài phát thanh, truyền hình và báo điện tử.
Các loại hình quảng cáo phổ biến hiện nay :
Quảng cáo qua bưu điện.
Quảng cáo trên các phương tiện vận chuyển.
Quảng cáo qua các trang vàng.
Quảng cáo trên tờ rơi, áp phích, pano hay băng rôn.
Quảng cáo trên bao bì sản phẩm.
Quảng cáo qua các thư gửi trực tiếp.
Quảng cáo bằng đèn LED.
Quảng cáo bằng đèn LED đang trở thành xu hướng phổ biến trong nhiều công ty và cửa hàng nhờ vào sự đơn giản, hiện đại và tính hữu dụng của nó Đèn LED không chỉ thu hút sự chú ý mà còn mang lại hiệu quả cao trong việc truyền tải thông điệp quảng cáo Hãy cùng khám phá khái niệm về đèn LED, cách thức hoạt động của nó, cũng như lý do vì sao nó được ưa chuộng trong lĩnh vực quảng cáo và xu hướng phát triển của loại hình quảng cáo này.
LED (Đi ốt phát quang) là một loại đi ốt có khả năng phát ra ánh sáng, tia hồng ngoại và tử ngoại Cấu trúc của LED bao gồm một khối bán dẫn loại P kết hợp với một khối bán dẫn loại N.
Hoạt động của đèn LED tương tự như các loại đi ốt bán dẫn khác, với khối bán dẫn loại P chứa lỗ trống mang điện tích dương và khối bán dẫn loại N chứa điện tử tự do Khi hai khối này ghép lại, lỗ trống từ khối P di chuyển sang khối N, trong khi khối P nhận thêm điện tử từ khối N, dẫn đến khối P tích điện âm và khối N tích điện dương Ở biên giới giữa hai khối, điện tử và lỗ trống kết hợp tạo thành nguyên tử trung hòa, giải phóng năng lượng dưới dạng ánh sáng, với màu sắc phụ thuộc vào cấu trúc năng lượng của nguyên tử bán dẫn Đèn LED có điện thế phân cực thuận cao hơn 1,5 đến 3V so với các loại đi ốt khác, nhưng điện thế phân cực ngược lại không cao Đèn LED được sử dụng rộng rãi trong các ứng dụng như hiển thị thiết bị điện tử, trang trí, đèn giao thông, và điều khiển từ xa Hiện nay, nghiên cứu đang diễn ra để phát triển đèn LED phát ánh sáng trắng, có thể thay thế đèn sợi đốt và đèn neon trong tương lai gần Đèn LED trắng có tuổi thọ lên tới 50.000 giờ, gấp 50 lần so với bóng đèn 60W, tiết kiệm điện và an toàn hơn Một ứng dụng phổ biến của đèn LED hiện nay là trong quảng cáo, đặc biệt là bảng quảng cáo LED.
Quảng cáo bằng đèn LED là một cách thức mới trong công nghệ cao và quảng cáo, mang lại hiệu quả cao và an toàn tuyệt đối Với độ bền cao gấp mấy chục lần bóng đèn thường, đèn LED tiết kiệm điện năng và không gây cháy nổ, đồng thời chống rung động tốt Đặc biệt, đèn LED vẫn sáng rõ vào ban ngày, cho phép sử dụng cả trong nhà (indoor) và ngoài trời (outdoor) để truyền đạt thông tin đến khách hàng và người đi đường một cách hiệu quả.
Bảng điện tử, hay còn gọi là bảng quang báo hoặc màn hình LED, là thiết bị hiển thị thông tin đa dạng với nhiều màu sắc và hình thức sinh động, thu hút sự chú ý hiệu quả Nhờ khả năng thay đổi thông tin dễ dàng, bảng điện tử trở thành phương tiện truyền đạt thông tin hiện đại và nhanh chóng.
Bảng LED quảng cáo được sử dụng cả indoor, outdoor và semi-outdoor :
Bảng indoor sử dụng tốt trong nhà, không sử dụng ngoài trời được vì không đủ độ sáng và không chịu được mưa nắng.
Bảng outdoor có độ sáng cao, kết cấu chắc chắn, chịu được mưa nắng.
Bảng semi-outdoor có độ sáng cao, rất phù hợp để sử dụng ngoài trời Tuy nhiên, loại bảng quảng cáo này không chịu được mưa nắng tốt, vì vậy thường được đặt ở dưới mái hiên để bảo vệ.
Trong lĩnh vực quảng cáo, ứng dụng của đèn LED được thể hiện dưới nhiều hình thức khác nhau như :
Bảng thông tin điện tử chữ chạy
Bảng thông tin điện tử, một sản phẩm công nghệ cao, đã trở thành công cụ quan trọng trong nhiều lĩnh vực nhờ vào những ưu điểm nổi bật Điểm mạnh của bảng thông tin điện tử là khả năng cập nhật thông tin linh hoạt và đa dạng phương thức truyền tải Với các tính năng độc đáo như bảng quang báo, bảng điện tử và bảng LED, sản phẩm này thu hút sự chú ý của đông đảo người xem, trở thành lựa chọn hiệu quả cho quảng cáo và các bản tin về chứng khoán, tài chính.
Bảng thông tin điện tử ngày càng được ứng dụng rộng rãi tại nhiều địa điểm như khách sạn, nhà hàng, trung tâm thương mại, ngân hàng và sân bay nhờ tính tiện lợi của nó Thiết kế khoa học giúp người dùng dễ dàng điều khiển thông qua bàn phím chuyên dụng, nút bấm, điều khiển từ xa hoặc máy tính Hơn nữa, bảng thông tin điện tử còn mang lại sự tiện lợi trong quá trình sản xuất và lắp đặt.
Bảng thông tin điện tử sở hữu nhiều ưu điểm vượt trội như điện áp thấp, độ ổn định cao, cường độ sáng mạnh mẽ, khả năng thay đổi nội dung nhanh chóng và dễ dàng, cùng với kỹ xảo hiển thị đa dạng.
Biển hiệu, biển vẫy gây chú ý cho khách đi đường.
Biển quảng cáo điện tử sử dụng đèn LED siêu sáng được lập trình bằng vi điều khiển, tạo ra các hiệu ứng hiển thị đa dạng, thu hút sự chú ý mạnh mẽ từ người đi đường.
Bảng thông tin và hình ảnh đồ họa:
Sản phẩm công nghệ cao này đã trở thành một phần thiết yếu trong nhiều lĩnh vực, nhờ vào khả năng hiển thị đa dạng hình ảnh, logo và đồ họa Bảng có thể tùy chỉnh màu sắc cho từng chữ và điều chỉnh tốc độ hiệu ứng, mang đến phương thức quảng cáo hình ảnh logo và giới thiệu sản phẩm một cách ngắn gọn, súc tích.
Các loại bảng tỷ giá: bảng giá vàng, bảng giá ngoại tệ, bảng tỷ giá ngân hàng…
Bảng thông tin điện tử được thiết kế đặc biệt cho từng ngành, đặc biệt là ngân hàng, và được sử dụng phổ biến tại các sở giao dịch và phòng giao dịch Sản phẩm này là công cụ hiệu quả giúp trao đổi tỷ giá nhanh chóng và thuận tiện Với nhiều tính năng dễ sử dụng, bảng cho phép thay đổi thông tin linh hoạt thông qua máy tính.
Bảng quảng cáo màn hình Full Colour :
Giới thiệu về vi điều khiển AVR Atmega16
2.1) Giới thiệu về vi điều khiển họ AVR
2.1.1) Một số đặc trưng Đây là loại vi điều khiển 8 bit, xử lý nhanh, tiêu thụ năng lượng thấp.
AVR [6] có cấu trúc RISC với :
131 lệnh, hầu hết các lệnh thực thi trong một chu kỳ xung nhịp.
Tốc độ làm việc 16MPIS, với thạch anh 16 MHz.
ISP Flash với khả năng 10.000 lần ghi xóa.
Khả năng quét toàn diện theo chuẩn JTAG.
Hỗ trợ khả năng Debug onchip
Hỗ trợ lập trình Flash, EEROM, fuse…
Lock bit qua giao tiếp JTAG
Timer/ counter 8 bit với các chế độ : so sánh và chia tần số.
Timer/counter 16 bit với các chế độ : so sánh, chia tần số, capture, PWM.
Timer thời gian thực (Real time Clock) với bộ dao động riêng biệt.
Kênh biến đổi ADC 10 bit.
Bộ giao tiếp nối tiếp lập trình được USART.
Watch_dog timer với bộ dao động on_chip riêng biệt.
Những thuộc tính đặc biệt :
Power on reset và Brown-out detection.
Chế độ hiệu chỉnh bộ sai số cho bộ dao động RC on chip
Các chế độ ngắt ngoài và trong đa dạng.
6 mode sleep : Idle, ADC noise reduction, tiết kiệm năng lượng, power-down, standby, extended standby.
Các phần mềm lập trình cho AVR :
AVRStudio, Code Vision Các phần mềm này có hỗ trợ phần nạp và Debug on chip.
Ngoài ra có thể dùng chương trình nạp PonyProg2000, Winpic800 …
AVR sử dụng cấu trúc Harvard, trong đó đường truyền cho bộ nhớ dữ liệu và bộ nhớ chương trình được tách biệt Đường truyền dữ liệu chỉ có 8 bit, kết nối với hầu hết các thiết bị ngoại vi và Register File Ngược lại, đường truyền chương trình rộng 16 bit, chuyên dụng cho thanh ghi lệnh.
Bộ nhớ chương trình (program memory) là bộ nhớ Flash có thể lập trình, với các loại AVR cũ như AT90S1200 chỉ có phần Application Flash Section, trong khi các loại AVR mới bổ sung thêm phần Boot Flash Section Chức năng chính của bộ nhớ này là lưu trữ các lệnh (instruction), do đó người lập trình ít có cơ hội tác động đến nó Vì lý do này, bộ nhớ chương trình không được coi là “quá quan trọng” đối với lập trình viên, khi mà tất cả các thanh ghi quan trọng cần khảo sát đều nằm trong bộ nhớ dữ liệu của chip.
Hình 2 - Cấu trúc bộ nhớ AVR
Bộ nhớ dữ liệu (data memory) là phần chứa các thanh ghi quan trọng nhất của chip, với kích thước khác nhau tùy thuộc vào từng loại chip AVR Về cơ bản, bộ nhớ này được chia thành nhiều phần.
Tệp thanh ghi bao gồm 32 thanh ghi 8 bit với địa chỉ tuyệt đối từ 0x0000 đến 0x001F, được đặt tên từ R0 đến R31 Các thanh ghi này có những đặc điểm riêng biệt.
Được truy cập trực tiếp trong các instruction.
Các toán tử, phép toán thực hiện trên các thanh ghi này chỉ cần một xung Clock.
Tệp thanh ghi được kết nối trực tiếp với bộ xử lý trung tâm, CPU chip.
Chúng là nguồn chứa các số hạng trong các phép toán và cũng là đích chứa kết quả
Các thanh ghi vào ra, hay còn gọi là thanh ghi I/O, đóng vai trò là cổng giao tiếp giữa CPU và các thiết bị ngoại vi Tại đây, tất cả các thanh ghi điều khiển và trạng thái của thiết bị ngoại vi được lưu trữ.
RAM ngoại (External RAM) là các chip vi điều khiển AVR cho phép người dùng mở rộng bộ nhớ bằng cách gắn thêm RAM ngoài Vùng nhớ này chỉ hoạt động khi người sử dụng kết nối bộ nhớ ngoài với chip.
EEPROM (ROM có thể lập trình và xóa điện) là một thành phần quan trọng trong các chip AVR mới Với đặc tính không bị mất dữ liệu khi mất nguồn, bộ nhớ này rất thích hợp cho các ứng dụng cần lưu trữ dữ liệu lâu dài.
Hình 2 - Cấu trúc bên trong của AVR
Hoạt động của hệ thống bao gồm việc lưu trữ các lệnh trong bộ nhớ chương trình Flash Memory dưới dạng các thanh ghi 16 bit Bộ nhớ chương trình được truy cập trong mỗi chu kỳ xung Clock, và lệnh từ bộ nhớ này được tải vào thanh ghi lệnh (instruction Register) Thanh ghi lệnh không chỉ tác động mà còn chọn tệp thanh ghi và RAM để ALU thực thi Trong quá trình thực thi chương trình, địa chỉ của lệnh đang thực thi được xác định bởi bộ đếm chương trình (Program Counter - PC).
AVR nổi bật với khả năng thực thi hầu hết các lệnh trong một chu kỳ xung nhịp, điều này cho phép thời gian thực thi nhanh hơn so với một số loại vi điều khiển khác như PIC, ngay cả khi nguồn clock của AVR thấp hơn.
2.1.4) Một số họ vi diều khiển AVR
Vi điều khiển AVR rất phong phú và đa dạng, bao gồm nhiều họ khác nhau :
Họ ATUC30xxxx (xxxx thể hiện dung lượng Flash của vi điều khiển, ví dụ : ATUC30512 có 512 kB Flash).
Dòng vi điều khiển MEGA AVR.
2.2) Sơ bộ về vi điều khiển Atmega16
Atmega16 là bộ vi điều khiển CMOS 8 bit tiết kiệm năng lượng, sử dụng kiến trúc RISC cho phép thực thi lệnh trong một chu kỳ xung nhịp Với khả năng chuyển đổi giữa tín hiệu analog và digital, Atmega16 đạt tốc độ xử lý lên đến 1 triệu lệnh mỗi giây ở tần số 1 MHz.
Vi điều khiển này cho phép người thiết kế có thể tối ưu hoá chế độ độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lí.
Hình 2 - Sơ đồ khối của Atmega16
Vi điều khiển Atmega16 sở hữu tập lệnh phong phú với 32 thanh ghi làm việc đa năng, tất cả đều kết nối trực tiếp với ALU (Bộ xử lý số học và logic) Điều này cho phép truy cập 2 thanh ghi độc lập trong một chu kỳ xung nhịp, mang lại hiệu suất xử lý nhanh gấp 10 lần so với các vi điều khiển CISC (Bộ lệnh phức tạp) thông thường.
Khi lập trình vi điều khiển Atmega16, người dùng có thể lựa chọn từ nhiều phần mềm khác nhau, bao gồm trình dịch Assembly như AVR Studio của Atmel và các trình dịch C như Win AVR, CodeVisionAVR C, ICCAVR, và GNU C Compiler Trong số này, CodeVisionAVR C được đánh giá cao bởi tính dễ tiếp cận và hỗ trợ mạnh mẽ cho người mới bắt đầu tìm hiểu về AVR, nhờ vào nhiều ứng dụng và hàm có sẵn, giúp việc lập trình trở nên hiệu quả hơn.
Được chế tạo theo kiến trúc RISC hiệu suất cao mà điện năng tiêu thụ thấp
Tập lệnh gồm 131 lệnh, hầu hết đều chỉ thực thi trong 1 chu kì xung nhịp.
Bộ nhân hai chu kì.
32 x 8 thanh ghi làm việc đa dụng.
16 MIPS với thông lượng 16MHz
8KB Flash ROM lập trình được ngay trên hệ thống :
Giao diện nối tiếp SPI có thể lập trình ngay trên hệ thống.
Cho phép 1000 lần ghi/xóa.
Bộ EEPROM 512 byte, cho phép 100.000 lần ghi/xóa
16 Kbyte bộ nhớ chương trình in-System Self-programmable Flash.
Chu kì ghi/xóa (Write/Erase) :10.000 Flash/ 100.000 EEPROM.
Độ bền dữ liệu 20 năm ở 85°C và 100 năm ở 25°C
Bộ biến đổi ADC 8 kênh, 10 bit.
Bộ truyền nối tiếp bất đồng bộ vạn năng UART.
Tốc độ làm việc: 8 MHz đối với Atmega16L, 16MHz đối với Atmega16 tối đa
Tốc độ xử lí lệnh đến 8 MIPS ở 8 MHz nghĩa là 8 triệu lệnh trên giây.
Bộ định thời gian thực (RTC) với bộ dao động và chế độ đếm tách biệt
2 bộ Timer 8 bit và 1 bộ Timer 16 bit với chế độ so sánh và chia tần số tách biệt và chế độ bắt mẫu.
4 kênh điều chế độ rộng xung PWM.
Có đến 13 interrupt ngoài và trong.
Bộ lập trình Watch dog timer.
6 chế độ ngủ : Idle, ADC Noise Reduction, Power-save, Power-down,
Giao tiếp nối tiếp Master/Slave SPI.
Hình 2 - Sơ đồ chân Atmega16
VCC: Điện áp nguồn nuôi.
PortA (PA7…PA0) là cổng nhận tín hiệu Analog và chuyển đổi thành tín hiệu Digital Ngoài ra, PortA có thể được cấu hình thành hai hướng vào ra 2 bit nếu bộ chuyển đổi A/D không được sử dụng Khi các chân PA0 đến PA7 được đặt ở chế độ thấp từ bên ngoài, chúng sẽ cung cấp dòng điện nếu điện trở nối lên nguồn dương được kích hoạt Các chân của Port A có điện trở cao khi tín hiệu Reset ở chế độ tích cực hoặc khi không có tín hiệu xung đồng hồ Port A cũng cung cấp các đường địa chỉ/dữ liệu vào/ra theo kiểu đa hợp kênh khi kết nối với bộ nhớ SRAM bên ngoài.
PortB,D : tương tự như PortA.
PortC (PC7…PC0) tương tự như PortA, nhưng khi giao diện JTAG được cho phép, các chân PC5, PC3, PC2 vẫn hoạt động ngay cả khi tín hiệu bị reset.
Lối vào đặt lại của bộ vi điều khiển sẽ kích hoạt quá trình reset khi chân này ở chế độ thấp trong hơn 50ns; các xung ngắn hơn sẽ không tạo ra tín hiệu đặt lại.
XTAL1: Lối vào bộ khuếch đại đảo và lối vào mạch tạo xung nhịp bên trong.
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 là cấu trúc bao gồm các led đơn được sắp xếp thành hàng và cột, trong đó các led trong cùng một hàng được nối chung anot (catot) và các led trong cùng một cột được nối chung catot (anot) Để các led sáng, cần cấp nguồn với mức cao cho hàng và mức thấp cho cột, hoặc ngược lại.
Hình 3 - Led ma trận chung anot
Để hiển thị một ký tự trên ma trận LED với cấu trúc trên, chúng ta không thể hiện thị một ký tự tại một thời điểm do giới hạn của hàng và cột Thay vào đó, cần tận dụng hiện tượng lưu ảnh trên võng mạc bằng cách lần lượt hiển thị từng hàng (cột) của ký tự với tần số cao Đầu tiên, cần xác định mức logic cho từng hàng (cột) của ma trận LED để hiển thị ký tự và lưu trữ các giá trị này Khi cần hiển thị, ta sẽ cấp nguồn cho các chân của hàng (cột) tương ứng với các giá trị logic đã lưu.
Nguyên tắc tạo font chữ hiển thị trên led ma trận 8x8 được thực hiện bằng cách quét từng cột một Để làm điều này, cần xác định mức logic cho tất cả các led trong mỗi cột Giả định rằng các led cùng hàng được mắc chung anot và các led trong cùng một cột được mắc chung catot Do đó, để làm sáng một led cụ thể trong cột, cần 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ác led trong các cột khác được cấp điện áp mức thấp
Các giá trị cần được lưu trữ trong bộ nhớ của vi điều khiển để có thể truy xuất khi cần thiết Chúng ta có thể lưu các giá trị này theo từng byte, theo thứ tự từ hàng 1 đến hàng 8 hoặc ngược lại Ví dụ, nếu lưu cột 1 theo thứ tự từ hàng một đến hàng tám, giá trị sẽ là 0F8H; nếu ngược lại, giá trị sẽ là 7FH.
Việc mã hóa font chữ cho ma trận LED phụ thuộc vào cách cấp nguồn cho nó Khi cấp nguồn lần lượt cho từng cột, font chữ cần lưu trữ giá trị logic của tất cả các LED trong cột đó Đối với ma trận 6 cột và 8 hàng (bao gồm 5 cột mã hóa chữ và 1 cột tạo khoảng cách giữa các chữ), mỗi ký tự sẽ cần 6 byte dữ liệu để lưu trữ.
Để thuận tiện cho việc truy xuất dữ liệu, chúng ta có thể khai báo một mảng trong bộ nhớ Flash của Atmega16 để lưu trữ các dữ liệu hiển thị trên led ma trận Khi mã hóa hai ký tự gần nhau, địa chỉ của chúng sẽ cách nhau 6 đơn vị, giúp xác định vị trí của một ký tự dễ dàng hơn.
Bằng cách sử dụng font H H, chúng ta có thể xác định địa chỉ của dữ liệu mã hóa ký tự Điều này cho phép chúng ta dễ dàng xuất dữ liệu của ký tự cần hiển thị.
Sau khi xác định các mức logic cần thiết cho ma trận LED, chúng ta có thể điều khiển quá trình cấp nguồn để hiển thị hình ảnh mong muốn Việc cấp nguồn cho ma trận LED phụ thuộc vào cách mã hóa dữ liệu, có thể theo hàng hoặc theo cột Nếu dữ liệu được mã hóa theo hàng trong một cột, thì tại một thời điểm, chỉ cần cấp nguồn cho một cột hoặc hàng Quá trình điều khiển hiển thị cho ma trận LED 8x8 theo từng cột hoặc hàng bao gồm các bước cụ thể.
- 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 ma trận
- 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 ma trậ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
Hình 3 - Lưu đồ thuật toán cấp nguồn cho ma trận led
Khi điều khiển một số lượng nhỏ đèn LED ma trận, có thể sử dụng trực tiếp các chân của vi điều khiển để cấp nguồn Tuy nhiên, đối với ma trận lớn hơn, cần sử dụng bộ ghi dịch để cung cấp nguồn cho đèn LED Để hiển thị hình ảnh rõ ràng và không bị nháy, việc điều chỉnh tần số quét LED là rất quan trọng Các bộ định thời của vi điều khiển có thể được sử dụng để kiểm soát thời điểm cấp nguồn cho đèn LED, từ đó tạo ra tần số quét ổn định.
Để điều khiển đèn LED ma trận, trước tiên cần xác định phương pháp cấp nguồn cho ma trận, có thể là theo từng cột hoặc từng hàng Sau khi xác định xong phương pháp cấp nguồn, bước tiếp theo là xây dựng font chữ phù hợp Từ đó, chúng ta có thể tiến hành điều khiển nguồn cấp cho ma trận, giúp hiển thị dòng chữ theo ý muốn.
Điều khiển cấp nguồn cho led ma trận
Chương này mô tả cách điều khiển cấp nguồn cho ma trận qua phương pháp cấp nguồn theo từng cột, sử dụng IC 74HC138 cho việc điều khiển cột Hàng của ma trận được cấp nguồn thông qua bộ ghi dịch 74HC595, trong khi dữ liệu mã hóa font được truyền nối tiếp từ vi điều khiển đến bộ ghi dịch qua giao thức SPI.
4.1) Điều khiển cấp nguồn cho cột dùng 74HC138
Sơ đồ chân của 74HC138 [4] :
Hình 4 - Sơ đồ chân 74HC138
IC 74HC138 là một bộ giả mã với 3 đầu vào (A0, A1, A2) và 8 đầu ra phủ định (Y0 đến Y7) Bộ giả mã này có 3 đầu vào cho phép: 2 đầu vào tích cực thấp (E1, E2) và 1 đầu vào tích cực cao (E3) Khi E1 và E2 ở mức thấp trong khi E3 ở mức cao, tất cả các đầu ra sẽ được xác định bởi các đầu vào, và tất cả đầu ra sẽ ở mức cao ngoại trừ trường hợp này.
Bảng 4 - Chức nămg hoạt động của 74HC138 Đầu vào Đầu ra
4.1.2) Sử dụng 74HC138 để cấp nguồn cho các cột ma trận
Theo nguyên tắc quét ma trận LED, chỉ một cột của ma trận được cấp nguồn tại mỗi thời điểm, do đó có thể sử dụng IC 74HC138 để điều khiển nguồn cho các cột này Các chân đầu vào A0, A1, A2 của 74HC138 sẽ được kết nối với vi điều khiển, trong khi các đầu ra của nó sẽ nối với các cột LED thông qua cổng phủ định hoặc các bộ đệm dòng Các chân E1 và E2 được nối đất, trong khi E3 nối với nguồn dương Bằng cách gửi tín hiệu từ vi điều khiển đến các chân đầu vào của 74HC138, ta có thể chọn cột cần cấp nguồn một cách linh hoạt.
Hình 4 - Ghép nối 74HC138 với vi diều khiển dể cấp nguồn cho cột của ma trận
Khi mở rộng ma trận, ta cần tăng số lượng IC để cung cấp nguồn cho tất cả các cột Các IC này có thể được kết nối chung hoặc riêng chân điều khiển Ngoài ra, có thể sử dụng một IC duy nhất để cấp nguồn đồng thời cho tất cả các ma trận, trong trường hợp này, một chân của IC sẽ được nối với các cột của các ma trận khác nhau.
4.2) Điều khiển cấp nguồn cho hàng dùng 74HC595
74HC595 [5] là bộ ghi dịch 8 bít gồm có :
1 đầu vào cho phép (OE)
1 đầu vào chọn thanh ghi dịch (MR)
1 đầu vào dữ liệu nối tiếp (DS)
1 đầu vào cấp xung cho thanh ghi dịch (SH_CP)
1 đầu vào cấp xung cho thanh ghi chứa (ST_CP)
8 đầu ra 3 trạng thái ( Q1 đến Q7 và Q7’)
Hình 4 - Sơ đồ chân 74HC595
Bảng 4 - Chức năng hoạt động của 74HC595 Đầu vào Đầu ra Chức năng
SH_CP ST_CP OE MR DS Q7’ Qn
MR mức thấp dữ liệu chỉ dịch trong thanh ghi dịch đầu ra không đổi trạng thái
X L L X L L Xóa thanh ghi dich nạp dữ liệu vào thanh ghi chứa
X X H L X L Z Xóa thanh ghi dịch đầu ra ở trạng thái trở kháng cao
Dịch chuyển trạng thái cao vào thanh ghi dịch, giá trị trước đó của bít thứ 6 trong thanh ghi dịch được chuyển sang đầu ra Q7’
Nội dụng của thanh ghi dịch được chuyển sang thanh ghi chứa và chuyển sang đầu ra
Dịch chuyển nội dung của thanh ghi dịch đồng thời nội dung của thanh ghi dịch cũ được chuyển vào thanh ghi chứa và các đầu ra song song
4.2.2) Sử dụng 74HC595để cấp nguồn cho các hàng của ma trận
Khi sử dụng 74HC595 để cấp nguồn cho ma trận LED, cần nối các đầu ra song song của 74HC595 với các chân cấp nguồn cho hàng của ma trận Đồng thời, sử dụng 3 chân của vi điều khiển để kết nối với các chân DS, SH_CP, và ST_CP của 74HC595 Dữ liệu mã hóa mức logic cho các hàng của một cột ma trận sẽ được truyền liên tiếp qua chân DS Để đồng bộ hóa bit, mỗi khi xuất một bit tới chân DS, vi điều khiển sẽ phát một xung dương vào chân SH_CP Sau khi truyền xong dữ liệu, để các LED trên cột sáng, cần chuyển dữ liệu trong thanh ghi dịch ra các đầu ra của 74HC595 bằng cách cấp một xung dương vào chân ST_CP Lưu ý rằng chân OE phải được nối đất và chân MR phải nối với nguồn dương để IC hoạt động và đẩy dữ liệu ra các chân đầu ra.
Hình 4 - Ghép nối 74HC595 với vi điều khiển để cấp nguồn cho hàng của ma trận
Khi mở rộng ma trận LED, ta kết nối nhiều IC 74HC595 theo dạng nối tiếp Các chân SH_CP và ST_CP được liên kết chung với một nguồn xung, trong khi đầu ra Q7' của IC trước được nối với đầu vào DS của IC tiếp theo Nhờ đó, dữ liệu sẽ được dịch đồng bộ từ IC này sang IC khác, tạo ra khả năng điều khiển hiệu quả cho ma trận LED.
IC cũng được chốt đồng bộ.
Hình 4 - Ghép nối tiếp các IC 74HC595
4.3) Truyền dữ liệu cấp nguồn cho hàng sử dụng SPI
Atmega16 hỗ trợ giao tiếp SPI, cho phép truyền dữ liệu nối tiếp hiệu quả giữa vi điều khiển và các thiết bị ngoại vi Việc sử dụng phần cứng SPI giúp tối ưu hóa quá trình truyền dữ liệu, thay vì lập trình phần mềm để truyền từng bit Sơ đồ khối và các chế độ hoạt động của SPI cung cấp cái nhìn tổng quan về cách thức giao tiếp này.
Hình 4 - Sơ đồ khối của SPI
SPI có thể hoạt động ở hai chế độ Master và Slave Trong chế độ Slave, chân Slave Select (SS) cần được cấu hình là đầu vào; khi chân này được kéo xuống mức thấp, SPI sẽ bắt đầu hoạt động, với chân MISO được thiết lập làm đầu ra và các chân khác làm đầu vào Khi chân SS được kéo lên mức cao, SPI sẽ ngừng nhận dữ liệu từ bên ngoài Chân SS đóng vai trò đồng bộ hóa byte và gói, giúp bộ đếm bit của Slave đồng bộ với bộ phát xung của Master Khi SS trở về mức cao, SPI Slave sẽ tái lập mức logic truyền và nhận, đồng thời xóa dữ liệu đã nhận trong thanh ghi dịch Trong chế độ Master, chân SS có thể được cấu hình linh hoạt là đầu ra hoặc đầu vào.
Nếu SS được sử dụng làm đầu ra, nó sẽ không ảnh hưởng đến SPI, mà chỉ điều khiển mức logic cho chân SS của SPI slave.
Để đảm bảo các hoạt động của SPI master, SS cần được giữ ở mức cao Nếu thiết bị ngoại vi kéo SPI xuống mức thấp, SPI sẽ nhận diện đó là một Master khác, dẫn đến việc chuyển sang chế độ Slave và bắt đầu truyền dữ liệu Để tránh xung đột trong quá trình này, SPI thực hiện các thủ tục cần thiết.
- Xóa bit MSTR trong thanh ghi SPCR để SPI ở chế độ Slave Do đó các chân MOSI và SCK trở thành đầu vào.
Để thiết lập mức cao cho cờ SPIF trong thanh ghi SPCR, cần đảm bảo rằng ngắt SPI và ngắt toàn cục được cho phép, từ đó cho phép thực hiện quá trình ngắt Các thanh ghi SPI đóng vai trò quan trọng trong việc quản lý và điều khiển các tín hiệu ngắt.
* Thanh ghi diều khiển - SPCR :
Bit 7 - SPIE : SPI Interupt Enable
Ngắt SPI sẽ được thực hiện nếu cờ SPIF trong SPSR được thiết lập và ngắt toàn cục được cho phép.
Bit này phải được đặt ở mức cao để SPI có thể hoạt động
Khi DORD ở mức cao thì bit LSB được truyền trước
Khi DORD ở mức thấp thì bit MSB được truyền trước
Bit 4 - MSTR : Master/Slave Select
SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0
Bit điều khiển chế độ SPI: ở mức cao là Master, ở mức thấp là Slave Khi chân SS được cấu hình là đầu vào và bị kéo xuống mức thấp, MSTR sẽ bị xóa và SPIF sẽ được thiết lập ở mức cao Do đó, người dùng cần đặt lại MSTR ở mức cao để tiếp tục sử dụng chế độ Master.
Khi bit này được ghi 1 thì SCK ở mức cao khi rỗi, ngược lại thì SCK ở mức thấp khi rỗi
Bảng 4 - Chức năng của bit CPOL
CPOL Leading Edge Trailing Edge
Xác định việc lấy mẫu dữ liệu trên sườn trước hay sau của SCK :
Bảng 4 - Chức năng của bit CPHA
CPHA Leading Edge Trailing Edge
The Bit1,0 – SPR1,SPR0 settings control the SPI clock rate (SCK) in Master mode The relationship between SCK and the oscillator frequency (f osc) is defined by these parameters.
Bảng 4 - Quan hệ giữa tần số SCK và tần số giao động
SPI2X SPR1 SPR0 Tần số SCK
* Thanh ghi trạng thái – SPSR :
Bit 7 – SPIF: SPI Interrupt Flag
Sau khi kết thúc việc dữ liệu, cờ SPIF được thiết lập Ngắt sẽ xảy ra nếu ngắt SPI và ngắt toàn cục được cho phép
Bit 6 – WCOL: Cờ COLision được thiết lập khi SPDR ghi dữ liệu trong quá trình truyền Cờ này sẽ được xóa sau khi thanh ghi trạng thái được kiểm tra.
Bit 5 1 : Không được dùng trong Atmega16
Bit 0: SPI2X: Double SPI Speed Bit
Sử dụng kèm với SPR1, SPR0 để xác định tần số của SCK
* Thanh ghi dữ liệu – SPDR :
Chứa dữ liệu cần truyền và nhận
Để thiết lập giao tiếp SPI giữa Atmega16 và 74HC595, cần kết nối chân SCK của vi điều khiển với chân SH_CP của 74HC595, và nối chân MOSI của vi điều khiển với chân tương ứng của 74HC595.
DS của 74HC595 Ngoài ra còn phải dùng 1 chân của vi điều khiển nối với chân ST_CP của 74HC595 để chốt dữ liệu tại đầu ra của 74HC595.
Hình 4 - Ghép nối vi điều khiển với 74HC595 sử dụng SPI