Тренд на матрице 8х8 и

Использование дисплеев и обсуждение пользовательских блоков к ним
Ответить
AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12.11.2015{, 10:37}
Репутация: 0

Тренд на матрице 8х8 и

#1

Сообщение AdreyM » 09.02.2016{, 12:25}

Захотелось реализовать тренд (температур) на матрице с MAX1219. По задумке от реальной температуры будет рисоваться тренд с диапазоном +5...-3 градуса (или +10...-6). 
Получилось, но только каждый столбец тренда живет на своем индикаторе. Т.е. для восьмичасового тренда у меня требуется 8 индикаторов :)
Хочется все 8 столбцов получить на одном. В FLProg доступа к отдельному столбцу нет, или я не понимаю, как это сделать. Понимаю, что без динамической индикации не обойтись, но тогда незачем MAX7219.   
Как бы сделать поизящнее?

Аватара пользователя
scadapack
Рядовой
Сообщения: 83
Зарегистрирован: 07.09.2015{, 05:18}
Репутация: 5
Откуда: Степногорск
Имя: Вячеслав

Тренд на матрице 8х8 и

#2

Сообщение scadapack » 09.02.2016{, 12:57}

Используйте команду стека массива. Она будет смещать массив на один столбик (или строку) индикатора  с добавлением нового значения.

AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12.11.2015{, 10:37}
Репутация: 0

Тренд на матрице 8х8 и

#3

Сообщение AdreyM » 09.02.2016{, 16:35}

Спасибо, scadapack!
Дело сдвинулось, стек у меня был не Byte, поэтому его не видел MAX7219.
***
Сдвинулось не очень далеко.
Из RAND в стек помещаю значения от 0 до 8.
На матрице только 3 строки, перемещаются поперек матрицы :(
Хотелось как в последней картинке.

Добавлено (09.02.2016, 16:35)
---------------------------------------------
Понял, что выводит мне матрица. Двоичный вид числа. Осталось заставить матрицу показывать не двоичный вид, а то, что мне нужно. А мне нужно отображать одну точку в столбце, или 8 на всю матрицу. Круг замкнулся.
Вложения
8611151.gif
_88.flp
(1.1 МБ) 179 скачиваний
6201521.gif
8026812.gif
Последний раз редактировалось AdreyM 09.02.2016{, 15:03}, всего редактировалось 1 раз.

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Тренд на матрице 8х8 и

#4

Сообщение Airis » 09.02.2016{, 20:43}

Вот так матрица будет выводить то что надо. Но еще неразобрался почему в блоке Poligon выходные данные должны быть “байт + 1”.
Вложения
8x8_ran.flp
(70.91 КБ) 117 скачиваний
Последний раз редактировалось Airis 09.02.2016{, 20:45}, всего редактировалось 1 раз.

AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12.11.2015{, 10:37}
Репутация: 0

Тренд на матрице 8х8 и

#5

Сообщение AdreyM » 09.02.2016{, 20:55}

При открытии Вашего проекта мне ошибку выдает.
Вложения
4344642.png

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Тренд на матрице 8х8 и

#6

Сообщение Airis » 09.02.2016{, 21:17}

Усстоновите последнюю версию FLProg.

AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12.11.2015{, 10:37}
Репутация: 0

Тренд на матрице 8х8 и

#7

Сообщение AdreyM » 09.02.2016{, 21:40}

Спасибо, дома забыл обновить версию. Все железки на работе.
Завтра проверю. Правда, не совсем понял, зачем тут Polygon.

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Тренд на матрице 8х8 и

#8

Сообщение Airis » 09.02.2016{, 22:52}

Немного обновил проект. Теперь тренд жвижется справо на лево. Наверно вывод необходимого байта данных можно сделать и без блока Poligon, но мне так покaзалось проще, чем наводнить проект кучей математических блоков.
Вложения
8x8_ran2.flp
(70.33 КБ) 123 скачивания
Последний раз редактировалось Airis 09.02.2016{, 22:52}, всего редактировалось 1 раз.

AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12.11.2015{, 10:37}
Репутация: 0

Тренд на матрице 8х8 и

#9

Сообщение AdreyM » 09.02.2016{, 23:22}

А тренд точками рисуется или "залитый" красными светодиодами красным цветом?

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Тренд на матрице 8х8 и

#10

Сообщение Airis » 10.02.2016{, 00:38}

Тренд точками рисуется. Горит одна точка в столбике от 0 до 8, что соответствуетвходным данным от 0 до 8, и все это сдвигается в с права на лево по таймеру.
Последний раз редактировалось Airis 10.02.2016{, 00:39}, всего редактировалось 1 раз.

AdreyM
Рядовой
Сообщения: 14
Зарегистрирован: 12.11.2015{, 10:37}
Репутация: 0

Тренд на матрице 8х8 и

#11

Сообщение AdreyM » 10.02.2016{, 09:32}

Airis Изображение
Я понял, что я ничего не понял, как работает Poligon. Но это работает. 
Ты шаман. КАК до этого можно догадаться??? В моем понимании, (и как это работает у меня в АСУ ТП), это преобразование  входной величины в выходную в соответствии с кривой внутри Poligon-a.
Спасибо!

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Тренд на матрице 8х8 и

#12

Сообщение Airis » 10.02.2016{, 11:57}

Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.
Последний раз редактировалось Airis 10.02.2016{, 11:59}, всего редактировалось 1 раз.

keeper1978
Сержант
Сообщения: 129
Зарегистрирован: 26.09.2015{, 19:57}
Репутация: 2

Тренд на матрице 8х8 и

#13

Сообщение keeper1978 » 13.02.2016{, 01:08}

Airis писал(а):Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.
объясните как определять какая тоска соответствует какому числу , и о каком калькуляторе идет речь

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Тренд на матрице 8х8 и

#14

Сообщение Airis » 13.02.2016{, 16:40}

То какая точка светится определяется обычным калькулятором в режиме программиста. Например,
хотите зажечь диод  1, 4, 8, то в калькуляторе, в режиме бинарных чисел пишите то что хотите отобразит  - 10010001, и в результате получаете число 145 в децимальном режиме исчислении. Тоже
самое можно сделать и в самом FLProg. Рисуем точки в блоке MAX7219, а потом в блоке для работе со массивом можно посмотреть кокой децимальном код соответствует соответствующей стоке.
Например,рисуем "сердечко" и получаем что ее код:
1. строка  - 0
2. строка - 108
3. строка - 254
4. строка - 254
5. строка - 124
6. строка - 56
7. строка - 16
8. строка - 0
Если данные в матрицу отправлять через стек и блок Poligon, то к полученным данным надо добавить +1 (не знаю почему). То есть - 1, 109, 255, 255, 125, 57, 17, 1. В моем варианте тренд все-таки движется с низу и вверх. Для одной 8х8 матрицы это несущественно (матрицу можно повернуть как надо), но на готовый блоках из нескольких матриц это надо иметь ввиду.
Последний раз редактировалось Airis 13.02.2016{, 16:43}, всего редактировалось 1 раз.

Ответить

Вернуться в «Дисплеи и индикаторы»