Làm cách nào để kiểm soát hàng trăm led riêng lẻ với Arduino (s)?


10

Tôi đang làm việc trong một dự án điện tử bao gồm hàng trăm đèn LED. (Tôi nói về sáu đến bảy trăm đèn LED ... rất nhiều, tôi biết.) Có cách nào để điều khiển nhiều đèn LED này với một hoặc một vài Arduinos không? Tôi muốn có thể truy cập / điều khiển từng đèn LED riêng lẻ vì điều tôi muốn làm là vẽ đèn LED trên bản đồ treo tường của thế giới. Sau đó, tôi sẽ giao diện Arduino với Google Analytics và khi ai đó điều hướng đến trang web của tôi từ một nơi nhất định trên thế giới, đèn LED gần khu vực của họ sẽ sáng lên theo thời gian thực.

Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn! Tôi đã cố gắng nghiên cứu một số và đọc về ghép kênh và ghép hình, nhưng những thứ đó dường như đạt tối đa 100 hoặc hơn? Tôi cho rằng tôi sẽ cần phần cứng / linh kiện bên ngoài để có thể điều khiển nhiều đèn LED này, nhưng chính xác thì tôi cần gì để thực hiện điều này? Có ai khác từng tạo ra một ma trận LED lớn như vậy không?

Câu trả lời:


9

Khi bạn ghép một số lượng lớn đèn LED riêng lẻ, cách phổ biến là sử dụng ma trận N x M. Thời gian được chia thành N bước, trong mỗi bước bạn kích hoạt một trong các dòng N và các dòng cột tương ứng với đèn LED bạn muốn bật. Lưu ý rằng mỗi dòng có thể mang M nhân với dòng LED, yêu cầu một số bộ đệm. Mỗi đèn LED chỉ bật 1 / N thời gian, vì vậy để giữ độ sáng bình thường, bạn phải tăng gấp N hiện tại. Hầu hết các LEds không thích điều này. Charlieplexing không thực tế trong tình huống của họ vì những dòng chảy lớn liên quan.

Từ câu hỏi của bạn tôi hiểu rằng bạn chỉ muốn bật 1 đèn LED mỗi lần? Trong trường hợp đó, không có gì sai với Charlieplexing. Một uC với 31 chân I / O có thể điều khiển 900 đèn LED. Âm thanh như sự thuyết phục sẽ là một cơn ác mộng ...


Cập nhật 5 năm sau: Ghép kênh thông thường hoặc Charlieplexing rất tuyệt khi bạn có quá nhiều thời gian trong tay, nhưng khi tôi phải điều khiển 100 bóng đèn LED bây giờ tôi sẽ mua một dải đèn LED WS2801 dài.


Tôi nghĩ rằng tôi có một cái gì đó để thêm. Vâng, nếu dòng điện cao là vấn đề thì sử dụng điện áp cao. như 9v nhưng trong thời gian rất ngắn 10mS và chu kỳ nhiệm vụ được tính toán chính xác. Vì nó cũng sử dụng tăng tuổi thọ của đèn LED.
Tiêu chuẩn Sandun

Điện áp giảm bởi đèn LED là cố định, và điện áp đầu ra của Arduino cũng vậy (có thể là 5V, đối với một số loại 3.3V). Sử dụng dòng điện cao hơn với chu kỳ nhiệm vụ nhỏ hơn thường làm giảm tuổi thọ LED.
Wouter van Ooijen

9

Bạn có thể sử dụng một thanh ghi thay đổi 74HC595 (hoặc tương tự) giá rẻ và dễ tìm thấy để dễ dàng điều khiển hàng trăm đèn LED chỉ bằng một vài chân từ arduino.

Có ngay cả một hướng dẫn về điều này trên trang web Arduino!

Chuyển đổi nối tiếp sang song song với 74HC595

Chuyển ra & chip 595

Thỉnh thoảng bạn có thể hết chân trên bo mạch Arduino của mình và cần mở rộng nó bằng các thanh ghi thay đổi. Ví dụ này dựa trên 74HC595. Bảng dữ liệu đề cập đến 74HC595 như là một "thanh ghi dịch chuyển nối tiếp, nối tiếp hoặc song song 8 bit với các chốt đầu ra; 3 trạng thái." Nói cách khác, bạn có thể sử dụng nó để điều khiển 8 đầu ra cùng một lúc trong khi chỉ chiếm một vài chân trên vi điều khiển của bạn. Bạn có thể liên kết nhiều thanh ghi với nhau để mở rộng đầu ra của bạn hơn nữa.


Đó sẽ là rất nhiều thanh ghi thay đổi, nhưng nó sẽ hoạt động :) Bạn sẽ cần khoảng 88 (700 led / 8 led cho mỗi chip) các thanh ghi thay đổi và chỉ 1 mcu.
Johan

1
Đừng quên các trình điều khiển logic bổ sung, vì 88 đầu vào khá nhiều để xử lý.
Ignacio Vazquez-Abrams

2

Tôi sẽ xây dựng điều này theo cách thức mô-đun. 6960 của Maxim sẽ lái 64 đèn LED cho bạn, mặc dù nó hơi đắt tiền. Chúng được điều khiển với giao diện nối tiếp và bạn có thể kết nối tối đa 256 chúng với nhau.

7218/7221 cũng sẽ hoạt động.


2

Một chút câu trả lời muộn cho câu hỏi này, nhưng đây là 528 đèn LED Charlieplexed một PICAXE 40X2 duy nhất. Nó sẽ lên đến 930 đèn LED nếu tất cả các chân được dành riêng cho công việc.

Bản dựng: http://www.picaxeforum.co.uk/entry.php?25-The-PICaxe-orrery

Một video: http://www.youtube.com/watch?v=82LvqiaH-iA

Kiến trúc PICAXE khá chậm, do đó, số lượng đèn LED tối đa có thể được chiếu sáng đồng thời bị giới hạn trong khoảng 15 trước khi nhấp nháy trở thành một vấn đề. Một bộ xử lý nhanh hơn và lập trình thông minh hơn, sẽ tăng con số này đáng kể.


1

Tôi không chắc câu trả lời của tôi có tốt hay không ... nhưng tại sao không nói về các sọc led có địa chỉ WS2811 ??

Chúng tôi muốn làm một ma trận LED để hiển thị văn bản. Có một dự án ở đây ( https://www.pjrc.com/teensy/td_libs_OctoWS2811.html ), được thực hiện trên Teensy, gần giống với Arduino.

Tôi nghĩ rằng nó sử dụng khái niệm về PWM (Điều chế độ rộng xung) và do đó cho phép gửi dữ liệu phức tạp đến các dải led bằng một dây duy nhất.

Nhưng một lần nữa, tôi không chắc câu trả lời của mình có tốt không ...


Vấn đề là thời gian cần thiết hạn chế số lượng đèn LED bạn có thể xâu chuỗi lại với nhau và việc trải rộng chúng trên nhiều chuỗi làm tăng thời gian xử lý chung.
Ignacio Vazquez-Abrams

0

Chúng tôi đã có một cuộc thảo luận thú vị về việc lái nhiều đèn LED trong một câu hỏi gần đây tại đây. Câu trả lời của tôi dường như được áp dụng trực tiếp cho vấn đề của bạn ở đây. Xem câu trả lời tại đây:

Đèn LED lái xe ở khoảng cách xa


4
Bạn có thể đưa ra thông tin áp dụng và điều chỉnh nó cho câu hỏi này không, nếu câu trả lời của bạn hoạt động hoàn hảo cho cả hai thì đó là dấu hiệu của một bản sao chính xác.
Kortuk

0

Dựa trên thông tin tại http://bildr.org/?s=shift+register trên thanh ghi thay đổi 74H595 với Arduino Uno, cho biết 'nếu bạn có 1000 trong số này bị xích lại với nhau', một dự án đã được bắt đầu trên màn hình LED với 320 đèn LED. Khi tôi nhận được hơn 100 đèn LED bị chập chờn và cuối cùng đã làm hỏng Arduino.

Vì vậy, tôi đã nói chuyện với bộ phận hỗ trợ công nghệ tại Sparkfun, người đã bán cho tôi các bảng đột phá cho 74H595. Ông nói rằng bạn chỉ có thể bật năm hoặc sáu đèn LED cùng một lúc. Vì vậy, tôi đã quay lại và đọc lại bài viết tại BLDR và ​​nhận ra rằng bạn có thể điều khiển hàng ngàn đèn LED bằng cách sử dụng 74H595 / Arduino nhưng bạn chỉ có thể có hàng tá hoặc hơn một lúc. (Điều này có ý nghĩa bởi vì Arduino sẽ cho phép 200mA thông qua mức đặt ra 5 volt và mỗi đèn LED rút ra 20mA, vì vậy khoảng mười là tất cả những gì nó sẽ cung cấp năng lượng một cách an toàn)

Các bóng bán dẫn đã được nhìn thấy có thể được bật với 1mA của dòng điện. Nếu đó là sự thật nếu người ta có thể thiết kế một mạch điều khiển các bóng bán dẫn có bộ thu dòng / điện áp cao hơn nhiều cho dòng phát. Sau đó, người ta có thể sử dụng kết hợp Arduino / 74H595 để điều khiển các bóng bán dẫn trong mạch có dòng điện cao hơn.

Allen ở Dallas

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.