Страница 1 из 1

PSA9685, ШИМ, blink

Добавлено: 11 фев 2018, 01:25
Яйкс
Добрый день, друзья!

Помогите, пожалуйста, разобраться в причинах поведения работы программы. В настоящий момент собираю светодиодную матрицу на 2-х платах PSA9685 (30 светодиодов). Светодиоды будут мигать в разной последовательностью и одновременно с этим будет меняться яркость, тем самым создавая визуальные эффекты. Так как плата работает по принципу ШИМ, то процесс мигания сделал путем перезаписи значений на выход платы. Все вроде работает, но.....

Режим 1 - мигаем всеми светодиодами - с 1 по 7 - все работает
добавляем режим 2 - мигать светодиодом 7 - мигает, но
теперь при включении режима 1 мигает светодиодами с 1 по 6, а 7 не работает, хотя он тоже должен мигать

Может быть сумбурно, но думаю смысл понятен. Как так происходит? Я не могу разобраться. Что нужно добавить в схему чтобы работало правильно?
Заранее благодарю за помощь.

PSA9685, ШИМ, blink

Добавлено: 11 фев 2018, 06:42
rw6cm
Яйкс писал(а): 11 фев 2018, 01:25включении режима 1 мигает светодиодами с 1 по 6, а 7 не работает, хотя он тоже должен мигать
7 светодиод привязан одновременно к двум генераторам. так нельзя.
надо через логику, или переключатель.

PSA9685, ШИМ, blink

Добавлено: 11 фев 2018, 08:25
Яйкс
rw6cm писал(а): 11 фев 2018, 06:427 светодиод привязан одновременно к двум генераторам. так нельзя.
надо через логику, или переключатель.
Так я через переключатель и делал, поэтому и не могу понять как так происходит. Это простой пример с двумя режимами, а если их будет скажем 10, то как тогда?!
Изображение

PSA9685, ШИМ, blink

Добавлено: 11 фев 2018, 12:55
rw6cm
Яйкс писал(а): 11 фев 2018, 08:25Так я через переключатель и делал, поэтому и не могу понять как так происходит.
[spoiler]
в выключенном состоянии генератора на переменной лед7офф висит 1,
вы через другую переменную пишите на нее 0, в результате она меняет свое состояние на каждом такте.
er.png
Вообще не понятен ваш алгоритм, что вы хотите сделать.
счетчик переключает выход раз в секунду, генераторы так же переключают переменные, какой смысл?
генераторы убрать, ни чего не изменится.

[/spoiler]

PSA9685, ШИМ, blink

Добавлено: 11 фев 2018, 20:11
Яйкс
rw6cm писал(а): 11 фев 2018, 12:55в выключенном состоянии генератора на переменной лед7офф висит 1
Да, вы правы. Я все время не могу привыкнуть, что она там именно "висит". Человеческая логика подсказывает, что раз нет плюса, то не работает-а тут так не выходит.
Меня все время почему-то тянет отключение через инверсию сделать, а раз есть инверсия, то этот светодиод, соответственно, выпадает из режима, поэтому и горит 6 из 7. Не могу пока придумать как это обойти.
rw6cm писал(а): 11 фев 2018, 12:55Вообще не понятен ваш алгоритм, что вы хотите сделать.
Хочу попробовать сделать так чтобы с одной кнопки можно было переключать три режима работы: 1 - мигают все 7 светодиодов, 2 - мигает скажем 3 из 7, 3 - мигает, скажем, 2 из 7.

А дальше уже на основе этой программы можно развиваться дальше.

Вообще, большое Вам спасибо, что откликнулись на помощь. С Fl Prog ковыряюсь сам, спросить не у кого.

PSA9685, ШИМ, blink

Добавлено: 11 фев 2018, 20:25
rw6cm
Яйкс писал(а): 11 фев 2018, 20:11А дальше уже на основе этой программы можно развиваться дальше.
forum1.flp

PSA9685, ШИМ, blink

Добавлено: 11 фев 2018, 20:54
Яйкс
rw6cm писал(а): 11 фев 2018, 20:25forum1.flp
Владимир, спасибо большое за помощь! Сам бы до такой логики точно не дошел бы. Вот, что значит гуру. Очень сильно помогли.