Ứng dụng của đèn Led

Một phần của tài liệu Nghiên cứu thiết kế chế tạo bộ điều khiển led ma trận bằng smartphone chạy hệ điều hành android (Trang 43)

Đèn Led dùng trong chiếu sáng chủ yếu sử dụng các Led phát ánh sáng trắng. Led được dùng để làm bộ phận hiển thị trong các thiết bị điện, điện tử, đèn quảng cáo, trang trí, đèn giao thông, máy chiếu bằng Led.

Nghiên cứu về các loại Led có độ sáng tương đương với bóng đèn bằng khí neon. Đèn chiếu sáng bằng Led được cho là có các ưu điểm như gọn nhẹ, bền, tiết kiệm năng lượng, tuổi thọ cao hơn so với đèn neon, đèn sợi đốt,…

Hình 1.9: Ứng dụng của đèn Led trong thực tế.

Các Led phát ra tia hồng ngoại được dùng trong các thiết bị điều khiển từ xa cho đồ điện tử dân dụng, đồ chơi trẻ em.

Ðèn Led còn được sử dụng trong nhiều lĩnh vực khác như đèn đọc, chiếu sáng bể bơi, nhất là cho chiếu sáng quảng cáo ngoài trời tại những nơi khó thay lắp, ít bị

hấp thụ bởi ánh nắng mặt trời, do có tuổi thọ cao hơn nhiều lần so với bóng đèn neon, đồng thời có nhiều màu sắc phong phú như: Đỏ, xanh lá, xanh da trời, màu hổ phách... Quảng cáo luôn là một trong các vấn đề đóng vai trò quan trọng trong sự phát triển của một công ty, doanh nghiệp hay thậm chí là của một cửa hàng. Quảng cáo tốt sẽ đem lại nhiều lợi ích to lớn. Cũng chính vì vậy mà không ngạc nhiên khi hàng năm các doanh nghiệp đã đầu tư rất nhiều vào vấn đề này. Một trong những biện pháp được ưa dùng hiện nay đó là sử dụng bảng quảng cáo bằng đèn Led, vì sự đơn giản, hiện đại, bắt mắt, chi phí hợp lý cũng như tính hiệu quả của nó. Những bảng thông tin, cổng chào hay những bảng Led quảng cáo với màu sắc sặc sỡ, bắt mắt, gây nhiều chú ý chắc hẳn đã không còn xa lạ đối với người dân, nhất là người dân đô thị.

Đèn Led thực sự là có cách đột phá mới trong công nghệ cao nói chung và trong quảng cáo nói riêng. Đó là các bảng hiệu, bảng chỉ dẫn, panel quảng cáo có sử dụng đèn Led và mạch điện tử để tạo hiệu ứng ánh sáng. Qua tìm hiểu ta thấy nhiều đặc điểm nổi bật của nó như độ bền của nó cao gấp mấy chục lần bóng đèn thường và rất ít hao điện, không gây cháy nổ, an toàn tuyệt đối, chống rung động tốt, đặc biệt là nó vẫn sáng rõ vào ban ngày. Vì vậy, có thể dùng cả những biển quảng cáo trong nhà (indoor) và ngoài trời (outdoor) cho hiệu quả cao cũng như gây sự chú ý đồng thời truyền đạt thông tin đến khách hàng và người đi đường.

Ngày nay Led còn được sử dụng để làm màn hình của tivi, latop, điện thoại và các thiết bị hiển thị khác. Ngày nay, Led còn được dùng để chiếu sang đèn đường đô thị, thay thế cho những bóng đèn cao áp.

CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG HỆ THỐNG 2.1 Tổng quát về phần cứng

2.1.1 Sơ đồ tổng quát phần cứng

Với mục đích tìm hiểu, nghiên cứu thiết kế chế tạo bộ điều khiển Led ma trận bằng Smartphone chạy hệ điều hành Android em đã xây dựng một hệ thống quang báo Led ma trận với sơ đồ khối như sau:

Hình 2.1: Sơ đồ khối tổng quát hệ thống phần cứng. 2.1.2 Chức năng của các khối

 Khối điều khiển trung tâm Atmega 32

Đây là nơi lưu giữ chương trình điều khiển chính và dữ liệu cho các mạch giải mã hàng và cột. Atmega 32 là một hệ vi xử lý 8 bit đơn chip CMOS có hiệu suất cao, công suất nguồn tiêu thụ thấp và có 32 Kbyte bộ nhớ ROM Flash xoá được/lập trình được, 2 Kbyte RAM, 1024 byte EEPROM. Chip này được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao.

 Khối giải mã hàng

Dùng IC 74HC138 (3 đầu vào, 8 đầu ra) để giải mã cho các hàng của bảng Led ma trận. Giải mã hàng Smartphone Android Bluetooth HC06 Khối hiển thị Led ma trận Dữ liệu hàng Dữ liệu cột Giải mã cột Khối điều khiển trung tâm Atmega32

Nhiệm vụ của khối này là giãi mã tín hiệu chọn dòng từ khối điều khiển trung tâm đưa xuống, để tại mỗi thời điểm chỉ cho một dòng được sáng. Mỗi mô đun Led ma trận P10 có 16 dòng và 32 cột, được quét bởi một mô đun quét dòng, đầu vào là các tín hiệu điều khiển được đưa xuống từ khối điều khiển trung tâm, đầu ra sẽ chọn 1 trong số 16 dòng để hiển thị cho một lần quét. Mỗi mô đun hiển thị tại một thời điểm chỉ cho 1 dòng được sáng.

Mô đun quét dòng phải chọn 1 trong số 16 dòng để hiển thị nên cần tín hiệu chọn dòng từ mô đun điều khiển đưa xuống là các tín hiệu AM, BM. Các tín hiệu chọn dòng sẽ được giải mã bằng IC 74HC138. Trên mỗi dòng của bảng Led ma trận có 32 điểm, do vậy một dòng sẽ có 32 đèn Led. Vì vậy, các tín hiệu chọn dòng này phải đi qua bộ khuếch đại công suất để có thể cung cấp đủ dòng cho 32 đèn sáng đồng thời trong trường hợp cực đại.

 Khối giải mã cột

Điều khiển cấp nguồn cho cột dùng IC chốt dịch 74HC595, ta nối các đầu ra của IC 74HC595 song song với các chân cấp nguồn cho các cột của ma trận. Khối giải mã cột nhận dữ liệu quét cột từ khối điều khiển trung tâm, xuất tín hiệu điều khiển cho lần lượt các cột của mô đun Led ma trận.

 Khối hiển thị Led ma trận

Khi nhận được dữ liệu về chuỗi ký tự cần hiển thị thì khối giải mã hàng và cột sẽ tạo dữ liệu về mức logic cần cấp cho khối hiển thị Led ma trận. Khi nhận được dữ liệu về màu sắc, hiệu ứng hiển thị thì hai khối này sẽ xác định thủ tục gửi dữ liệu cho các khối chốt dữ liệu hàng và cột đưa ra khối hiển thị. Nội dung dữ liệu điều khiển sẽ được hiển thị lên trên mô đun Led ma trận.

 Khối truyền dữ liệu

Xây dựng giao diện điều khiển Led ma trận trên Smartphone chạy hệ điều hành Android truyền dữ liệu cho vi điều khiển Atmega 32 qua mô đun Bluetooth HC-06.

 Khối giao tiếp giữa vi điều khiển và Smartphone

Tạo môi trường kết nối giúp cho vi điều khiển và Smartphone giao tiếp được với nhau, nhận biết được các tín hiệu truyền, nhận giữa hai bên.

2.2 Một số linh kiện sử dụng trong mạch 2.2.1 Vi điều khiển Atmega 32 2.2.1 Vi điều khiển Atmega 32

2.2.1.1 Giới thiệu chung về Atmega 32

Hình 2.2: Atmega 32 loại chân cắm. Hình 2.3: Atmega 32 loại chân dán.

AVR là một họ vi điều khiển do hãng Atmel sản xuất. AVR là họ vi điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa – RISC (Reduced Instruction Set Computer), một kiểu cấu trúc đang thể hiện ưu thế trong các bộ xử lý.

 So với các vi điều khiển 8 bits khác, AVR có nhiều đặc tính hơn hẳn, hơn cả trong tính ứng dụng dễ sử dụng và đặc biệt là về chức năng:

- Gần như chúng ta không cần mắc thêm bất kỳ linh kiện phụ nào khi sử dụng AVR, thậm chí không cần nguồn tạo xung clock cho chip (thường là các khối thạch anh).

- Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản, có loại mạch nạp chỉ cần vài điện trở là có thể làm được. Một số AVR còn hỗ trợ lập trình on – chip bằng bootloader không cần mạch nạp…

- Bên cạnh lập trình bằng ASM, cấu trúc AVR được thiết kế tương thích C.

- Nguồn tài nguyên về source code, tài liệu, các chương trình ứng dụng…rất lớn trên internet.

 Hầu hết các chip AVR có những tính năng (features) sau:

- Có thể sử dụng xung clock lên đến 16 MHz hoặc sử dụng xung clock nội lên đến 8 MHz (sai số 3%).

- Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn, có SRAM (Ram tĩnh) lớn và đặc biệt có bộ nhớ lưu trữ lập trình được EEPROM.

- Nhiều ngõ vào ra (I/O PORT) 2 hướng (bi-directional).

- 8 bits, 16 bits timer/counter tích hợp PWM.

- Các bộ chuyển đổi Analog – Digital phân giải 10 bits, nhiều kênh.

- Chức năng Analog comparator.

- Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS – 232).

- Giao diện nối tiếp Two – Wire – Serial (tương thích chuẩn I2C) Master và Slaver.

- Giao diện nối tiếp Serial Peripheral Interface (SPI)…[2]

2.2.1.2 Cấu trúc Atmega 32

Vi điều khiển là một lĩnh vực có tốc độ phát triển như vũ bảo của nghành điện tử. Cùng với sự phát triển của ngành điện tử thì nhiều họ vi điều khiển lần lượt được các hãng sản xuất chip cho ra đời như: Z80 của Zilog, PIC của Microchip, AT89 và AVR của Atmel...

Họ vi điều khiển AVR của Atmel là một bước phát triển trên nền của vi điều khiển AT89 đã khá quen thuộc. Nếu như AT89 là vi điều khiển có CPU CISC thì AVR là RISC.

AVR có cấu trúc harvard, trong đó đường truyền cho bộ nhớ dữ liệu (data memory bus) và đường truyền cho bộ nhớ chương trình (program memory bus) được tách riêng. Data memory bus chỉ có 8 bit và được kết nối với hầu hết các thiết bị ngoại vi, với register file. Trong khi đó program memory bus có độ rộng 16 bits và chỉ phục vụ cho instruction registers.

Hình 2.4: Cấu trúc bên trong của vi điều khiển AVR.

32 thanh ghi trong Register file được kết nối trực tiếp với Arithmetic Logic Unit – ALU (ALU cũng được xem là CPU của AVR) bằng 2 line, vì thế ALU có thể truy xuất trực tiếp cùng lúc 2 thanh ghi RF chỉ trong 1 chu kỳ xung clock.

Các instruction được chứa 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à một instruction chứa trong program memory sẽ được nạp vào trong instruction

register, instruction register tác động và lựa chọn register file cũng như RAM cho ALU thực thi. Trong lúc thực thi chương trình, địa chỉ của dòng lệnh đang thực thi được quyết định bởi một bộ đếm chương trình – PC (Program counter). Đó chính là cách thức hoạt động của AVR.[2]

AVR có ưu điểm là hầu hết các instruction đều được thực thi trong 1 chu kỳ xung clock, vì vậy có thể nguồn clock lớn nhất cho AVR có thể nhỏ hơn một số vi điều khiển khác như PIC nhưng thời gian thực thi vẫn nhanh hơn.

2.2.1.3 Cấu trúc bộ nhớ

Hình 2.5: Cấu trúc bộ nhớ vi điều khiển Atmega 32.

 Bộ nhớ chương trình (Bộ nhớ Flash).

Là bộ nhớ Flash lập trình được, trong các chip AVR cũ (như AT90S1200 hay AT90S2313…) bộ nhớ chương trình chỉ gồm một phần là Application Flash Section

nhưng trong các chip AVR mới chúng ta có thêm phần Boot Flash setion. Bộ nhớ chương trình chúng ta tự hiểu là Application section. Thực chất, Application section bao gồm 2 phần: Phần chứa các instruction (mã lệnh cho hoạt động của chip) và phần chứa các vector ngắt (interrupt vectors). Các vector ngắt nằm ở phần đầu của Application section (từ địa chỉ 0x0000) và dài đến bao nhiêu tùy thuộc vào loại chip. Phần chứa instruction nằm liền sau đó, chương trình viết cho chip phải được nạp vào phần này.[2]

 Bộ nhớ dữ liệu [2]

Đây là phần chứa các thanh ghi quan trọng nhất của chip, việc lập trình cho chip phần lớn là truy cập bộ nhớ này. Bộ nhớ dữ liệu trên các chip AVR có độ lớn khác nhau tùy theo mỗi chip, tuy nhiên về cơ bản phần bộ nhớ này được chia thành 5 phần.

Phần 1: Là phần đầu tiên trong bộ nhớ dữ liệu, như mô tả trong hình 2.5, phần

này bao gồm 32 thanh ghi có tên gọi là Register file (RF), hay General Purpose Rgegister – GPR hoặc đơn giản là các thanh ghi. Tất cả các thanh ghi này đều là các thanh ghi 8 bits như hình vẽ 2.6.

Hình 2.6: Thanh ghi 8 bit của vi điều khiển Atmega 32.

32 thanh ghi RF của AVR được xem là một phần của CPU, vì thế chúng được CPU sử dụng trực tiếp và nhanh chóng. Để gọi các thanh ghi này, chúng ta không cần gọi địa chỉ mà chỉ cần gọi trực tiếp tên của chúng. Thanh ghi RF thường được sử dụng như các toán hạng (operand) của các phép toán trong lúc lập trình.

Phần 2: Là phần nằm ngay sau Register file, phần này bao gồm 64 thanh ghi

được gọi là 64 thanh ghi nhập/xuất (64 I/O register) hay còn gọi là vùng nhớ I/O (I/O Memory). Vùng nhớ I/O là cửa ngõ giao tiếp giữa CPU và thiết bị ngoại vi. Tất cả các thanh ghi điều khiển, trạng thái…của thiết bị ngoại vi đều nằm ở đây. Việc điều khiển các PORT của AVR liên quan đến 3 thanh ghi DDRx, PORTx và PINx, tất cả 3 thanh ghi này đều nằm trong vùng nhớ I/O. Xa hơn, nếu muốn truy xuất các thiết

bị ngoại vi khác như Timer, chuyển đổi Analog/Digital, giao tiếp USART…đều thực hiện thông qua việc điều khiển các thanh ghi trong vùng nhớ này.

Phần 3: RAM tĩnh, nội (internal SRAM) là vùng không gian cho chứa các biến

(tạm thời hoặc toàn cục) trong lúc thực thi chương trình, vùng này tương tự các thanh RAM trong máy tính nhưng có dung lượng khá nhỏ (khoảng vài KB, tùy thuộc vào loại chip).

Phần 4: RAM ngoại (external SRAM), các chip AVR cho phép người sử dụng

gắn thêm các bộ nhớ ngoài để chứa biến, vùng này thực chất chỉ tồn tại khi nào người sử dụng gắn thêm bộ nhớ ngoài vào chip.

Phần 5: EEPROM (Electrically Ereasable Programmable ROM) là một phần

quan trọng của các chip AVR mới, vì là ROM nên bộ nhớ này không bị xóa ngay cả khi không cung cấp nguồn nuôi cho chip, rất thích hợp cho các ứng dụng lưu trữ dữ liệu. Như trong hình 2.5 phần bộ nhớ EEPROM được tách riêng và có địa chỉ tính từ 0x0000.

2.2.1.4 Thanh ghi trạng thái của AVR

Nằm trong vùng nhớ I/O, thanh ghi SREG có địa chỉ I/O là 0x003F và địa chỉ bộ nhớ là 0x005F (thường đây là vị trí cuối cùng của vùng nhớ I/O) là một trong số các thanh ghi quan trọng nhất của AVR. Thanh ghi SREG chứa 8 bit cờ (flag) chỉ trạng thái của bộ xử lí, tất cả các bit này đều bị xóa sau khi reset, các bit này cũng có thể được đọc và ghi bởi chương trình. Chức năng của từng bit được mô tả như sau:

Hình 2.7: Cấu trúc thanh ghi trạng thái của AVR.

Bit 0 – C (Carry Flag: Cờ nhớ): Là bit nhớ trong các phép đại số hoặc logic,

ví dụ thanh ghi R1 chứa giá trị 200, R2 chứa 70, chúng ta thực hiện phép cộng có nhớ: ADC R1, R2, sau phép cộng, kết quả sẽ được lưu lại trong thanh ghi R1, trong khi kết quả thực là 270 mà thanh ghi R1 lại chỉ có khả năng chứa tối đa giá trị 255

(vì có 8 bit) nên trong trường hợp này, giá trị lưu lại trong R1 thực chất chỉ là 14, đồng thời cờ C được set lên 1 (vì 270 = 100001110, trong đó 8 bit sau 00001110 = 14 sẽ được lưu lại trong R1).

Bit 1 – Z (Zero Flag: Cờ 0): Cờ này được set nếu kết quả phép toán đại số hay

phép logic bằng 0.

Bit 2 – N (Negative Flag: Cờ âm): Cờ này được set nếu kết quả phép toán đại

số hay phép logic là số âm.

Bit 3 – V (Two’s complement Overflow Flag: Cờ tràn của bù 2): Hoạt động

của cờ này liên quan đến kiến thức số nhị phân (phần bù). Bù 1 một số trong hệ nhị phân mà nó chính là bù cơ số trừ 1 của một số khác. Một số bù 1 có thể có được do đảo tất cả các bit có trong số nhị phân (đổi 1 thành 0 và ngược lại).

Bit 4 – S (Sign Bit: Bit dấu): Bit S là kết quả phép XOR giữa một cờ N và V,

S = N xor V.

Bit 5 – H (Half Carry Flag: Cờ nhờ nữa): Cờ H là cờ nhớ trong một vài phép

toán đại số và phép logic, cờ này hiệu quả đối với các phép toán với số BCD.

Bit 6 – T (Bit Copy Storage): Được sử dụng trong hai Instruction BLD (Bit

LoaD) và BST (Bit STorage). Làm nơi trung gian trong các lệnh BLD và BST.

Bit 7 – I (Global Interrupt Enable): Cho phép ngắt toàn bộ bit này phải được

set lên 1 nếu trong chương trình có sử dụng ngắt. Sau khi set bit này, bạn muốn kích hoạt loại ngắt nào cần set các bit ngắt riêng của ngắt đó. Hai instruction dùng riêng để set và clear bit I là SEI và CLI.

Tất cả các bit trong thanh ghi SREG đều có thể được xóa thông qua các instruction không toán hạng CLx và set bởi SEx, trong đó x là tên của bit. Ví dụ CLT

Một phần của tài liệu Nghiên cứu thiết kế chế tạo bộ điều khiển led ma trận bằng smartphone chạy hệ điều hành android (Trang 43)