Điều khiển nhiều đèn LED với vài chân GPIO


12

Tôi đã hoàn thành thành công "hello world" phần cứng của mình bằng hướng dẫn này:

http://www.raspberrypi-spy.co.uk/2012/06/control-led-USE-gpio-output-pin/

Bây giờ tôi muốn chuyển sang những thứ lớn hơn và sáng hơn, đó là đèn LED được điều khiển riêng lẻ hơn! Rõ ràng, bước tiếp theo là chuyển nguồn điện áp ra khỏi Raspberry Pi và thêm nhiều đèn LED, nhưng cuối cùng tôi sẽ hết chân GPIO, vì vậy tôi đoán bây giờ tôi cần điều khiển một mạch nào đó sẽ biết , dựa trên "tín hiệu được mã hóa" GPIO, đèn LED nào bật và tắt. Tôi nên tìm loại ví dụ mạch nào? Và quan trọng hơn là Raspberry Pi, nó có thể hoặc rpi.gpio gây ra bất kỳ vấn đề nào, có lẽ liên quan đến thời gian tín hiệu?


Muliplexing sẽ giảm triệt để số lượng GPIO cần sử dụng, kết hợp với Persribution of Vision bằng cách sử dụng PWM để giảm thêm GPIO hoặc tạo các mảng lớn với GPIO tối thiểu. Điều này đã được trả lời ở đây.
Piotr Kula

Câu trả lời:


13

Những gì bạn đang tìm kiếm trong trường hợp đó là một ma trận LED . Bạn có thể điều khiển ma trận này từ các chân GPIO, nhưng điều đó vẫn giới hạn số lượng đèn LED bạn có thể kết nối (kích thước của ma trận) và nó cũng có thể bắt đầu vẽ quá nhiều dòng điện nếu bạn không cẩn thận.

Một lựa chọn tốt hơn là kết nối một ma trận LED với bus I2C, sử dụng một hoặc nhiều bộ mở rộng I / O I2C. Bằng cách đó, bạn có thể tạo một ma trận có kích thước khổng lồ (ví dụ 64 đèn LED có thể được thực hiện với bộ mở rộng I / O ONE 16 bit). Một lý do khác để sử dụng các bộ mở rộng I / O này là chúng mạnh hơn một chút, có thể cung cấp thêm một chút dòng điện và giữ cho CPU chính của bạn tránh khỏi tác hại.

Trên trang này, các phần mở rộng I / O này được thảo luận nhiều lần, vì vậy bạn sẽ có thể tìm thấy thông tin về những phần mở rộng này khá dễ dàng. Liên kết này cung cấp một số thông tin về các bộ mở rộng này và một ma trận (mặc dù được sử dụng cho đầu vào, nhưng về cơ bản đó là cùng một ý tưởng nhưng bạn không sử dụng ma trận để quét nhưng để điều khiển đèn LED)

Chỉ yêu cầu thêm để tạo ma trận hoạt động trơn tru là bạn cần làm cho ma trận không lớn hơn thì RPi có thể cập nhật từng đèn LED riêng lẻ ít nhất 20 lần mỗi giây, nếu không bạn sẽ bắt đầu thấy nhấp nháy, nhưng điều này cũng được giải thích trong liên kết đầu tiên (đoạn "Ghép kênh và kiên trì tầm nhìn").


Điều này rất thú vị. Cảm ơn đã đọc! Tôi có thể thử điều này ở quy mô nhỏ bằng cách sử dụng chân GPIO trước khi tôi sẵn sàng chuyển sang bộ mở rộng. Tôi đã thực hiện một số thử nghiệm với các chân GPIO và cho đến nay tôi đã có thể có được Ghép kênh thỏa đáng. Tôi không lo lắng về dòng điện vì tôi sẽ chỉ sử dụng Pi để chuyển đổi dòng điện bên ngoài. Liệu quy mô này sẽ tốt? Có lẽ là không, nhưng dù sao tôi cũng ở đây vì bài học!
SkyNT

3

Tôi đã sử dụng thiết bị mở rộng cổng MCP23017 I²C để thực hiện loại điều này. Theo liên kết này để tìm một số mã mẫu cho pi mâm xôi. Bạn có thể lái 16 LEDS cho mỗi chip và 8 chip mà không cần thực hiện bất kỳ ghép kênh nào.

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.