CHƯƠNG 1 : TỔNG QUAN CHƯƠNG 2: GIỚI THIỆU LINH KIỆN QUAN TRỌNG VÀ LÝ THUYẾT LIÊN QUAN CHƯƠNG 4: THIẾT KẾ 1 CHƯƠNG 5 : THI CÔNG CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 2 CHƯƠNG 2: GIỚI THIỆU LINH KIỆN QUAN TRỌNG VÀ LÝ THUYẾT LIÊN QUAN 2.1 ) LÝ THUYẾT VỀ LINH KIỆN LED WS2812B: Hình 2. Datasheet LED WS2812B 3 Hình 2.2 PIN LED WS2812B 4 Hình 2.3 Datasheet LED WS2812B 5 Led RGB WS2812B linh hoạt, dễ sử dụng và có thể điều khiển riêng biệt. Các đèn LED này có IC điều khiển tích hợp cho phép điều khiển màu sắc và độ sáng của từng LED một cách độc lập. *Thông số kỹ thuật của LED WS2812B: Điện áp cấp từ - 3,5V đến 5,3V Điện áp đầu vào tín hiệu từ - 0,5V đến V CC + 0,5V Điện dung đầu vào - 15pF Dòng điện cấp tín hiệu - 1uA *Một số ứng dụng của LED WS2812B: Dải đèn RGB Đèn LED báo trạng thái Màn hình trang trí Đèn nền Chiếu sáng *Sơ đồ chân và chức năng của từng chân LED WS2812B Hình 2.4 Sơ đồ chân của LED WS2812B *Chức năng của từng chân: Số chân Tên chân Mô tả 1 V DD Chân cấp nguồn LED 6 2 D OUT Chân đầu ra tín hiệu 3 GND Chân cấp tham chiếu ground 4 D IN Chân đầu vào tín hiệu *Tổng quan LED WS2812B Hình 2.5 Vị trí chi tiết LED WS2812B * Giải thích các chi tiết trong 1 LED đơn ở WS2812B: WS2812B có ba đèn LED (đỏ, lục và lam) với một bộ điều khiển trong cùng một package.
Bộ điều khiển có một thanh ghi 24-bit, nhận dữ liệu nối tiếp từ chân D IN, lưu trữ và hiển thị lên đèn LED tương ứng. Thanh ghi 24-bit được chia thành ba phần, mỗi phần 8 bit và lưu một giá trị độ sáng khác nhau cho mỗi màu. Vì có 8 bit nên có thể có 256 mức độ độ sáng cho mỗi đèn LED. Vì có ba màu nên có thể có tổng cộng gần 17 triệu màu.
Các chân dữ liệu trên đèn LED được thiết kế thành chuỗi, đầu ra của bộ điều khiển được đệm để duy trì tín hiệu ngay cả khi có nhiều đèn LED được kết nối. *Cách sử dụng LED WS2812B 7 Mỗi đèn LED có chân V CC , GND, D IN và D OUT độc lập. Các chân VCC và GND là chân chung cho tất cả các đèn LED, trong đó D IN của đèn LED đầu tiên được kết nối với nguồn tín hiệu, có thể là một bộ vi điều khiển. D OUT của đèn LED đầu tiên được kết nối với D IN của đèn LED thứ hai, v., như trong sơ đồ bên dưới.6 Chi tiết các ngõ vào LED WS2812B WS2812B cần các tín hiệu đầu vào dữ liệu chính xác để hoạt động ổn định.
Hình bên dưới là sơ đồ thời gian khi ghi 0 và 1 vào mỗi bit trong thanh ghi và một xung reset để reset thời gian.7 Sơ đồ thời gian ghi 0-1 vào mỗi bit WS2812B sử dụng bộ điều chế độ rộng xung (PWM) để phân biệt giữa logic 0 và 1. logic 1 yêu cầu độ rộng xung dài hơn, trong khi đó logic 0 yêu cầu độ rộng xung ngắn hơn. Tổng độ rộng xung là 1,25 μ s, đồng nghĩa với tần số là 800kHz, với các chu kỳ nhiệm vụ (duty cycles) tương ứng với logic 0 và 1 là 36% và 64%. 8 Dung sai của mỗi độ rộng xung là ± 150ns.
Xung reset phải là 50 ms hoặc lâu hơn trước khi dữ liệu tiếp theo được đưa đến đèn LED. Các đèn LED phải được gửi tín hiệu theo thứ tự - 24 bit đầu tiên đến đèn LED thứ nhất, 24 bit thứ hai đến đèn LED thứ hai, v., cho đến khi tất cả các đèn LED trong chuỗi đều được gửi tín hiệu. Sau khi tập hợp dữ liệu đầu tiên được gửi, phải có một xung reset giữ từ 50ms trở lên để đèn LED đạt thời gian ổn định và sau đó tập dữ liệu thứ hai có thể được gửi. Sơ đồ thời gian được hiển thị bên dưới.8 Mô phỏng hoạt động theo chu kỳ của LED WS2812B *Khắc phục sự cố khi sử dụng LED WS2812B Nếu đèn LED không bật: Kiểm tra điện áp cấp Kiểm tra các vỏ epoxy bên trong có màu đen hay không, nếu có nghĩa là đèn LED đã bị hỏng.
Kiểm tra xem các đường dữ liệu đã được kết nối đúng chưa và có tín hiệu và timing như yêu cầu hay không. *Sơ đồ kích thước 2D LED WS2812B Các kích thước của đèn LED WS2812B được đưa ra dưới đây giúp thiết kế mạch PCB với WS2812B.9 Sơ đồ kích thước 2D *Bảng màu RGB Hình 2.10 Bảng code màu cơ bản 10 Arduino UNO R3 CH340G Hình 2.11 Arduino UNO R3 CH340G Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,… Arduino hiện chúng em dùng là loại dùng ATmega328 họ 8 bit 11 *Thông số kỹ thuật Arduino UNO R3 CH340G: - Vi điều khiển: ATmega328 họ 8 bit - Điện áp hoạt động: 5V DC (chỉ sử dụng nguồn cấp qua cổng USB) - Tần số hoạt động: 16 MHz - Dòng điện tiêu thụ: khoảng 30mA - Điện áp đầu vào khuyên dùng: 7-12V DC - Điện áp vào giới hạn: 6 -20V DC - Số chân Digital I/O: 14(6 chân hardware PWM) - Số chân Analog: 6 (độ phân giải 10 bit) - Dòng tối đa trên mỗi chân I/O: 30mA - Dòng ra tối đa (nguồn 5V): 500mA - Dòng ra tối đa (nguồn 3,3V): 50mA - Bộ nhớ Flash: 32KB (ATmega328) với 0.5KB dùng bởi bootloader - SRAM: 2KB (ATmega328) - EEPROM: 1KB(ATmega328) *PWM viết tắt của Pulse Width Modulation, có nghĩa là phương pháp điều chỉnh điện áp tải, hay hiểu đơn giản hơn đây là phương pháp điều chỉnh, thay đổi điện áp tải ra bằng việc thay đổi độ rộng của chuỗi xung vuông, từ đó có sự thay đổi điện áp.12 Mô tả PWM PWM khi thay đổi sẽ có cùng 1 tần suất, khác nhau về độ rộng âm hoặc dương. *Bộ nhớ: Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng: 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển.
Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader ( không quá 20KB) 2KB cho SRAM (Static Random Access Memory): giá trị các biến khi khai báo khi lập trình sẽ lưu ở đây. Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. Khi mất điện, dữ liệu trên SRAM sẽ bị mất. 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi ta có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
*Các chân cơ bản - GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau. - 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
Dòng tối đa cho phép ở chân này là 50mA. - Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND. - IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này (luôn là 5V). Mặc dù vậy ta không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.
- RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ. *Các cổng IN/ OUT 13 Hình 2.13 Sơ đồ chân Arduino R3 Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối).
*điện trở pull-up: Điện trở kéo lên pull up resistor được sử dụng để làm cho trạng thái mặc định của chân kỹ thuật số là cao (hoặc ở mức logic 1, 5V) và điện trở Kéo xuống (pull down resistor) thì ngược lại, nó tạo trạng thái mặc định của chân kỹ thuật số là Thấp (0V). mạch kỹ thuật số hoạt động trong dòng điện Thấp, kết nối các chân logic trực tiếp với nguồn cấp hoặc mặt đất không phải là không nên. Vì kết nối trực tiếp sẽ tăng lưu lượng dòng điện (giống như ngắn mạch) có thể làm hỏng mạch logic (do mạch logic nhạy cảm). Để kiểm soát dòng điện, chúng ta cần những điện trở kéo xuống (pull down resitor) hoặc kéo lên (pull up resistor ).
Pull up resistor cho phép dòng điện được kiểm soát từ nguồn điện đến các chân đầu vào kỹ thuật số, còn pull down resistor có thể điều khiển hiệu quả dòng điện từ chân kỹ thuật số xuống đất. Đồng thời cả hai điện trở, điện trở kéo xuống và kéo lên giữ trạng thái kỹ thuật số ở mức Thấp hoặc Cao. Một số chân digital có các chức năng đặc biệt như sau: 14 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này.
Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không cần giao tiếp Serial, ta không nên sử dụng 2 chân này nếu không cần thiết Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép ta xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một cách đơn giản, ta có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác. Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác. LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13.
Khi chân này được người dùng sử dụng, LED sẽ sáng.