Flprog управление подсветкой дисплея

Управление яркостью подсветки дисплея Nextion в FLProg

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

Для начала добавим блок получения данных с дисплея Nextion. Он называется Nextion Get Attr.

Находится данный блок в программе FLProg: Панель Nextion HMI -> Элементы -> Получить Параметр

Настройка данного блока выглядит следующим образом:

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

Далее выбираем страницу на которой у Нас добавлен ползунок. Выберем имя страницы page0 и id страницы 0.

Ну и создадим элемент Ползунок (Slider) , пропишем ему его имя в панели Nextion и id.

Параметр, выберем (val) и выберем период опроса каждую секунду.

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

Далее добавим блок Nextion Lighting отвечающий за подсветку дисплея. Он находится в Панель Nextion HMI -> Система -> Установить уровень подсветки

Настройка данного блока выглядит вот так:

Главное в этом блоке выбрать раннее созданную панель Nextion и заменить константу, на вход.

После этого нужно добавить блок Number Change который находится Базовые элементы -> Детектор изменения числа

И все это соединить по такой схеме:

После чего загрузить все в Ардуино и наслаждаться изменением яркости нашего дисплея.

Источник

Управление освещением V2.1

Включение и отключение освещения происходит в течении 10 минут плавно, т.к. в течении каждой минуты так-же происходит увеличение и уменьшение яркости.

Настроек блок не имеет, нужно только установить константу «время включения» и «время выключения»

ОПИСАНИЕ АВТОРА В БЛОКЕ:
======================================================================================================
Блок предназначен для программирования плавного Включения и Отключения освещения, управляется от часов реального времени.
Между периодами «Вкл» и «Выкл» шим равна 255, т.е. полная яркость, между «Выкл» и «Вкл» шим равна 0, т.е. отключено.

ВНИМАНИЕ!
Заданное время включения (Вкл) должно быть обязательно меньше времени выключения (Выкл).
Интервал работы от задания часов Вкл и Выкл от 1 час до 23 часов.
0 часов не поддерживает.

Задание параметров:
«in-H» — подключение к часам реального времени (часы).
«in-M» — подключение к часам реального времени (минуты).
«in-S» — подключение к часам реального времени (Секунды).
«ON-H» — Задаете параметр (константа) время включения освещения. Можно задать только время в часах в 24-х часовом формате (без минут).
«OFF-H» — Задаете параметр (константа) время выключения освещения. Можно задать только время в часах в 24-х часовом формате (без минут).
«OUT-Shim» — Выход блока для подключения «Выход ШИМ»
Время между включением (Вкл) и выключением (Выкл) можно задать с периодом не менее одного часа.
Время включения и выкключения активируется с 0 минут, т.е. если задано время включения 8 часов, то включение активируется в 8 часов 0 минут.
Если задано время выключения 22 часа, то выключение активируется в 22 часа 0 минут.
Нарастание и снижение яркости включения и выключения происходит с первой по пятнадцатую минуту с шагом в 10 шим, задается в «параметры» — «MUL».
Включение: Плавное нарастание яркости происходит в течение 10 минут (с 0 по 10 минуту (включительно).
Выключение: В обратном порядке.

Данный блок может применятся для управления освещения птицеферм, аквариумов и т.д.
Резервное питание для Arduino не требуется, т.к. не использованы счетчики.

Источник

Урок 18 Блоки Семисегментного индикатора и управления подсветкой в программе Flprog

Описание

В восемнадцатом уроке разбираем работу блоков управления семисегментным индикатором и управления подсветкой дисплея на чипе HD44780 в удобной графической программе Flprog без написания кода.
Схемы, скетчи: [ссылка]
Сайт программы Flprog: flprog.ru

. Ссылки ниже открывать в браузере «Гугл Хром» в «Яндекс браузере» могут не открываться.

Семисегментный индикатор: [ссылка]

Дисплей с тёмной подсветкой: [ссылка]
Дисплей с тёмной подсветкой (ebay.com): [ссылка]
Двухстрочный дисплей(синий, зелёный): [ссылка]
Четырёхстрочный дисплей: [ссылка]
Дисплей на выбор: [ссылка]

Датчик газа и дыма MQ-2: [ссылка]

Десяти сегментный индикатор: [ссылка]

Модуль Вольт-Амперметра INA-219: [ссылка]

Электромагнитный клапан: [ссылка]
Тумблера со светодиодами: [ссылка]

Погружной водяной насос: [ссылка]

GSM модуль SIM800L: [ссылка]
Понижающий преобразователь на 3А: [ссылка]

Подставка — Держатель для дисплея: [ссылка]

Датчик температуры DS18B20: [ссылка]

Датчик освещённости (Фоторезистор): [ссылка]

Arduino UNO на выбор: [ссылка]
Arduino NANO: [ссылка]
ArduinoPro Mini: [ссылка]
USB UART/TTL (конвертер прошивальщик): [ссылка]
Микроконтроллер NODE MCU: [ссылка]

Arduino sensor shield v5.0: [ссылка]
Arduino sensor shield на выбор: [ссылка]
Обзор — Arduino sensor shield v5.0: [ссылка]

Платформа для Arduino: [ссылка]

ИК Приёмник: [ссылка]
ИК Пульт: [ссылка]

Часы реального времени Ардуино: [ссылка]

Датчик препятствий: [ссылка]
Датчик препятствий на выбор: [ссылка]

Датчик газа и дыма MQ-2: [ссылка]
Датчик газа и дыма на выбор: [ссылка]

Дальномер HC-SR04: [ссылка]
Дальномер HY-SRF05: [ссылка]

Люксметр: [ссылка]
Люксметр на выбор: [ссылка]

Датчик индуктивности: [ссылка]
Датчик индуктивности на выбор: [ссылка]

Датчик BMP180 (Барометр): [ссылка]

Твердотельные реле: [ссылка]
Контактные реле: [ссылка]
Реле на выбор: [ссылка]

Макетные платы: [ссылка]
Макетные платы на выбор: [ссылка]

Драйвер двигателей: [ссылка]
Драйвер двигателей на выбор: [ссылка]

Мотор с редуктором: [ссылка]
Мотор с редуктором на выбор: [ссылка]

Колёса для Ардуино: [ссылка]
Колёса для Ардуино на выбор: [ссылка]
Платформа на гусиницах для Arduino на выбор: [ссылка]

RGB Светодиоды модульные: [ссылка]
RGB Светодиоды на выбор: [ссылка]

Модуль EEPROM AT24C256: [ссылка]
Модуль EEPROM на выбор: [ссылка]

Транзисторный ключ
MOSFET 5A: [ссылка]
MOSFET на 15А: [ссылка]
MOSFET на 220V: [ссылка]
MOSFET на выбор: [ссылка]

Стартовый набор для начинающих ардуинщиков обзор [ссылка] Ссылки на покупку под видео

Источник

FLProg – Самостоятельная интеграция в программу кастомных контроллеров

На Хабре достаточно давно не освещался проект FLProg. Это связанно с отсутствием времени на написание статей, да и моими собственными личными проблемами. Но проект не умер, он живёт и развивается. В среднем раз в месяц выходит очередная версия программы. Со времени последней публикации была полностью переделана отрисовка схемы (благодаря этому были устранены фризы при отрисовке), появилась система Cross Reference для проекта, и система анализа проекта на ошибки. Непосредственно сам код программы, был перенесён на более свежую версию языка программирования. Благодаря этому в положительную (с моей точки зрения конечно, ну и пользователи меня поддерживают) сторону изменился интерфейс программы. Добавились многие интересные блоки. Реализовано масштабирование схемы и поиск блоков.

Читайте так же:  Как выявить неисправный светодиод в светильнике

Но все равно основной проблемой проекта остаётся то, что разработчиком программы является один человек (это я), а количество различных плат контроллеров, сенсоров, датчиков, плат расширения выпускаемых как китайскими, так в последнее время и нашими производителями растет постоянно. И пользователям хочется их попробовать, или использовать в своих проектах. Для периферийных устройств, в своё время, эта проблема более менее была решена мной с помощью создания редактора пользовательских блоков. Данный шаг как говорится «стрельнул», и теперь, практически на большинство существующих периферийных плат, в интернете, или на форуме программы, можно найти соответствующий пользовательский блок. Ну, или на том же форуме (или в группе в Контакте) попросить у местных гуру написать такой. Обычно можно, так или иначе, договорится.

Теперь пришла пора решать вторую проблему – это платы контроллеров.

Недавно вышла бэта версия программы с номером 6.0. В этой версии реализован редактор пользовательских описаний контроллеров. Как и с пользовательским блоками, описания можно группировать в библиотеки, сохранять в виде файла как отдельные описания, так и целые библиотеки и обмениваться ими.

Этим постом я начинаю серию как минимум из двух постов, в которых рассмотрим, как пользоваться этим редактором. В первой статье я с разрешения shiotiny попробую описать его плату ShIoTiny. Во второй статье попробуем виртуально придумать аналог настоящего промышленного контроллера, и описать его.

Открываем программу FLProg. В меню «Инструменты» выбираем пункт «Редактор пользовательских описаний контроллеров».

Открывается окно редактора описаний.

Пользовательские описания можно объединять в библиотеке с любой глубиной вложенности. Поэтому сначала создадим библиотеку описаний.

После чего создадим в библиотеке описание контроллера.

При создании описания контроллера мы сразу попадаем на ветку общих параметров.

Здесь мы можем изменить имя, задать тип центрального процессора, задать размер EEPROM, изменить номер версии описания.

Поскольку плата ShloTiny сделана на базе контроллера ESP8266 то его и выбираем. При выборе контроллера автоматически проставляется соответствующий ему объём EEPROM. При необходимости это значение можно изменить. Номер версии по умолчанию для нового описания устанавливается 1.

В будущем при изменении существующих описаний, рекомендуется изменять его в сторону увеличения. При использовании данного описания в проекте, программа будет сравнивать версию описания в проекте и в библиотеке. Если номер версии описания в библиотеке больше чем в проекте, в меню «Проект» программы появится пункт для обновления описания в программе. Если наоборот – то появится пункт для обновления описания в библиотеке. Ну а если в библиотеке вообще не будет найдено описания контроллера применяющегося в проекте – в том же меню появится пункт для внесения описания из проекта в библиотеку.

Так же в этой ветке можно написать текстовое описание контроллера, помогающее при его выборе.

Для применения внесённых изменением перед переходом на другую ветку параметров контроллера необходимо нажать кнопку «Применить». Если этого не сделать, изменения не будут сохранены.

Теперь рассмотрим принципиальную схему платы ShloTiny.

У платы имеется три цифровых входа, три цифровых выхода, аналоговый вход, и вход для сенсора. Итого восемь выводов платы.

Переходим в редакторе на ветку «Выводы контроллера» и задаём количество выводов, не забывая после этого нажать кнопку «Применить».

Программа сформирует необходимое количество выводов. Переходим на первый из них.

На этой ветке, можно прописать альтернативное имя вывода, которое будет выводится в программе. В случае его отсутствия, в программе будет выводится надпись PinN где N номер вывода в списке выводов. Я рекомендую записывать в поле альтернативного имени надпись к нему на плате. Это облегчит понимание, к какому выводу производится обращение. Для описываемой платы занесём туда значение Input1 в соответствие с принципиальной схемой. Так в этой ветке можно прописать индивидуальное описание вывода, например для указания особенностей его применения. При необходимости, так же можно задать псевдоним вывода, который будет выводится в программе в скобках после названия вывода.

После внесения изменений не забываем нажать кнопку «Применить». По такому же принципу поименуем остальные выводы.

В той же ветке основных параметров вывода к нему добавляются выполняемые им функции.

Каждому выводу можно назначить следующие функции.

  • I2C – функция одного из выводов шины I2C (SDA или SCL).
  • SPI – функция одного из выводов шины SPI (MISO, MOSI, SCK, SS).
  • UART – функция одного из выводов интерфейса UART (RX или TX).
  • Функция аналогового входа
  • Функция аналогового выхода (в программе FLProg пока не используется, задел на будущее).
  • Функция цифрового входа/выхода.

Назначим выводу 1 функцию цифрового входа/выхода. При назначении выводу новой функции (ещё не настроенной) в дереве контроллера появится ветка «Ошибки» и весь путь до ветки некорректной функции окрасится красным. На ветке «Ошибки» можно посмотреть список ошибок найденных в описании контроллера.

В данном случае на вводе 1 в функции «Цифровой вход/выход» не задан номер этого ввода как цифрового. Переходим на ветку данной функции (в будущем я планирую сделать прямой переход на нужную ветку при клике на ошибку).

Согласно принципиальной схеме платы вывод «Input1» подключен к пину GPIO2 контроллера. Это значение вводим в поле «Номер цифрового входа». При компиляции проекта это значение будет вставляться в код. Поскольку использование данного ввода в качестве вывода не предусмотрено, то снимаем чекбокс «Может использоваться как выход». Как всегда нажимаем кнопку «Применить». Таким же образом настраиваем остальные два цифровых входа. Затем переходим к выводу аналогового входа «ADC1» и добавляем ему функцию «Аналоговый вход».

В настройках этой функции необходимо указать номер данного вывода как аналогового входа. В соответствии со схемой это 0 (в ESP8266 он один).

Затем переходим к настройке вывода «1WIRE». Здесь добавляем к нему функцию цифрового входа/выхода, но запрещаем его использование как входа, так и как выхода. В результате он будет доступен для выбора только в блоках сенсоров, и не доступен при создании входов, выходов.

Читайте так же:  Как снять точечный светильник с натяжного потолка чтобы слить воду

Настройка выходов «К1» — «К3» аналогична настройкам входов «Input1» – «Input3» только в случае выходов мы запрещаем им использоваться в качестве входа.

Переходим к ветке «Изображения». В ней мы можем добавить загружаемые в описание контроллера изображения, например с внешним видом контроллера, распиновкой и т.д.

Обратите внимание, что изображения грузятся непосредственно в описание контроллера, а оно храниться в проекте, созданном с его использованием. Поэтому не стоит загружать изображения большого размера. Это повлечёт за собой рост размера проекта, и скажется на скорости его открытия.

Изображение добавляется с помощью кнопки «Добавить изображение».

После выбора и загрузки изображения (поддерживается только формат PNG), для каждого изображения создается отдельная ветка в дереве. В этой ветке можно задать имя для загруженного изображения, которое будет показываться в информации о контроллере.

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

Переходим к ветке «Стандартные блоки».

На этой ветке показаны блоки, которые могут быть представлены в библиотеке стандартных блоков программы в соответствии с текущими настройками программы. Что это значит. Часть стандартных блоков программы предназначены только для определённых видов ЦП. И их наличие зависит от выбранного процессора. Так же блоки, рассчитанные на работу с SPI, I2C, UART появятся в этом списке, только если на выводах контроллера будут добавлены соответствующие функции. Блоки, рассчитанные на работу с EEPROM, появятся, только если размер EEPROM заданный на ветке общих параметров контроллера будет больше нуля, или на выводах контроллера будет добавлена функция I2C. По умолчанию, все блоки в библиотеке запрещены к использованию (отмечены оранжевым цветом). Разрешить к использованию можно как отдельный блок, так и целиком папку блоков, выделив необходимую ветку и нажав кнопку «Разрешить», или из контекстного меню.

При разрешении блока или папки блоков к показу в программе они окрашиваются в черный цвет.

Запрещение к показу блока или отдельной папки производится аналогично.

В папке, в которой разрешены к показу не все блоки, отмечаются тремя звездочками перед именем и после.

Запретим к использованию в программе моторы, часы реального времени, дисплеи, блоки ИК управления, датчики (кроме датчиков DS18B20 и DHT22 –поскольку разработчик платы пока заявил только об их поддержке), микросхемы расширений и пьезо динамик.

То же самое сделаем и для языка LAD

Не забываем после внесения изменений применять их.

Остальные ветки описания контроллера мы рассмотрим в следующем посту, пока текущих настроек достаточно для использования конкретно этой платы в программе FLProg.

Пока только коротко скажу что ветка «Специальные блоки» служит для загрузки в описание пользовательских блоков, которые будут показаны в библиотеке стандартных блоков в программе при использовании данного контроллера. Ветка «Специальный код» служит для записи кода, который всегда будет вставляться в компилируемы код, а ветка «Специальные библиотеки», служит для загрузки в описание контроллера библиотек, которые будут, выгружается в папку \libraries ArduinoIDE, с которой работает программа.

После всех изменений, сохраняем библиотеку описаний контроллера.

Теперь попробуем использовать созданное нами описание контроллера.
В программе FLProg создаем новый проект для контроллера.

Открываем окно выбора контроллера.

И выбираем созданное нами описание.

При выборе контроллера можно посмотреть его изображения и при необходимости сохранить нужное в файл.

Так же можно посмотреть и остальные параметры

После выбора контроллера подтверждаем его выбор:

В результате откроется основное рабочее окно проекта, настроенное в соответствии с выбранным контроллером.

В цели данного поста не входит задача обучения работы с программой FLProg. Это достаточно хорошо описано в моих предыдущих постах, на сайте проекта, и на форуме проекта. Кроме того сейчас на ютубе уже достаточно много каналов, где выложены видео уроки по работе с программой. Например, очень хороший канал «Ключь к Ардуино», как раз сейчас ведёт серию уроков, с очень хорошей подачей материала.

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

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

Затем создаем цифровой выход. Здесь так же доступны только разрешённые выводы.

Собираем схему что бы при нажатии кнопки на Input1 (Вход 1) включалось реле К1 (Реле1).
Так же вытаскиваем на схему в отдельную плату блок для чтения информации с датчика DS18B20.

Заходим в настройки блока. При создании новой шины OneWire мы видим, что для выбора доступны все цифровые входы/выходы. Это недоработка в версии 6.0. Но поскольку, эта версия всё таки имеет статус бэта, то это простительно. В версии 6.1 будет дана возможность запрета использования пина в качества датчика, сенсора или для микросхем расширения. Кроме того в следующем посту я расскажу другой способ решения этой проблемы. Пока выбираем вывод 1WIRE.

Настраиваем датчик для задания адреса через массив.

Вставляем новую плату перед первой, и вытаскиваем на неё блок «Сканирование шины OneWire».

Настраиваем его на ту же шину OneWire, и на тот же массив, на которые настроен блок чтения с датчика DS18B20.

Собираем схему однократного запуска сканирования шины при запуске контроллера, используя блок R триггера (выделение переднего фронта).

На плате с блоком чтения данных с датчика DS18B20 собираем схему включения/отключения реле с гистерезисом. Для этого используем два компаратора, и SR триггер. Благодаря этой схеме, реле 2 будет включатся при понижении температуры ниже 10 градусов, и выключаться при повышении температуры выше 20 градусов.

Запускаем схему на компилирование.

В результате полученный код откроется в Arduino IDE. В качестве платы, выбираем NodeMCU, на которой установлен тот же чип, что и на ShloTiny. Проверка кода показывает, что он корректен, и его можно загружать.

На этом, данный урок закончим, в следующем посту попробуем описать что-то более серьёзное и приближенное к «настоящим» промышленным контроллерам.

Источник

Оцените статью
Охраны в доме нет
Adblock
detector