Trước hết, một Arduino không thể điều khiển trực tiếp 100 đèn LED, vì dòng điện kết hợp mà thiết bị phải nguồn hoặc chìm sẽ vượt xa cả vi điều khiển và bộ điều chỉnh điện áp trên bo mạch Arduino. Mặc dù vậy, một Arduino Shield tùy chỉnh với nguồn năng lượng và quy định riêng có thể phù hợp với dự luật.
Có một số cách tiếp cận dễ dàng, cách tiếp cận đơn giản nhất được trình bày chi tiết dưới đây:
Trình điều khiển LED dòng không đổi TLC5940 trong cấu hình xếp tầng:
TLC5940 điều khiển 16 đèn LED trên mỗi IC, được điều khiển bởi đầu vào nối tiếp thông qua một biến thể nhỏ của giao diện SPI. Lên đến 40 thiết bị TLC5940 có thể xếp tầng, nhưng 7 trong số đó sẽ đủ để lái 100 đèn LED trong câu hỏi.
Có ít nhất một vài thư viện Arduino ( 1 , 2 ) cho TLC5940.
Tốc độ xung nhịp được đề xuất để gửi từ Arduino và tốc độ làm mới tương ứng:
- GSClk 1 MHz sử dụng mã trong chuỗi này .
- 330 KHz SCLK (đồng hồ dữ liệu nối tiếp)
- Qua đó, tốc độ làm mới dữ liệu LED 244 Hz
Điều này dựa trên các công thức từ biểu dữ liệu:
f (GSCLK) = 4096 * f (cập nhật)
f (SCLK) = 193 * f (cập nhật) * n
trong đó:
f (GSCLK): tần số tối thiểu cần thiết cho GSCLK
f (SCLK): tần số tối thiểu cần thiết cho SCLK và SIN
f ( cập nhật): tốc độ cập nhật của toàn bộ hệ thống xếp tầng
n: số tầng của thiết bị TLC5940
Các TLC5940 là một hiện liên tục chìm , vì vậy các cực dương của đèn LED sẽ được gắn với một điện áp một vài volt lớn hơn VF LED, hoặc khoảng 7 volt, nào là thấp hơn, cung cấp một cách độc lập của các chân sức mạnh của Arduino. Nguồn điện áp này cần có khả năng cung cấp 100 * (bất cứ dòng điện nào bạn chạy đèn LED), nhưng có thể là nguồn không được kiểm soát.
Các catốt LED đi đến các dòng ổ đĩa của IC TLC5940 tương ứng.
Bản thân TLC5940 tiêu thụ tới Icc = 60 mA trên mỗi thiết bị trong quá trình ghi dữ liệu, do đó, việc cung cấp năng lượng cho 7 trong số chúng từ Arduino sẽ không hoạt động, nó sẽ yêu cầu cung cấp Vcc độc lập 3,3 đến 5 volt, lý tưởng là giá trị tương tự như Vcc của Arduino đang được sử dụng, và dấu vết mặt đất cần phải kết nối trở lại mặt đất của Arduino, tất nhiên. Vận hành các bộ phận TLC ở một điện áp khác với Arduino sẽ mang lại nhu cầu chuyển đổi mức tín hiệu nối tiếp, do đó tốt nhất nên tránh.
Một số video YouTube trình diễn bằng cách sử dụng Arduino với IC TLC5940 xếp tầng.
Mặc dù các IC này được thiết kế để điều khiển màn hình LED số 7 đoạn, chúng cung cấp điều khiển LED riêng lẻ, do đó có thể được sử dụng cho tối đa 64 đèn LED trên mỗi IC. Hai trong số chúng có thể được xếp tầng để lái 100 đèn LED cần thiết. Trang 13 của biểu dữ liệu hiển thị cấu hình tầng.
Các đèn LED sẽ phải được kết nối bằng điện như một nhóm gồm 8 đèn LED, mỗi đèn chia sẻ một dòng catốt (cực âm chung), cho thiết kế này.
MAX7219 / 7221 là trình điều khiển LED ghép kênh, do đó độ sáng tối đa của đèn LED sẽ thấp hơn so với trình điều khiển LED tĩnh như phần trước.
Dưới đây là một thư viện và hướng dẫn ma trận LED hữu ích bằng cách sử dụng MAX7219.
Một số video YouTube có liên quan ( 1 , 2 ) có thể được quan tâm.
Một lần nữa, các IC này được thiết kế để điều khiển màn hình LED số 7 đoạn, chúng cung cấp điều khiển LED riêng lẻ, do đó có thể được sử dụng cho tối đa 40/64 đèn LED trên mỗi IC. Hai / ba trong số chúng có thể được nối trên một bus Arduino SPI để lái 100 đèn LED cần thiết.
Ghi chú thiết kế vẫn giống như phần trước. Ngoài ra, độ sáng tối đa LED riêng lẻ sẽ thấp hơn so với thiết kế ghép kênh thẳng của MAX7219.
Có một số video YouTube có thể được quan tâm.
Thiết kế thành phần riêng biệt, thanh ghi thay đổi, bộ mở rộng IO, dải đèn LED có thể cắt với các bộ điều khiển riêng lẻ và nhiều hơn nữa ...
Đây là tất cả các phương pháp đã được sử dụng với mức độ đơn giản và thành công khác nhau. Chúng là những triển khai phức tạp hơn 3 cách tiếp cận ở trên, do đó không chi tiết hơn nữa. Tìm kiếm trên web sẽ mang lại hướng dẫn hữu ích cho các phương pháp này, nếu cần.
Một điều khó chịu với các thiết kế như vậy là sự cần thiết của các điện trở điều khiển hiện tại trên mỗi chuỗi LED hoặc LED. Các thiết bị được thiết kế đặc biệt cho lái xe LED thường không cần điều này.
Tôi không có kinh nghiệm cá nhân với bộ tùy chọn cuối cùng này, vì vậy không thể giúp được gì nhiều.
Chú thích: Sau khi trả lời câu hỏi này, tôi tìm thấy một câu hỏi cũ hơn , có câu trả lời chi tiết và thảo luận về một số cách tiếp cận trong phần cuối cùng của tôi. Chủ đề đó làm cho thú vị "đọc thêm như bài tập về nhà".