Mục lục:

Ma trận LED RGB: 5 bước
Ma trận LED RGB: 5 bước

Video: Ma trận LED RGB: 5 bước

Video: Ma trận LED RGB: 5 bước
Video: Hướng Dẫn Làm Bảng Led Ma Trận Chào Xuân, NOEL 2019 - Led Matrix 2024, Tháng bảy
Anonim
Image
Image
Thiết kế phần cứng
Thiết kế phần cứng

Có thể hướng dẫn tìm kiếm và bạn có thể tìm thấy nhiều dự án ma trận LED. Không ai trong số họ hoàn toàn như những gì tôi muốn, đó là khám phá sự tương tác của thiết kế phần cứng và phần mềm để tạo ra thứ gì đó, và tạo ra sản phẩm cuối cùng trong một PCB gọn gàng với trình điều khiển cho phép tôi vẽ lên "màn hình LED" bằng cách sử dụng mức cao cấu trúc (ví dụ: vẽ một đường ngược với thiết lập các pixel cụ thể). Phần này rất quan trọng đối với tôi, vì nhiều trình điều khiển ma trận LED là bộ xương thô và không cung cấp nhiều trong cách lập trình tạo hình ảnh hoặc hoạt ảnh. Điều này không có nghĩa là bạn không thể tạo hình ảnh và hoạt ảnh bằng các trình điều khiển khác, chỉ là bạn sẽ phải thực hiện nhiều công việc lặp đi lặp lại từ dự án này sang dự án khác.

Vì vậy, tôi bắt đầu thực hiện tầm nhìn của mình. Bước đầu tiên là thiết kế phần cứng. Đây có lẽ là thách thức lớn nhất đối với tôi, vì nền tảng của tôi là nhiều phần mềm hơn. Một lần nữa, có rất nhiều thiết kế được nung trước và tôi chắc chắn đã sử dụng chúng để lấy cảm hứng, nhưng tôi muốn học hỏi thông qua việc thực hiện, vì vậy tôi đã tạo mẫu ma trận 4x4 trên breadboard. Tôi đã học được nhiều điều thông qua quá trình đó, vì vài lần lặp đầu tiên của tôi không hiệu quả. Nhưng, tôi đã thiết kế phần cứng hoạt động, do đó cho phép tôi bắt đầu phát triển trình điều khiển.

Tôi đã chọn Arduino làm nền tảng trình điều khiển của mình vì nó có sẵn rộng rãi và có nhiều tài liệu tham khảo trực tuyến. Mặc dù kinh nghiệm nghề nghiệp cho phép tôi tiếp cận phiên bản trình điều khiển làm việc khéo léo hơn những nỗ lực phần cứng của tôi, nhưng vẫn còn rất nhiều lần lặp lại trong khi tôi đã tối ưu hóa hiệu suất trình điều khiển cho bộ điều khiển vi mô ATMega và phát triển một API lập trình mà tôi thích.

Tài liệu có thể hướng dẫn này ghi lại thiết kế và một số bài học chính từ dự án của tôi. Thông tin thêm về dự án này có thể được tìm thấy tại trang web của tôi ở đây, bao gồm các bộ dụng cụ đầy đủ mà bạn có thể mua để xây dựng ma trận LED RGB của riêng mình.

Bước 1: Thiết kế phần cứng

Mục tiêu chính trong thiết kế phần cứng của tôi là tạo ra một dãy đèn LED RGB mà tôi có thể lập trình, nhưng tôi cũng không muốn chi nhiều tiền. Cách tiếp cận mà tôi đã giải quyết là sử dụng các thanh ghi dịch chuyển 74HC595 để điều khiển các đèn LED. Để giảm thiểu số lượng thanh ghi dịch chuyển cần thiết, tôi đã sắp xếp các đèn LED RGB thành một bố cục ma trận trong đó các cực dương chung được gắn với nhau theo hàng và các dây dẫn cực âm màu đỏ, xanh lục và xanh lam được gắn với nhau theo cột. Đối với ma trận 4x4, sơ đồ mạch giống như sơ đồ mạch đính kèm.

Một điều bạn sẽ lưu ý ngay là với mạch ma trận, có một số cấu hình chiếu sáng LED không thể được thực hiện với tất cả các đèn LED mong muốn được bật cùng một lúc. Ví dụ: ma trận không thể đồng thời chiếu sáng hai đèn LED chéo nhau vì cấp nguồn cho cả hàng và cột sẽ làm cho hai đèn LED đối diện sáng trên đường chéo vuông góc với đèn LED mong muốn. Để giải quyết vấn đề này, chúng tôi sẽ sử dụng ghép kênh để quét qua từng hàng. Có rất nhiều tài nguyên trên web đề cập đến kỹ thuật ghép kênh, tôi sẽ không cố gắng sao chép chúng ở đây.

Vì tôi đang sử dụng đèn LED cực dương thông thường, điều đó có nghĩa là các hàng cung cấp nguồn điện dương và các cột chìm xuống đất. Tin tốt là các thanh ghi dịch chuyển 74HC595 có thể cả nguồn và nguồn chìm, nhưng tin xấu là chúng có giới hạn về lượng điện mà chúng có thể cấp hoặc chìm. Các chân riêng lẻ của 74HC595 có dòng điện tối đa là 70 mA, nhưng tốt nhất nên giữ dưới 20 mA. Các màu riêng lẻ trong đèn LED RGB của chúng tôi, mỗi màu có khoảng 20 mA. Điều này có nghĩa là 74HC595 không thể cấp nguồn trực tiếp cho toàn bộ hàng đèn LED nếu tôi muốn bật tất cả chúng.

Vì vậy, thay vì cấp nguồn trực tiếp cho hàng, thay vào đó, 74HC595 sẽ điều khiển một bóng bán dẫn cho mỗi hàng và bóng bán dẫn sẽ bật hoặc tắt dòng điện cấp nguồn cho hàng. Vì thiết kế sử dụng đèn LED cực dương chung nên bóng bán dẫn chuyển mạch sẽ là PNP. Nếu chúng ta đang sử dụng đèn LED âm cực chung, bóng bán dẫn chuyển mạch sẽ là NPN. Lưu ý rằng với việc sử dụng bóng bán dẫn PNP để điều khiển một hàng, cài đặt của thanh ghi dịch chuyển để bật nó bây giờ trở nên thấp vì bóng bán dẫn PNP cần một điện áp âm giữa bộ phát và đế được bật, điều này sẽ cho phép dòng điện dương chạy vào hàng ngang.

Một điều khác cần xem xét là cách bố trí bit mong muốn của các thanh ghi dịch chuyển. Đó là, trong số các thanh ghi dịch chuyển, các bit kiểm soát hàng hoặc cột nào trong ma trận. Thiết kế mà tôi đã gửi cùng là nơi bit đầu tiên, hoặc "bit quan trọng nhất", được gửi đến thanh ghi dịch chuyển chuỗi chuỗi điều khiển cột đèn LED phần tử màu đỏ, bit thứ hai kiểm soát phần tử màu xanh lá cây của cột đầu tiên, bit thứ ba điều khiển cột đầu tiên. phần tử màu xanh lam, bit thứ tư điều khiển phần tử màu đỏ của cột thứ hai,… mẫu này được lặp lại trên các cột từ trái sang phải. Sau đó, bit tiếp theo được gửi sẽ kiểm soát hàng cuối cùng hoặc dưới cùng, một tiếp theo từ hàng thứ hai đến hàng cuối cùng,… điều này lặp lại cho đến khi bit cuối cùng được gửi, hoặc "bit ít quan trọng nhất", kiểm soát hàng đầu tiên hoặc trên cùng trong ma trận.

Cuối cùng, tôi cần xác định điện trở nào tôi sẽ sử dụng cho mỗi đèn LED trong đèn LED RGB. Mặc dù bạn có thể sử dụng công thức tiêu chuẩn kết hợp điện áp chuyển tiếp và dòng điện mong muốn để tính toán điện trở cần thiết, nhưng tôi thấy rằng việc đặt dòng điện của mỗi đèn LED thành 20 miliampe dẫn đến màu tắt trắng khi tất cả các đèn LED màu đỏ, xanh lá cây và xanh lam đều bật. Vì vậy, tôi bắt đầu để mắt đến nó. Quá nhiều màu đỏ trong màu trắng có nghĩa là tăng ohms điện trở của đèn LED màu đỏ để giảm dòng điện. Tôi lặp đi lặp lại việc hoán đổi các điện trở có các ohm khác nhau cho đến khi tôi tìm thấy sự kết hợp tạo ra màu trắng mà tôi cảm thấy là đúng. Sự kết hợp cuối cùng là 180 Ω đối với đèn LED màu đỏ, 220 Ω đối với đèn LED màu xanh lá cây và 100 Ω đối với đèn LED màu xanh lam.

Bước 2: Xây dựng phần cứng - Breadboard

Cấu tạo phần cứng - Bảng mạch
Cấu tạo phần cứng - Bảng mạch
Cấu tạo phần cứng - Bảng mạch
Cấu tạo phần cứng - Bảng mạch

Giai đoạn đầu tiên của trình xây dựng phần cứng là quá trình nạp bánh mì. Ở đây tôi đã tạo một ma trận 4x4 với các đèn LED RGB. Ma trận này sẽ yêu cầu 16 bit để điều khiển, 12 cho các cột RGB và 4 cho mỗi hàng. Hai thanh ghi dịch chuyển 74HC595 có thể xử lý tất cả. Đầu tiên tôi nghiên cứu và thiết kế một mạch điện mà tôi nghĩ sẽ hoạt động, sau đó xây dựng nó trên breadboard.

Có lẽ thách thức lớn nhất của việc xây dựng breadboard là quản lý tất cả các dây. Tôi đã chọn một bộ dây định hình sẵn cho breadboards, nhưng sự kiện sau đó nó hơi khó sử dụng. Một thủ thuật mà tôi thấy hữu ích là tạo một "cổng" để kết nối với bảng Arduino. Nghĩa là, thay vì kết nối trực tiếp các chân trên Arduino với các chân IC khác nhau trên bảng mạch, hãy dành một vài hàng trên bảng mạch để làm điểm kết nối cho Arduino, sau đó kết nối các chân ID có liên quan với các hàng đó. Đối với dự án này, bạn chỉ cần năm kết nối với Arduino: + 5V, nối đất, dữ liệu, đồng hồ và chốt.

Sau khi xây dựng xong breadboard, tôi cần phải kiểm tra nó. Tuy nhiên, không có một số loại trình điều khiển để gửi các tín hiệu phù hợp đến các thanh ghi dịch chuyển, tôi không thể kiểm tra xem bố trí phần cứng có hoạt động hay không.

Bước 3: Thiết kế phần mềm trình điều khiển

Image
Image

Với kinh nghiệm nghề nghiệp của tôi với phát triển phần mềm, đây là phần của dự án mà tôi có lẽ là người rõ ràng nhất về con đường thực hiện. Tôi đã khảo sát nhiều trình điều khiển ma trận LED dựa trên Arduino khác. Mặc dù chắc chắn có sẵn các trình điều khiển tốt, nhưng không có trình điều khiển nào hoàn toàn có thiết kế như tôi muốn. Mục tiêu thiết kế của tôi về trình điều khiển là:

  • Cung cấp API cấp cao để có thể tạo hình ảnh và hoạt ảnh theo chương trình. Hầu hết các trình điều khiển mà tôi thấy đều tập trung hơn vào hình ảnh được mã hóa cứng. Ngoài ra, vì tôi là một lập trình viên C ++ theo thương mại, tôi muốn sử dụng thiết kế hướng đối tượng tốt để thực hiện và quản lý các hoạt động vẽ vào ma trận LED.
  • Sử dụng phương pháp đệm kép để quản lý hình ảnh trên màn hình. Một bộ đệm là những gì được lập trình đưa vào, trong khi bộ đệm còn lại đại diện cho trạng thái của các pixel ma trận tại bất kỳ thời điểm nhất định nào. Ưu điểm của phương pháp này là bạn không bắt buộc phải hiển thị hoàn toàn bản cập nhật khung hình tiếp theo cho màn hình giữa các chu kỳ cập nhật của quá trình ghép kênh.
  • Sử dụng PWM để cho phép nhiều hơn bảy màu nguyên thủy mà một RGB có thể hiển thị thông qua sự kết hợp đơn giản của các yếu tố đỏ, lục và lam.
  • Viết trình điều khiển sao cho nó "chỉ hoạt động" với các ma trận LED RGB kích thước khác nhau theo cách tiếp cận thiết kế ma trận chung của tôi. Lưu ý rằng trong khi thiết kế phần cứng của tôi sử dụng thanh ghi dịch chuyển 74HC595, tôi mong rằng trình điều khiển của mình sẽ hoạt động với bất kỳ cơ chế bật / tắt kiểu thanh ghi dịch chuyển nào được đặt ra bằng cách sử dụng bố cục bit tương tự như thiết kế phần cứng của tôi. Ví dụ: tôi mong đợi trình điều khiển của mình hoạt động với thiết kế phần cứng sử dụng chip DM13A để điều khiển các cột và chip 74HC595 để điều khiển các hàng.

Nếu bạn muốn đi thẳng vào xem mã trình điều khiển, bạn có thể tìm thấy nó trên GitHub tại đây.

Lần lặp lại đầu tiên của trình điều khiển của tôi là một chút sơ lược về khả năng của nền tảng Arduino. Hạn chế rõ ràng nhất là RAM, là 2K byte cho Arduino Uno và Nano. Việc sử dụng các đối tượng C ++ trong một trường hợp như vậy thường không được khuyến khích do chi phí bộ nhớ của các đối tượng. Tuy nhiên, tôi cảm thấy nếu làm đúng, lợi ích của các đối tượng trong C ++ lớn hơn chi phí của chúng (trong RAM).

Thách thức lớn thứ hai là tìm ra cách triển khai điều chế độ rộng xung thông qua các thanh ghi dịch chuyển để tôi có thể tạo ra nhiều hơn bảy màu nguyên thủy của đèn LED RGB. Đã lập trình trong nhiều năm trên nền tảng Linux, tôi đã quen với việc sử dụng các cấu trúc như luồng để quản lý các quy trình yêu cầu thời gian nhất quán. Thời gian của hoạt động cập nhật thanh ghi dịch chuyển kết thúc khá quan trọng khi tạo trình điều khiển cho ma trận LED sử dụng ghép kênh. Lý do là mặc dù quá trình ghép kênh diễn ra nhanh đến mức mắt bạn không thể nhìn thấy các đèn LED riêng lẻ nhấp nháy và tắt, các đèn của bạn có thể nhận ra sự khác biệt trong tổng thời gian tổng hợp mà bất kỳ đèn LED nào được bật. Nếu một hàng đèn LED được bật liên tục trong thời gian dài hơn các hàng khác, nó sẽ trông sáng hơn trong quá trình ghép kênh. Điều này có thể dẫn đến độ sáng không đồng đều trong ma trận hoặc nhấp nháy định kỳ của toàn bộ ma trận (điều này xảy ra khi một chu kỳ cập nhật mất nhiều thời gian hơn các chu kỳ khác).

Vì tôi cần một cơ chế thời gian nhất quán để khiến các bản cập nhật thanh ghi dịch chuyển được chấp thuận, nhưng Arduino không chính thức hỗ trợ luồng, nên tôi đã phải tạo cơ chế giống luồng của riêng mình. Lần lặp lại đầu tiên của tôi về việc này chỉ đơn giản là tạo một bộ đếm thời gian lặp phụ thuộc vào hàm Arduino loop () và sẽ kích hoạt một hành động khi một khoảng thời gian nhất định đã trôi qua kể từ lần cuối cùng hành động được kích hoạt. Đây là một hình thức “đa nhiệm hợp tác”. Nghe có vẻ tốt nhưng trong thực tế, điều này tỏ ra không phù hợp khi tốc độ bắn được đo bằng micro giây. Lý do cho điều này là nếu tôi có hai trong số các bộ định thời vòng lặp này hoạt động, một trong các hành động của chúng thường mất đủ thời gian để khiến hành động thứ hai kích hoạt muộn hơn mong muốn.

Tôi thấy rằng giải pháp cho vấn đề này là sử dụng cơ chế ngắt đồng hồ gốc của Arduino. Cơ chế này cho phép bạn chạy một đoạn mã nhỏ ở những khoảng thời gian rất nhất quán. Vì vậy, tôi đã thiết kế mã trình điều khiển xung quanh phần tử thiết kế bằng cách sử dụng ngắt đồng hồ để kích hoạt mã gửi thanh ghi dịch chuyển của ma trận bản cập nhật tiếp theo trong chu kỳ ghép kênh. Để làm điều này và cho phép các bản cập nhật xảy ra đối với hình ảnh của màn hình để không can thiệp vào kết xuất đang hoạt động đối với các thanh ghi shift (cái mà chúng tôi gọi là "điều kiện chủng tộc"), tôi đã sử dụng phương pháp có bộ đệm kép cho các bit thanh ghi dịch chuyển, một để viết và một để đọc. Khi người dùng đang cập nhật hình ảnh ma trận, các hoạt động này xảy ra với bộ đệm ghi. Khi các hoạt động đó hoàn tất, các ngắt tạm thời bị treo (điều này có nghĩa là ngắt đồng hồ không thể kích hoạt) và bộ đệm ghi được hoán đổi với bộ đệm đọc trước đó và nó không phải là bộ đệm đọc mới, sau đó các thông dịch được kích hoạt lại. Sau đó, khi đồng hồ ngắt hoạt động cho biết đã đến lúc gửi cấu hình bit tiếp theo đến các thanh ghi dịch chuyển, thông tin đó được đọc từ bộ đệm đọc hiện tại. Bằng cách này, không bao giờ xảy ra việc ghi vào bộ đệm hiện đang được đọc từ trong thời gian ngắt đồng hồ, điều này có thể làm hỏng thông tin được gửi đến các thanh ghi dịch chuyển.

Thiết kế phần còn lại của trình điều khiển là một trường hợp tương đối đơn giản của thiết kế hướng đối tượng. Ví dụ: tôi đã tạo một đối tượng để quản lý hình ảnh bit thanh ghi dịch chuyển cho bất kỳ trạng thái màn hình nhất định nào. Bằng cách đóng gói mã liên quan đến quản lý hình ảnh bit, việc tạo ra phương pháp bộ đệm kép nói trên đã tự nó là một bài tập đơn giản. Nhưng tôi không viết bài Có thể hướng dẫn này để khai thác các ưu điểm của thiết kế hướng đối tượng. Yếu tố thiết kế khác bao gồm khái niệm về Glyph và Hình ảnh RGB. Glyph là một cấu trúc hình ảnh cơ bản không có thông tin màu bẩm sinh. Bạn có thể nghĩ về nó như một hình ảnh đen trắng. Khi Glyph được vẽ vào màn hình LED, thông tin màu sẽ được cung cấp để chỉ ra cách tô màu các pixel "trắng". Hình ảnh RGB là hình ảnh trong đó mỗi pixel có thông tin màu riêng của nó.

Tôi khuyến khích bạn xem lại các ví dụ phác thảo Arduino và xem lại tài liệu tiêu đề trình điều khiển để làm quen với cách sử dụng trình điều khiển để tạo hình ảnh và hoạt ảnh trên ma trận LED RGB.

Bước 4: Bóng đèn LED

Bóng đèn LED
Bóng đèn LED
Bóng đèn LED
Bóng đèn LED

Trong ma trận LED, "bóng mờ" là hiện tượng một đèn LED trong ma trận phát sáng khi không mong muốn, thường là một mức độ giảm rất nhiều. Thiết kế phần cứng ban đầu của tôi dễ bị bóng mờ, đáng chú ý nhất là ở hàng cuối cùng. Nguyên nhân của điều này là do hai nguyên nhân: các bóng bán dẫn không tắt ngay lập tức và điện dung ký sinh trong đèn LED RGB.

Khi chúng tôi quét qua các hàng, do bóng bán dẫn không tắt ngay lập tức, hàng trước trong chu kỳ quét vẫn được cấp nguồn một phần khi hàng tiếp theo được bật. Nếu một cột nhất định đã bị tắt ở hàng trước đó mới được bật khi hàng mới được cấp nguồn, thì đèn LED của cột đó ở hàng trước sẽ phát sáng trong một thời gian ngắn trong khi bóng bán dẫn chuyển đổi của hàng trước đó vẫn đang trong quá trình bật tắt. Nguyên nhân khiến bóng bán dẫn mất một khoảng thời gian đáng chú ý để tắt là sự bão hòa trong đế của bóng bán dẫn. Điều này làm cho đường dẫn bộ thu-phát bóng bán dẫn tiếp tục dẫn khi dòng điện bị loại bỏ khỏi đế, ít nhất là cho đến khi độ bão hòa tan. Cho rằng chu kỳ cập nhật ghép kênh của chúng tôi khiến các hàng cố ý bật trong khoảng thời gian được đo bằng micro giây, lượng thời gian mà bóng bán dẫn bão hòa của hàng trước vẫn dẫn điện có thể là một phần đáng chú ý trong số đó. Do đó, mắt của bạn có thể nhận biết được khoảng thời gian rất nhỏ mà đèn LED của hàng trước được bật.

Để khắc phục sự cố bão hòa bóng bán dẫn, một diode Schottky có thể được thêm vào bóng bán dẫn giữa đế và bộ thu để gây ra một ít dòng điện ngược trở lại đế khi bóng bán dẫn bật, ngăn bóng bán dẫn bị bão hòa. Điều này đến lượt nó sẽ làm cho bóng bán dẫn tắt nhanh hơn khi dòng điện được loại bỏ khỏi đế. Xem bài viết này để được giải thích sâu hơn về hiệu ứng này. Như bạn có thể thấy từ hình ảnh trong phần này, nếu không có diode thì bóng mờ là khá đáng chú ý, nhưng việc thêm diode vào mạch cho mỗi hàng sẽ loại bỏ đáng kể bóng mờ.

Đèn LED RGB dễ bị ảnh hưởng bởi một hiện tượng khác được gọi là điện dung ký sinh. Nguyên nhân sâu xa của điều này là do mỗi đèn LED trong ba màu trong đơn vị LED RGB đều có điện áp chuyển tiếp khác nhau. Sự khác biệt về điện áp thuận này có thể gây ra ảnh hưởng của điện dung giữa từng màu LED riêng lẻ. Vì một điện tích được tích hợp trong đèn LED khi được cấp nguồn, nên khi nguồn điện bị loại bỏ, điện dung ký sinh cần được phóng điện. Nếu cột LED đó đang bật để cấp nguồn cho hàng khác, điện tích ký sinh sẽ phóng qua đèn LED của cột đó và khiến nó phát sáng trong thời gian ngắn. Hiệu ứng này được giải thích độc đáo trong bài viết này. Giải pháp là thêm một đường phóng điện cho điện tích ký sinh này không phải qua chính đèn LED, sau đó cho đèn LED thời gian phóng điện trước khi cột được cấp điện trở lại. Trong thiết kế phần cứng của tôi, điều này được thực hiện bằng cách thêm một điện trở vào đường dây điện của mỗi hàng kết nối sức mạnh với đất. Điều này sẽ làm cho dòng điện được kéo ra nhiều hơn với hàng được cấp nguồn, nhưng cung cấp đường phóng điện cho điện dung ký sinh khi hàng không được cấp điện.

Tuy nhiên, điều đáng chú ý là trong thực tế, tôi thấy ảnh hưởng của điện dung ký sinh hầu như không đáng chú ý (nếu bạn tìm kiếm nó, bạn có thể tìm thấy nó), và vì vậy tôi coi việc thêm điện trở phụ này là tùy chọn. Ảnh hưởng của thời gian tắt chậm đối với bóng bán dẫn bão hòa là mạnh hơn nhiều và đáng chú ý. Tuy nhiên, nếu bạn kiểm tra ba bức ảnh được cung cấp trong phần này, bạn có thể thấy rằng các điện trở loại bỏ hoàn toàn bất kỳ bóng mờ nào vẫn xảy ra ngoài thời gian tắt bóng bán dẫn chậm.

Bước 5: Sản xuất cuối cùng và các bước tiếp theo

Image
Image

Giai đoạn cuối cùng của dự án này là để tôi tạo ra một bảng mạch in (PCB). Tôi đã sử dụng chương trình mã nguồn mở Fritzing để thiết kế PCB của mình. Mặc dù có rất nhiều nhiệm vụ lặp đi lặp lại phải hoàn thành để bố trí 100 đèn LED trên bảng 10x10, tôi thực sự thấy giai đoạn này của dự án thỏa mãn một cách kỳ lạ. Tìm ra cách mỗi đường dẫn điện sẽ được sắp xếp giống như một câu đố, và giải quyết câu đố đó tạo ra một cảm giác hoàn thành. Vì tôi không được thiết lập để sản xuất bảng mạch, tôi đã sử dụng một trong nhiều tài nguyên trực tuyến dùng để chạy PCB tùy chỉnh nhỏ. Việc hàn các bộ phận lại với nhau khá dễ dàng vì thiết kế của tôi sử dụng tất cả các bộ phận xuyên lỗ.

Tại thời điểm viết Bài hướng dẫn này, tôi có các kế hoạch sau cho các dự án Ma trận LED RGB của mình:

  1. Tiếp tục cải thiện trình điều khiển ở lớp API để kích hoạt nhiều chức năng cấp cao hơn cho lập trình viên, đáng chú ý nhất là tính năng cuộn văn bản.
  2. Tạo thiết kế ma trận lớn hơn, chẳng hạn như 16x16 hoặc thậm chí 16x32.
  3. Khám phá bằng cách sử dụng MOSFET thay vì BJT để chuyển đổi nguồn hàng
  4. Khám phá bằng cách sử dụng các trình điều khiển hiện tại không đổi DM13A thay vì 74HC595s để chuyển đổi cột
  5. Tạo trình điều khiển cho các nền tảng điều khiển vi mô khác, chẳng hạn như Teensy, ODROID C2 hoặc Raspberry Pi.

Lưu ý rằng cả thiết kế phần cứng và trình điều khiển đã được phát hành theo giấy phép nguồn mở GPL v3 tại kho lưu trữ GitHub này. Hơn nữa, vì mặc dù các nhà sản xuất PCB thực hiện "chạy nhỏ" thiết kế PCB của tôi, tôi vẫn nhận được nhiều hơn những gì cá nhân tôi cần. Vì vậy, tôi đang bán bộ dụng cụ đầy đủ cho các thiết kế ma trận LED RGB khác nhau của tôi (PCB và tất cả các bộ phận bao gồm) từ trang web của tôi tại đây.

Đề xuất: