Có bao nhiêu đèn riêng biệt có thể điều khiển arduino


19

Tôi muốn sử dụng bảng Arduino thông thường để điều khiển đèn LED - đèn nào nhiều nhất tôi có thể điều khiển riêng lẻ từ bảng?

Có một hướng dẫn về làm thế nào để treo nó lên?


3
Bạn cần chỉ định nếu bạn muốn kiểm soát một hoặc nhiều đèn led. Ngoài ra, tôi sẽ thêm "tránh điều khiển nối tiếp và IC bổ sung". Câu trả lời có xu hướng vô hạn nếu tốc độ làm mới hoặc các phần cứng không bị hạn chế.
ppvi

Câu trả lời:


26

Tôi tin rằng việc sử dụng Charlie N-plexing N điều khiển đèn LED N * (N-1). Có một bài viết hay trên Wikipedia.

Một người bạn của tôi, Jimmie P. Rodgers, lắp 126 đèn LED trên Arduino Shield. Anh ta sử dụng charlie-plexing để điều khiển đèn LED. Một số thông tin trên diễn đàn của anh ấy có tại - jimmieprodgers.com/2009/12/my-development- Process / (archive.org copy)


Tại cuộc họp nhóm người dùng Boston Arduino cuối cùng Jimmie P. Rodgers đã vẽ sơ đồ Charlie-plexing dưới dạng ma trận với các lưới được dán nhãn. Các sơ đồ được vẽ theo cách này dường như làm tốt công việc truyền đạt khái niệm. Tôi đã tạo ra một vài sơ đồ tương tự - Xem http://wiblocks.luciani.org/FAQ/faq-charlie-plex.html


học được một cái gì đó mới ngày hôm nay; bạn có upvote của tôi :-)
JonathanD

4
Hãy ghi nhớ với phương pháp này, chỉ có thể bật đèn LED N-1 tại một thời điểm.
AngryEE

2
Các jimmieprodgers.comliên kết trong câu trả lời này được nạp với virus.
Vivek Maharajh

1
@vivekmaharajh: Tôi đã thay thế liên kết bằng một liên kết đến một bản sao archive.org của trang gốc.
Dave Tweed

13

Bạn có thể sử dụng các thanh ghi Shift ( http://en.wikipedia.org/wiki/Shift_register ) để có được nhiều đầu ra song song từ một luồng nối tiếp duy nhất như bạn muốn.

Bạn sẽ cần phải quan tâm đến những hạn chế quyền lực của bạn. Tôi thực sự chưa bao giờ sử dụng Arduino nhưng tôi cho rằng nó có giới hạn hiện tại giống như PIC. Ngoài ra, các thanh ghi thay đổi sẽ có một giới hạn hiện tại. Nếu bạn gặp phải vấn đề này, bạn sẽ cần xem xét việc sử dụng một cái gì đó như MOSFET để cho phép bạn điều khiển đèn LED mà không phải lấy nhiều năng lượng trực tiếp từ bộ điều khiển vi mô của bạn.


7

Bất kỳ chân vi điều khiển AVR đã cho nào cũng được phép cung cấp nguồn lên tới 40 mA và tổng nguồn cung cấp nguồn hoặc chìm bởi chip (tức là ở mặt đất và chân Vcc) cần phải dưới 200 mA.

Charlieplexing là một giải pháp tuyệt vời cho tình huống mà bạn cần rất nhiều đèn LED, nhưng có thể nhận được bởi chỉ với một đèn LED thắp sáng một lúc. Một bảng Arduino tiêu chuẩn (như Duemilanove) cung cấp 17 chân I / O "miễn phí", không tính TX, RX, Reset hoặc pin 13. Vì vậy, bạn có thể treo lên đèn LED 17 * 16 = 272. Điều này có thể hoạt động tốt, đặc biệt nếu bạn giữ một đèn LED sáng hoặc quét nhanh giữa chỉ một vài đèn. Nhưng nếu bạn đang cố gắng chiếu sáng toàn bộ ma trận bằng một mẫu, bạn sẽ thấy rằng mỗi cái được bật (ít hơn một chút) 1/272 thời gian, vì vậy nếu dòng điện của bạn là 30 mA tại bất kỳ thời điểm nào, thì mỗi đèn LED dòng điện trung bình sẽ vào khoảng 0,1 mA-- khá mờ.

Nếu bạn không cần nhiều đèn LED mà thay vào đó cần nhiều độ sáng hơn, ghép kênh truyền thống có thể là một lựa chọn tốt hơn. Trong trường hợp này, bạn sử dụng một số dòng của mình dưới dạng hàng và một số dưới dạng cột trong ma trận. Nếu bạn sử dụng dòng LED 10 mA, bạn có thể xác định ma trận gồm 4 cột và 13 hàng, trong đó tất cả 4 đèn LED trong một hàng có thể bật cùng một lúc và bạn quét qua các hàng. Sau đó, mỗi hàng là vào 1/13 thời gian ở mức 10 mA, vì vậy dòng LED trung bình có thể cao tới 0,76 mA, NHƯNG bạn chỉ nhận được 4 * 13 = 104 đèn LED. (Chắc chắn sáng hơn trên mỗi đèn LED so với charlieplexing.)

Giới hạn trong ví dụ trước là 40 mA mỗi pin trên AVR-- vì mỗi hàng pin điều khiển nguồn 4x10 = 40 mA. Nếu bạn cho phép các bóng bán dẫn bên ngoài (có thể rẻ và nhỏ) được thêm vào đầu ra hàng, thì bạn có thể tránh giới hạn cụ thể đó và sáng hơn. Ví dụ: bạn có thể tạo một mảng 8x9, với 8 hàng và 9 cột, 72 đèn LED hoàn toàn. Một trong 8 hàng được bật tại một thời điểm, được chọn thông qua bóng bán dẫn. Có thể bật tối đa tất cả 9 đèn LED trong một hàng nhất định, được điều khiển ở mức 20 mA, do đó 180 mA đến từ bóng bán dẫn và bạn ở trong giới hạn hiện tại của AVR. Dòng điện trung bình trên mỗi đèn LED hiện nay là 20 mA / 8 = 2,5 mA-- thường khá sáng.


6

Có một hướng dẫn chi tiết, rất hay ở đây bao gồm một phần về việc sử dụng Arduino để chạy một khối LED 8 x 8. (Đừng bỏ lỡ bộ phim YouTube mà họ có)

nhập mô tả hình ảnh ở đây


Trông giống như một cái gì đó tôi đã thấy tại triển lãm UFO ở Minneapolis vào khoảng năm 1979 hoặc ở đó, nhưng tôi nhớ rằng như ở đâu đó khoảng 4096 bóng đèn thu nhỏ. Có ai khác nhớ nhìn thấy một cái gì đó như thế?
supercat

4

Có nhiều Trình mở rộng I / O sử dụng các bus SPI hoặc I2C. Với một mô-đun MSSP duy nhất, bạn có thể kiểm soát gần như vô số đầu ra kỹ thuật số như đèn LED.

Xem bảng dữ liệu Microchip hoặc ghi chú ứng dụng cho các phần sau:
SPI - MCP23S08
I2C - MCP23008


1

Với 17 chân I / O, mười bảy bóng bán dẫn NPN (tín hiệu phát để tăng cường dòng điện), không có vấn đề cụ thể nào cho thấy 272 đèn LED trong các kết hợp tùy ý ở chu kỳ 1/17, với dòng điện trung bình hoặc 0,7mA (200mA / 272), bị giới hạn bởi khả năng của chip giảm xuống 200mA cùng một lúc. Thêm một diode để có được mức giảm 0,7 volt sẽ cho phép bổ sung thêm 17 đèn LED (giảm chu kỳ hoạt động xuống 1/18), mặc dù độ sáng sẽ không tương xứng với các đèn khác.


Bạn có thể làm rõ về loại mạch bạn đang đề nghị ở đây? Theo dõi Emitter là một cấu trúc liên kết BJT.
Kevin Vermeer

@reemrevnivek: Xem chỉnh sửa ở trên. Tôi đã suy nghĩ lung tung về một vài biến thể và chúng bị lẫn lộn với nhau. Nếu một người đang thêm các bóng bán dẫn để tăng cường ổ đĩa phía cao nhưng không phải là ổ đĩa phía thấp, thì họ cần phải là của BJT. Nếu một người đang sử dụng bóng bán dẫn cho cả hai, mosfet có thể tốt hơn.
supercat

0

Trong khi Windell Oskay đưa ra một lập luận tốt rằng 104 đèn LED là tối đa mà không cần thêm nhiều bóng bán dẫn, Tom Igoe đã đăng ảnh ma trận gồm 128 đèn LED được điều khiển trực tiếp bởi một Arduino Mega - không có bóng bán dẫn bổ sung, rời rạc hoặc tích hợp.

Có phải Tom Igoe "gian lận" bằng cách vượt quá "dòng tối đa tuyệt đối trên mỗi pin" được liệt kê trong biểu dữ liệu?


2
Không, anh ta gian lận bằng cách sử dụng một arduino mega. :) Mega có nhiều chân IO hơn một arduino bình thường.
Christopher Biggie

@unixbigot - Thật đáng buồn, tôi đã hy vọng thấy một bản hack tuyệt vời liên quan đến việc tái sử dụng pin reset cho việc lái xe bằng đèn LED hoặc sử dụng diode thả ..
Kevin Vermeer

1
Liên kết của bạn đã chết và có lẽ bạn nên liên kết với câu trả lời của Windell Oskay . Nó có vẻ không quan trọng khi bạn đăng, nhưng khi nhiều câu trả lời xuất hiện, bài đăng của bạn trở nên xa cách với người khác.
Kevin Vermeer

@KevinVermeer: ​​Liên kết cố định bằng cách trỏ đến archive.org bản sao của trang gốc.
Dave Tweed
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.