блок меню в flprog

Пример работы с блоками меню в FLProg

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Для данной реализации нам понадобится:

Для начала добавим блок Другое>меню>основной блок меню. В данном блоке создадим 4 пункта меню с настройками как на скрине:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Так как у нас реле, поэтому мы и выбрали тип переменной boolean.

Далее переходим во вкладку управление меню и ставим галочки как на скрине:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Ну и последний штрих во вкладке управление значением:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Далее добавим блок Другое>Меню>Значение пункта меню и установим следующие параметры:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

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

Далее нужно создать и входы и выходы и одну переменную, добавить блоки работы дисплея 1602 и в итоге должна получиться вот такая схема:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Весь проект FLProg можно скачать по ссылке: https://yadi.sk/d/5tS08BHH3QFGNc

Ну и подробнее о добавлении каждого блока рассказано в видео:

Источник

Создание меню с помощью программы FLProg

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Добрый день. В программе FLProg начиная с версии 2.1. появились блоки конструктора меню. В данном уроке будет рассмотрено создание меню с помощью данных блоков.

Для того что бы было интереснее рассмотрим реальную задачу. Соберём блок контроля температуры, в который будет входить датчик температуры, нагреватель и вентилятор. Кроме того включение вентилятора или нагревателя будет сопровождаться звуковым сигналом. С помощью меню будем настраивать пороги включения и выключения устройств и необходимость звукового сигнала. Для упрощения отладки датчик температуры для начала будем симулировать с помощью переменного резистора.

Первый вариант устройства будет состоять из:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Двух релейных блоков:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

И активного зуммера:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Вот принципиальная схема устройства

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Рассмотрим каждую плату по отдельности.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате анализируется сигнал кнопок LCD Keypad Shield и формируются соответствующие сигналы. Анализ производится с помощью пользовательского блока 5Bin1. Создание данного блока рассматривается в этом уроке, там же можно скачать этот блок.

Поскольку кнопок на шилде маловато, расширим возможности кнопки “Select”.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Данная схема работает следующим образом. При коротком нажатии на кнопку формируется импульс «Зайти в меню», при длительном (длительностью более уставки таймера TON), формируется импульс «Выйти из меню».

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате формируется сигнал активации меню. Таймер TON необходим для защиты от случайного формирования этого сигнала при старте контроллера. Ну и непосредственно плата с основным блоком меню.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В описании блока меню (вкладка «Информация» редактора блока) я постарался максимально полно описать работу блока. Рассмотрим настойки блока в данном конкретном случае.

Вкладка – «Дерево меню»:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Дерево меню состоит из двух групп меню для настроек температур включения и выключения нагревателя и вентиляции, а так же одиночного пункта для управления активностью звука. Вообще данный блок позволяет строить меню любой сложности и вложенности. Главное что бы хватило памяти контроллера.

Настройка группового пункта меню.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Настройки пунктов настроек температуры.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Немного уточню по поводу стартового значения в EEPROM. Это значение запишется в EEPROM в начале первого цикла после загрузки программы в контроллер. Это произойдёт только один раз после каждой новой загрузки программы в контроллер. Остальные пункты меню связанные с температурой аналогичны этому.

Настройки пункта меню управления звуком:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Тексты для True и False будут выводится на выход ValStr при соответствующих значениях пунктов меню.

Закладка – «Управление меню»:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Тут вроде всё интуитивно понятно.

Закладка – «Управление значением»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В выбранном режиме изменений при кратковременном нажатии на кнопку изменения значения оно изменяется на величину заданного шага. Если удерживать данную кнопку более 2 секунд значение будет изменяться на величину заданного шага каждые полсекунды. Если продолжать удерживать кнопку ещё в течении 2 секунд период изменения значения уменьшится до 200 ms.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Выход «Активно главное меню» необходимо для формирования сигнала «Активация меню». Последующие две платы практически одинаковы, и в особых объяснениях не нуждаются.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Обращу только внимание на входы CanValUp у блоков MenuValue. При высоком уровне на этом входе значение на выходе Q соответствует значению выбранного пункта меню. По заднему фронту на этом входе значение на выходе «замораживается» до появления на этом входе высокого уровня. Это необходимо для того, что бы значение не изменялось до окончании его редактирования (закрытия меню).

Оставшиеся платы так же просты и не нуждаются в пояснениях.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Теперь немного «прокачаем» проект. Заменим LCD Keypad Shield на матричную клавиатуру 4х4 и дисплей 4х20 подключенный по I2C.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Это позволит задавать значение не пошагово, а простым вводом цифр. Кроме того это позволит сделать вход в меню по паролю. Изменённая схема проекта.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Рассмотрим изменённые платы

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Используется стандартный блок опроса матричной клавиатуры из библиотеки элементов.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

При нажатии кнопки «*» активируется меню. Только на этот раз не основное меню, а меню для ввода пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Настройки парольного меню

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Данное меню состоит из одного пункта, служащего для ввода пароля. Использован тип Long Integer для увеличения количества символов пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате проверяется правильность ввода пароля. При совпадении введённого пароля и сохранённого в основном меню включается основное меню. При выходе из меню в значение вводимого пароля записывается 0 (подготовка к следующему вводу)

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В основное дерево меню добавлен пункт для настройки сохранённого пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Так же изменения коснулись закладки «Управление значением»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Управление значением переведено на непосредственный ввод цифр. Остальные платы не изменились.

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

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Блок «ScanOneWare» служит для автоматического определения адреса датчика. Это позволяет заменить в случае необходимости датчик температуры без перепрошивки контроллера.

Схема с LCD Keypad Shield.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Схема с матричной клавиатурой

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Ну, вот и всё, если что то не понятно, задавайте вопросы в комментариях — отвечу.

Источник

Создание меню с помощью программы FLProg

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Добрый день. В программе FLProg начиная с версии 2.1. появились блоки конструктора меню. В данном уроке будет рассмотрено создание меню с помощью данных блоков.

Для того что бы было интереснее рассмотрим реальную задачу. Соберём блок контроля температуры, в который будет входить датчик температуры, нагреватель и вентилятор. Кроме того включение вентилятора или нагревателя будет сопровождаться звуковым сигналом. С помощью меню будем настраивать пороги включения и выключения устройств и необходимость звукового сигнала. Для упрощения отладки датчик температуры для начала будем симулировать с помощью переменного резистора.
Первый вариант устройства будет состоять из:

Arduino Uno:
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

LCD Keypad Shield
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Двух релейных блоков:
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

И активного зуммера:

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Вот принципиальная схема устройства

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Для начала целиком проект.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Рассмотрим каждую плату по отдельности.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате анализируется сигнал кнопок LCD Keypad Shield и формируются соответствующие сигналы. Анализ производится с помощью пользовательского блока 5Bin1. Создание данного блока рассматривается в этом уроке, там же можно скачать этот блок.

Поскольку кнопок на шилде маловато, расширим возможности кнопки “Select”.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Данная схема работает следующим образом. При коротком нажатии на кнопку формируется импульс «Зайти в меню», при длительном (длительностью более уставки таймера TON), формируется импульс «Выйти из меню».

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате формируется сигнал активации меню. Таймер TON необходим для защиты от случайного формирования этого сигнала при старте контроллера. Ну и непосредственно плата с основным блоком меню.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В описании блока меню (вкладка «Информация» редактора блока) я постарался максимально полно описать работу блока. Рассмотрим настойки блока в данном конкретном случае.

Вкладка – «Дерево меню»
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Дерево меню состоит из двух групп меню для настроек температур включения и выключения нагревателя и вентиляции, а так же одиночного пункта для управления активностью звука. Вообще данный блок позволяет строить меню любой сложности и вложенности. Главное что бы хватило памяти контроллера.

Настройка группового пункта меню.
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Настройки пунктов настроек температуры.
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Немного уточню по поводу стартового значения в EEPROM. Это значение запишется в EEPROM в начале первого цикла после загрузки программы в контроллер. Это произойдёт только один раз после каждой новой загрузки программы в контроллер. Остальные пункты меню связанные с температурой аналогичны этому.

Настройки пункта меню управления звуком:
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Тексты для True и False будут выводится на выход ValStr при соответствующих значениях пунктов меню.

Закладка – «Управление меню»:
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Тут вроде всё интуитивно понятно.

Закладка – «Управление значением»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В выбранном режиме изменений при кратковременном нажатии на кнопку изменения значения оно изменяется на величину заданного шага. Если удерживать данную кнопку более 2 секунд значение будет изменяться на величину заданного шага каждые полсекунды. Если продолжать удерживать кнопку ещё в течении 2 секунд период изменения значения уменьшится до 200 ms.

Закладка «Выхода»
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Выход «Активно главное меню» необходимо для формирования сигнала «Активация меню». Последующие две платы практически одинаковы, и в особых объяснениях не нуждаются.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Обращу только внимание на входы CanValUp у блоков MenuValue. При высоком уровне на этом входе значение на выходе Q соответствует значению выбранного пункта меню. По заднему фронту на этом входе значение на выходе «замораживается» до появления на этом входе высокого уровня. Это необходимо для того, что бы значение не изменялось до окончании его редактирования (закрытия меню).

Оставшиеся платы так же просты и не нуждаются в пояснениях.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Теперь немного «прокачаем» проект. Заменим LCD Keypad Shield на матричную клавиатуру 4х4 и дисплей 4х20 подключенный по I2C.
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Это позволит задавать значение не пошагово, а простым вводом цифр. Кроме того это позволит сделать вход в меню по паролю. Изменённая схема проекта.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Рассмотрим изменённые платы

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Используется стандартный блок опроса матричной клавиатуры из библиотеки элементов.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

При нажатии кнопки «*» активируется меню. Только на этот раз не основное меню, а меню для ввода пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Настройки парольного меню

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Данное меню состоит из одного пункта, служащего для ввода пароля. Использован тип Long Integer для увеличения количества символов пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате проверяется правильность ввода пароля. При совпадении введённого пароля и сохранённого в основном меню включается основное меню. При выходе из меню в значение вводимого пароля записывается 0 (подготовка к следующему вводу)

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В основное дерево меню добавлен пункт для настройки сохранённого пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Так же изменения коснулись закладки «Управление значением»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Управление значением переведено на непосредственный ввод цифр. Остальные платы не изменились.

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

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Блок «ScanOneWare» служит для автоматического определения адреса датчика. Это позволяет заменить в случае необходимости датчик температуры без перепрошивки контроллера.

Источник

Создание меню с помощью программы FLProg

Первый вариант устройства будет состоять из:
Arduino –Uno

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

двух релейных блоков

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

и активного зуммера

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Вот принципиальная схема устройства

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Рассмотрим каждую плату по отдельности.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате анализируется сигнал кнопок LCD Keypad Shield и формируются соответствующие сигналы. Анализ производится с помощью пользовательского блока 5Bin1. Создание данного блока рассматривается в этом уроке, там же можно скачать этот блок.

Поскольку кнопок на шилде маловато, расширим возможности кнопки “Select”.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Данная схема работает следующим образом. При коротком нажатии на кнопку формируется импульс «Зайти в меню», при длительном (длительностью более уставки таймера TON), формируется импульс «Выйти из меню».

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате формируется сигнал активации меню. Таймер TON необходим для защиты от случайного формирования этого сигнала при старте контроллера.
Ну и непосредственно плата с основным блоком меню.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В описании блока меню (вкладка «Информация» редактора блока) я постарался максимально полно описать работу блока. Рассмотрим настойки блока в данном конкретном случае.

Вкладка – «Дерево меню»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Дерево меню состоит из двух групп меню для настроек температур включения и выключения нагревателя и вентиляции, а так же одиночного пункта для управления активностью звука. Вообще данный блок позволяет строить меню любой сложности и вложенности. Главное что бы хватило памяти контроллера.

Настройка группового пункта меню.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Настройки пунктов настроек температуры.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Немного уточню по поводу стартового значения в EEPROM. Это значение запишется в EEPROM в начале первого цикла после загрузки программы в контроллер. Это произойдёт только один раз после каждой новой загрузки программы в контроллер.
Остальные пункты меню связанные с температурой аналогичны этому.

Настройки пункта меню управления звуком

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Тексты для True и False будут выводится на выход ValStr при соответствующих значениях пунктов меню.

Закладка – «Управление меню»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Тут вроде всё интуитивно понятно.

Закладка – «Управление значением»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В выбранном режиме изменений при кратковременном нажатии на кнопку изменения значения оно изменяется на величину заданного шага. Если удерживать данную кнопку более 2 секунд значение будет изменяться на величину заданного шага каждые полсекунды. Если продолжать удерживать кнопку ещё в течении 2 секунд период изменения значения уменьшится до 200 ms.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Выход «Активно главное меню» необходимо для формирования сигнала «Активация меню».
Последующие две платы практически одинаковы, и в особых объяснениях не нуждаются.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Обращу только внимание на входы CanValUp у блоков MenuValue. При высоком уровне на этом входе значение на выходе Q соответствует значению выбранного пункта меню. По заднему фронту на этом входе значение на выходе «замораживается» до появления на этом входе высокого уровня. Это необходимо для того, что бы значение не изменялось до окончании его редактирования (закрытия меню).

Оставшиеся платы так же просты и не нуждаются в пояснениях.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Теперь немного «прокачаем» проект. Заменим LCD Keypad Shield на матричную клавиатуру 4х4 и дисплей 4х20 подключенный по I2C.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog
блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Это позволит задавать значение не пошагово, а простым вводом цифр. Кроме того это позволит сделать вход в меню по паролю.
Изменённая схема проекта.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Рассмотрим изменённые платы

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Используется стандартный блок опроса матричной клавиатуры из библиотеки элементов.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

При нажатии кнопки «*» активируется меню. Только на этот раз не основное меню, а меню для ввода пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Настройки парольного меню

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Данное меню состоит из одного пункта, служащего для ввода пароля. Использован тип Long Integer для увеличения количества символов пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

На этой плате проверяется правильность ввода пароля. При совпадении введённого пароля и сохранённого в основном меню включается основное меню. При выходе из меню в значение вводимого пароля записывается 0 (подготовка к следующему вводу)

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

В основное дерево меню добавлен пункт для настройки сохранённого пароля.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Так же изменения коснулись закладки «Управление значением»

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Управление значением переведено на непосредственный ввод цифр.
Остальные платы не изменились.

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

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Блок «ScanOneWare» служит для автоматического определения адреса датчика. Это позволяет заменить в случае необходимости датчик температуры без перепрошивки контроллера.

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Схема с матричной клавиатурой

блок меню в flprog. Смотреть фото блок меню в flprog. Смотреть картинку блок меню в flprog. Картинка про блок меню в flprog. Фото блок меню в flprog

Схема с LCD Keypad Shield и резистором

Схема с LCD Keypad Shield и датчиком

Схема с матричной клавиатурой и резистором

Схема с матричной клавиатурой и датчиком

Ну, вот и всё, если что то не понятно, задавайте вопросы в комментариях — отвечу.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *