Я подумываю взять на себя проект, который будет включать в себя индивидуальную адресацию 500 светодиодов, оптимально с поддержкой ШИМ для каждого.
Я планирую использовать Arduino, так как у меня уже есть, но я открыт для предложений, если кто-то думает, что другая платформа будет лучшим выбором.
Сдвиговые регистры должны быть использованы. Что такое хороший сдвиговый регистр для использования в этой ситуации? Если PWM сделает этот проект намного дороже, я вполне могу обойтись без него. Я хочу попытаться потратить менее 100 долларов. Я бы купил 500 светодиодов на Ebay.
Каково ваше мнение о лучшем способе управления таким большим количеством светодиодов? Кроме того, как бы я пошел о предоставлении энергии? Буду признателен за любую помощь. Я довольно опытный с электроникой, я просто никогда ничего не делал в таком большом масштабе.
источник
Просто скопируйте :-)
http://www.evilmadscientist.com/article.php/peggy2
источник
В каком макете вы хотите светодиоды? Вы можете сэкономить много работы, если купите несколько светодиодных матриц, вы можете получить одноцветные 8x8 светодиодные матрицы (64 светодиода) за один или два доллара .
Вы не сможете получить настоящий ШИМ с AVR и сдвиговыми регистрами на этом количестве светодиодов, но вы можете быть в состоянии сжать 2-4 уровня яркости. Вы должны были бы запустить числа и посмотреть, что возможно.
Allegro делает несколько удобных регистров сдвига с постоянным током, специально разработанных для управления массивами светодиодов, так что вам не нужны дополнительные резисторы, которые также упростят задачу. Возможно, вы не сможете управлять светодиодами напрямую с выхода AVR, если он не может обеспечить достаточную мощность, поэтому вам придется использовать транзисторы. Вы можете получить их в массивах в одной микросхеме , что также экономит некоторую работу.
источник
Я не знаю, какой диапазон ШИМ вам нужен для светодиода, но я работал над 64-канальным ШИМ-контроллером для сервоуправления, который может выдавать импульсы от 600 мс до 2,4 мс. Он использует CD74HCT238E (демультиплексоры на 3-8 линий) для генерации 64 каналов из 8 выводов ввода / вывода на ATMega168 и управляется с помощью простых последовательных команд. Я предполагаю, что вы могли бы соединить несколько версий модифицированной версии этого контроллера вместе в последовательную линию и адресовать все 500 светодиодов ... Вы, вероятно, могли бы использовать версию контроллера ATTiny2313, так как ваши требования к прошивке были бы проще.
Мой блог содержит источник сборки и схемы, а также детали процесса проектирования.
источник
Проверьте "светодиодный драйвер" ИС на mouser / digikey. TI, например, делает кучу драйверов с различными интерфейсами (I2C, SPI), которые наверняка будут соответствовать вашим потребностям. Большинство из этих драйверов предназначены для последовательного подключения, поэтому последовательный выход из одного подается в последовательный вход другого.
Например, что-то вроде TLC5940 предлагает 16-канальное ШИМ-управление. Итак, в основном это 16-битный сдвиговый регистр с постоянным током и 12-битным ШИМ-управлением. Я могу порекомендовать именно эту микросхему, так как я помог с ней спроектировать дисплей 80x16
источник
Mondomatrix выпускает несколько последовательных (rs-485) адресных плат светодиодных драйверов и базируется на платформе Arduino: http://www.displayduino.com/ Возможно, вы сможете собрать систему, используя это оборудование, довольно легко
источник
Если вам не нужно слишком много битов управления ШИМ для каждого светодиода, и вы не хотите, чтобы процессор шел с 500 светодиодами в каждом цикле ШИМ, вы можете управлять 8 светодиодами с N битами яркости, используя N 74HC595 или эквивалентные микросхемы. , Соедините выходы всех N микросхем вместе, и соедините разрешения с некоторыми схемами, которые будут активировать только по одной за раз с подходящей синхронизацией. Сделайте так, чтобы первый чип был включен наполовину, второй - для половины, и т. Д.
Любая перезагрузка сдвиговых регистров должна быть синхронизирована со скоростью ШИМ, чтобы минимизировать эффекты наложения (например, если уровень яркости быстро переключался между 0111 и 1000, точка в цикле ШИМ, когда произошло переключение, может на мгновение изменить видимую яркость ).
Хотя необходимость использования нескольких выходов 74HC595 для каждого светодиода может раздражать, этот подход, вероятно, является самым простым, который может поддерживать различные уровни яркости без постоянного вмешательства процессора.
источник
Это не дает прямого ответа на вопрос, но другой аспект, который вам, возможно, придется рассмотреть, - это возможная изменчивость яркости среди светодиодов в вашей партии 500. Это особенно важно, если эти светодиоды установлены рядом друг с другом, как в матрице или в 7-сегментных дисплеях. Смотрите этот ответ для более подробной информации о том, как решить эту проблему, в частности, используя точечную коррекцию для компенсации изменений яркости светодиодов.
Я столкнулся с этой проблемой, когда получил 200 1-миллиметровых красных светодиодов для набора больших 7-сегментных дисплеев, которые я собирал. Мое дешевое решение проблемы заключалось в следующем:
источник
Я предлагаю использовать метод двоичной угловой модуляции, описанный в этой статье http://www.artisticlicence.com/WebSiteMaster/App%20Notes/appnote011.pdf
Или проверьте библиотеку ShiftPWM http://www.elcojacobs.com/shiftpwm/
источник
XMOS использует Macroblock MBI5026 со своими комплектами светодиодной плитки. Я думаю, что они используются в большинстве других профессиональных систем.
Леон
источник
Выделенные микросхемы драйверов с последовательными интерфейсами действительно, вероятно, будут лучшим маршрутом. Работа с отдельными регистрами сдвига, вероятно, будет означать очень сложную схему. По крайней мере, Максим и TI делают некоторые. Я не помню, есть ли модель, которая особенно подходит для этого.
Это все еще займет много оборудования.
Что касается питания, программирования и шин, таблица данных для каждого драйвера, вероятно, будет содержать большую часть необходимой информации.
источник
В области программного обеспечения, если количество необходимых настроек яркости не слишком велико, может быть полезно сохранить данные в «битовом» формате (как описано в моем другом аппаратном ответе), а затем иметь В выходных подпрограммах используются логические операторы для одновременной обработки 8 пикселей. Для максимальной эффективности это потребует наличия нескольких отдельных выходных подпрограмм, используемых для разных частей цикла ШИМ; например, если вы хотите использовать 4-битные значения яркости, можно использовать восемь подпрограмм в форме:
Можно было бы использовать различные комбинации IORWF и ANDWF, в зависимости от значения сопоставимого. Обратите внимание, что используя этот подход, как показано, можно обновлять значения яркости пикселей в любой точке цикла ШИМ без мерцания при условии, что все четыре бита записываются между вызовами в процедуру сдвига отображения, или с помощью процедуры обновления пикселя определить, является ли следующий сдвиг выведет «1» или «0» для пикселя и либо установит, либо очистит все биты пикселя (в зависимости от того, какая операция заставит его делать то, что он собирался делать в любом случае), а затем записывает любые биты, значение которых должно быть противоположным. Отметим также, что можно достичь произвольных нелинейных шкал яркости, изменяя время обновления дисплея или используя несколько сравнительных значений более одного раза в цикле ШИМ.
источник
FPGA или CPLD могут быть полезны для таких задач, поскольку они предлагают много выводов ввода / вывода. Перейти на самый простой и дешевый. Если одного недостаточно, используйте пару.
источник
Вы почти наверняка можете сделать это легко, используя PSoC3 или PSoC5 .
Чипы PSoC - это микроконтроллеры, которые содержат перенастраиваемое цифровое оборудование, немного похожее на FPGA или CPLD. Это означает, что вы можете создавать сложные схемы для таких необычных вещей, как управление 500 светодиодами с ШИМ. Более того, вы, вероятно, можете реализовать все это с помощью переконфигурируемых цифровых блоков, а это означает, что процессорной части микросхемы нужно только записать желаемую яркость светодиодов в массив.
504 светодиода помещаются в прямоугольник 21 х 24. Если у вас было 24 канала ШИМ и 21 GPIO, то вы могли бы заставить это работать. Угадай, что? PSoC имеет больше, чем это.
Вы можете легко настроить 24 канала ШИМ на PSoC и настроить еще 21 вывод для включения в регистр сдвига. Затем настройте некоторые каналы DMA для перекачки байтов из памяти на выходы ШИМ, и вы смеетесь. Все, что нужно сейчас CPU - это генерировать графику. PSoC3 имеет 8-битное ядро 8051, в то время как PSoC5 имеет 32-битную ARM. Выбирайте. Единственные внешние микросхемы, которые вам понадобятся, - это некоторые ULN2803, которые обеспечивают высокий ток возбуждения для рядов. Выходы ШИМ должны иметь достаточный ток привода для одиночных светодиодов.
источник
Используйте эффект масштаба. Китайские сайты, такие как Aliexpress, продают светодиодные пряди на основе WS2811 по цене около $ 15 за 50 светодиодов. Они индивидуально адресуемые, яркие, обычно водонепроницаемые и имеют ШИМ для яркости. Нет пайки или сдвиговых регистров, чтобы связываться с ними. Делая все это самостоятельно, держу пари, это обойдется вам дороже, займет гораздо больше времени и будет очень разочаровывать. Кроме того, вы находитесь в Оз, поэтому доставка из Китая не будет слишком дорогой.
Они сделаны для изготовления гигантских светодиодных дисплеев, поэтому они, как правило, довольно дешевые. Просто убедитесь, что вы вводите мощность примерно каждые 50 светодиодов или около того для лучшей производительности.
Существуют также библиотеки Arduino, облегчающие их использование.
источник