FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Пятница, 09.12.2016, 12:37
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Тренд на матрице 8х8 и (MAX7219)
Тренд на матрице 8х8 и
AdreyM
Дата: Вторник, 09.02.2016, 12:25 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
Захотелось реализовать тренд (температур) на матрице с MAX1219. По задумке от реальной температуры будет рисоваться тренд с диапазоном +5...-3 градуса (или +10...-6). 
Получилось, но только каждый столбец тренда живет на своем индикаторе. Т.е. для восьмичасового тренда у меня требуется 8 индикаторов :)
Хочется все 8 столбцов получить на одном. В FLProg доступа к отдельному столбцу нет, или я не понимаю, как это сделать. Понимаю, что без динамической индикации не обойтись, но тогда незачем MAX7219.   
Как бы сделать поизящнее?
 
scadapack Дата: Вторник, 09.02.2016, 12:57 | Сообщение # 2
Лейтенант
Группа: Проверенные
Сообщений: 60
Награды: 2
Репутация: 5
Статус: Offline
Используйте команду стека массива. Она будет смещать массив на один столбик (или строку) индикатора  с добавлением нового значения.
 
AdreyM Дата: Вторник, 09.02.2016, 16:35 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
Спасибо, scadapack!
Дело сдвинулось, стек у меня был не Byte, поэтому его не видел MAX7219.
***
Сдвинулось не очень далеко.
Из RAND в стек помещаю значения от 0 до 8.
На матрице только 3 строки, перемещаются поперек матрицы :(
Хотелось как в последней картинке.

Добавлено (09.02.2016, 16:35)
---------------------------------------------
Понял, что выводит мне матрица. Двоичный вид числа. Осталось заставить матрицу показывать не двоичный вид, а то, что мне нужно. А мне нужно отображать одну точку в столбце, или 8 на всю матрицу. Круг замкнулся.

Прикрепления: 8026812.gif(26Kb) · 6201521.gif(11Kb) · _88.flp(1129Kb) · 8611151.gif(4Kb)


Сообщение отредактировал AdreyM - Вторник, 09.02.2016, 15:03
 
Airis Дата: Вторник, 09.02.2016, 20:43 | Сообщение # 4
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline
Вот так матрица будет выводить то что надо. Но еще неразобрался почему в блоке Poligon выходные данные должны быть “байт + 1”.
Прикрепления: 8x8_ran.flp(71Kb)


Сообщение отредактировал Airis - Вторник, 09.02.2016, 20:45
 
AdreyM Дата: Вторник, 09.02.2016, 20:55 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
При открытии Вашего проекта мне ошибку выдает.
Прикрепления: 4344642.png(15Kb)
 
Airis Дата: Вторник, 09.02.2016, 21:17 | Сообщение # 6
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline
Усстоновите последнюю версию FLProg.
 
AdreyM Дата: Вторник, 09.02.2016, 21:40 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
Спасибо, дома забыл обновить версию. Все железки на работе.
Завтра проверю. Правда, не совсем понял, зачем тут Polygon.
 
Airis Дата: Вторник, 09.02.2016, 22:52 | Сообщение # 8
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline
Немного обновил проект. Теперь тренд жвижется справо на лево. Наверно вывод необходимого байта данных можно сделать и без блока Poligon, но мне так покaзалось проще, чем наводнить проект кучей математических блоков.
Прикрепления: 8x8_ran2.flp(70Kb)


Сообщение отредактировал Airis - Вторник, 09.02.2016, 22:52
 
AdreyM Дата: Вторник, 09.02.2016, 23:22 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
А тренд точками рисуется или "залитый" красными светодиодами красным цветом?
 
Airis Дата: Среда, 10.02.2016, 00:38 | Сообщение # 10
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline
Тренд точками рисуется. Горит одна точка в столбике от 0 до 8, что соответствуетвходным данным от 0 до 8, и все это сдвигается в с права на лево по таймеру.

Сообщение отредактировал Airis - Среда, 10.02.2016, 00:39
 
AdreyM Дата: Среда, 10.02.2016, 09:32 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
Airis smile
Я понял, что я ничего не понял, как работает Poligon. Но это работает. 
Ты шаман. КАК до этого можно догадаться??? В моем понимании, (и как это работает у меня в АСУ ТП), это преобразование  входной величины в выходную в соответствии с кривой внутри Poligon-a.
Спасибо!
 
Airis Дата: Среда, 10.02.2016, 11:57 | Сообщение # 12
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline
Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.

Сообщение отредактировал Airis - Среда, 10.02.2016, 11:59
 
keeper1978 Дата: Суббота, 13.02.2016, 01:08 | Сообщение # 13
Лейтенант
Группа: Проверенные
Сообщений: 91
Награды: 0
Репутация: 0
Статус: Offline
Цитата Airis ()
Блок Poligon появился впоследней версии программы, и хотелось его как не будь попробовать. Как этот блок работает можно догадается, но непонятно почему преобразование происходит с необходимостью добавляться +1 к выходному значению. Например, одна точка в 4 ряду по калькулятору соответствует 16, а одна точка в 5 ряду соответствует 8, но в блоке Poligon к выходному значению надо добавлять +1. То есть 4 точке соответствует 17, а 5 точка 9.

объясните как определять какая тоска соответствует какому числу , и о каком калькуляторе идет речь
 
Airis Дата: Суббота, 13.02.2016, 16:40 | Сообщение # 14
Майор
Группа: Проверенные
Сообщений: 135
Награды: 4
Репутация: 10
Статус: Offline
То какая точка светится определяется обычным калькулятором в режиме программиста. Например,
хотите зажечь диод  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
 
Форум » Основной » Спросить у знатоков » Тренд на матрице 8х8 и (MAX7219)
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика