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

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 11:09
rf80
Добрый день.
Делаю контролер управления газовым котлом.
Программу работы с датчиком сделал используя блок +- устанавливаю температуру задания.
Но стоит задача такая.
1 При удерживании клавиши попадаю в меню установки температуры (скажем высветил Т на две сек на индикаторе)
2 Клавишами + - выставляю температуру(эта переменная реализована)
3 Нажимаю запомнить разрешаю запись в ЕЕпром и переход на индикацию температуры с датчика.
Т.Е. организовать работу тремя кнопками.
Я думаю счетчик и мультиплесором завязаться как то.
Но чего то пока не скумекаю алгоритм

Добавлено (15.02.2016, 11:09)
---------------------------------------------
Еще один вопрос будет три сегмента переменная Float сегмент работает только с целыми есть необходимость вывести десятые. Т.е. как то нужно выделить точку.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 11:25
Олег
Если +- реализован, то все остальное можно сделать так:
3100458.png
Первым таймером выставляется время задержания, второй для того чтобы сбросить триггер если кнопки не нажимались какое-то время, на его вход через ИЛИ завести все кнопки.
А насчет точки не понял.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 11:43
rf80
Гистерезис компаратора выставлен 0,5гр и соответственно установка идет кратно 0,5
Логично и температуру показывать с десятыми.
Семисегментный индикатор работает или со строкой или с Интеджер с Флоат не работает.
Если я преобразую Флот в интеджер потеряю десятые. Можно в общем то умножить на 10 и перевести в Интеджер и точку выводить всегда на одном сегменте.
Но как бы не совсем правильно

Добавлено (15.02.2016, 11:43)
---------------------------------------------
Ваша схема наверное не то.
Речь идет о меню.
1 Вход в него активируется при удержании клавиши две секунды
1,1 Если изменения не произошли происходит сброс и индикация показаний с датчика
2  вход в меню установки заданной температуры
2,1 следующее кратковременное нажатие как я думаю запись в еепром
ну и возврат на индикацию температуры с датчика

думал через мультиплексор и уставки делать счетчиком но мультиплексор работает только с одним типом переменных разные он не может. Т.е это для того чтобы было понятно что я в меню регулировок
или одним типом пользоваться и просто моргать символами.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 14:49
Олег
Как-то сумбурно вы задачу описываете, сделал так как понял, на мультиплексоре, хотя на верхней схеме практически то-же самое.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 15:33
rf80
спасибо. Опробую отпишусь. А установки таймеров какие и до скольки счет на счетчике до двух

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 15:42
Олег
Вот проект.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 16:39
rf80
Спасибо работает правда было две не точности элемент или нужно было на И заменить иначе все время счетчик в резете держали и по И для про инвертировать входы с L1
Буду дальше обсасывать

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 17:30
Олег
Не надо ИЛИ на И менять, надо инвертировать выход TOF. Если поменяете, то не будет нормально работать.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 19:11
rf80
Ну не знаю работает и без претензий. Чего то я не просчитал этот момент с TOF что он сбрасывает.
Попробовал динамически вывести на индикатор бред нужно регистров докупить.
Причем не понятно как то меняет регистры местами и один вообще не зажигает. Думаю может от того что еще аналоговые в цыфровые перевел

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 19:36
Олег
Если в течении 15 секунд не было никаких нажатий, то возвращается на показ температуры пункт 1.1.
 Если использовать И вместо ИЛИ, то не должно возвращаться на показ температуры ни сразу после сохранения, ни по таймеру, так как счетчик не сбросится. Счетчик не сбросится потому что выход L счетчика постоянно низкий.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 20:08
vlad
Какой модуль семисигментника вы используете? ( если можно ссылку) тоже делаюю меню на них, но мне надо 3-4 разряда. Флпрог поддерживает 8ми разрядные, но есть такие же но 4. Только не понятно будет ли флпрог с ним работать.

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 20:22
Олег
Количество разрядов устанавливается в настройках модуля от 1 до ? (похоже ограничения нет ):) .

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 20:25
vlad
Нет там только один 8разрядный. Или мы говорим про применение сдвиговвх регистров?

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 20:30
Олег
Я про управление семисегментником, а вы о чем?

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 21:06
vlad
я про другое

Меню для семисегментного индикатора

Добавлено: 15 фев 2016, 21:33
Олег
А в таком варианте работать не будет?

Меню для семисегментного индикатора

Добавлено: 16 фев 2016, 00:31
vlad
не совсем понятно. вот тема http://forum.flprogwiki.ru/viewtopic.php?f=18&t=551 не совсем понятно как решилась проблема.  я не совсем уверен что правильно все понял. платки дешевые заказал на али, но они пока не пришли. буду пробовать как придут.

Меню для семисегментного индикатора

Добавлено: 16 фев 2016, 17:21
rf80
Дело в том что элемент TOF  тут не работает еденичка пропадает и сразу в ноль уходит сигнал. Его нужно менять на SP таймер пользовательский блок но с ним он не хочет компилироваться с ним я не разбирался.
Ну и похоже в ноль сбрасывает DMS при ИЛИ

Меню для семисегментного индикатора

Добавлено: 16 фев 2016, 18:34
Олег
Да, ошибка была, сброс шел с последнего элемента И после демультиплексора. Исправил, теперь вроде должно быть в порядке.

Меню для семисегментного индикатора

Добавлено: 16 фев 2016, 21:29
rf80
ТОФ работать там не может.
После отпускания кнопки сигнал тоже прерывается
есть вот такая схема но я пока не соображу как запустить перезапуск при нажатии кнопок нужен резет
таймеру