Керування багатьма світлодіодами з кількома шпильками GPIO


12

Я успішно завершив свій апаратний "привіт світ" за допомогою цього посібника:

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

Тепер я хотів би перейти до великих і яскравих речей, більш індивідуально керованих світлодіодів, що є! Очевидно, наступним кроком є ​​переміщення джерела напруги з Raspberry Pi та додавання більшої кількості світлодіодів, але врешті-решт у мене закінчуються штифти GPIO, тож я здогадуюсь, що мені зараз потрібно - це керувати ланцюгом, який якось знатиме на основі "кодованих сигналів" GPIO, які світлодіоди включати та вимикати. Які типи схем я повинен шукати? І що ще важливіше щодо Raspberry Pi, може він чи rpi.gpio спричинити якісь проблеми, можливо, стосовно часу сигналу?


Муліплексинг дозволить докорінно зменшити кількість GPIO, які потрібно використовувати у поєднанні з Persitance of Vision, використовуючи PWM для подальшого зменшення GPIO або створення великих масивів з мінімальним GPIO. На це вже відповіли тут.
Пьотр Кула

Відповіді:


13

У цьому випадку ви шукаєте світлодіодну матрицю . Ви можете керувати цією матрицею за допомогою штифтів GPIO, але це все ще обмежує кількість світлодіодів, які ви можете підключити (розмір матриці), і вона може почати виводити занадто багато струму, якщо ви не будете обережні.

Кращий варіант - підключити світлодіодну матрицю до шини I2C, використовуючи один або кілька розширювачів вводу / виводу I2C. Таким чином ви можете створити матрицю величезного розміру (наприклад, 64 світлодіоди можна виконати за допомогою одного 16-розрядного розширення вводу / виводу). Ще одна причина використання цих розширювачів вводу-виводу - це те, що вони трохи більш надійні, можуть забезпечити трохи більше струму та уникнути шкоди для вашого основного процесора.

На цьому веб-сайті ці розширювачі вводу-виводу обговорюються кілька разів, тому ви повинні мати можливість знайти інформацію про них досить просто. Це посилання містить деяку інформацію про ці розширювачі та матрицю (хоча вона використовується для введення даних, але в основному це та сама ідея, але ви не використовуєте матрицю для сканування, а для керування світлодіодами)

Єдина додаткова вимога до створення гладкої робочої матриці полягає в тому, що вам потрібно зробити матрицю не більшою, ніж RPi може оновлювати кожен окремий світлодіод щонайменше 20 разів щосекунди, інакше ви почнете бачити мерехтіння, але це також пояснюється у першому посиланні (параграф «Мультиплексування та стійкість бачення»).


Це дуже цікаво. Дякую за прочитане! Я можу спробувати це в невеликих масштабах, використовуючи штифти GPIO, перш ніж буду готовий перейти на розширювачі. Я зробив кілька тестів із шпильками GPIO, і поки що мені вдалося отримати задовільний мультиплексування. Мене не турбує струм, оскільки я буду використовувати тільки Pi для перемикання зовнішнього струму. Чи добре буде цей масштаб? Напевно, ні, але я все-таки здебільшого на урок!
SkyNT

3

Я використовував розширювач портів MCP23017 I²C для цього типу речей. Перейдіть за цим посиланням, щоб знайти зразок коду для малинового пі. Можна керувати 16 світлодіодами на чіп і 8 мікросхем, не потрібно робити мультиплексування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.