4G / NRF24L01 ESP32 ESP8266 flprog блоки для конвертация типов integer. БЛОК ДЛЯ ОТПРАВКИ ПИСЕМ НА ПОЧТУ И ЗАПИСЬ ДАННЫХ НА ХОСТИНГ ФАЙЛЫ В АРХИВЕ get.php people.txt cgi-b БЛОКИ ДЛЯ РАДИО ПЕРЕДАТЧИКА LORA RH_RF95 Блок PID регулятора составлен на базе библиотеки Arduino PID Library - Version 1.1.1 Блок графически отображает уровень сигнала на входе mysignal Блок для DS3231 Sleep Timer - спящий режим и пробуждение по будильнику через прерывание DS3231 Блок для En_AP - включает автоматическое включение точки доступа в случае отсутствия подключения в р Блок для FM стерео Радио модуль RDA5807M Блок для INA219 - вольтметр и амперметр с протоколом i2c Блок для Max72xx бегущая строка Блок для детектирования попадания текущего времени в указанный временной интервал Блок для дисплея на чипе TFT7735 Ushakov Блок для измерения температуры термистором Блок для компаратор с гистерезисом для нагревателя и холодильника Блок для модуля SIM800L Блок для одна кнопка 3 возможных состояния. 1. Одно нажатие (на выходе 1 Click короткий импульс) 2. Блок для очистка дисплея ардуино flprog Блок для плавного включения шим потребителей Блок для расчета расстояния и курса по координатам двух точек земли Блок для снятия показаний с трансформатора переменного тока Блок для солнца Direction Detector Блок для таймер обратного отсчёта Блок для термопары К-типа max6675 для ESP32 Блок для установки соединения с программой Virtuino Блок служит для создания бегущей строки Блоки разные (прочее блоки) КОДОВЫЙ ЗАМОК Отправки данных на народный мониторинг Простое скользящее среднее ТЕРМОМЕТР Х9С503) блок для чтобы прописать номера телефонов для SIM800 включенных последовательно конвертация типов integer в byte отсчёт в секундах пише

Блок для Выбор тестовых параметров

Выводятся параметры со значениями, определенные в PROGMEM 
для каждого из контроллеров, поддерживаемых  библиотекой RT_HW_BASRE.h.
Упрощает разработку универсальных тестов  под разные типы контроллеров 
разной архитектуры (AVR,ESP8266,ESP32,SAMD21(M0), SAM3X, STM32F1, STM32F4, STM32H7);

Выводимые параметры 
1. Частота процессора.
2. Системная разрядность.
3. Максимальное значение переменной для установленной системнмной разрядности.
4. Напряжение питания контроллера (CPU) в mV.
5. Коэффициент перевода системного значения в напряжение. 
6. Вывод количества задач        диспетчера задач  (по типам задач).
7. Вывод периода вызова задач диспетчера задач  (по типам задач).

Выводятся адреса устройств i2c со значениями, определенные в PROGMEM 
для каждого из контроллеров, поддерживаемых  библиотекой RT_HW_BASRE.h.
Упрощает разработку универсальных тестов  под разные типы контроллеров 
разной архитектуры (AVR,ESP8266,ESP32,SAMD21(M0), SAM3X, STM32F1, STM32F4, STM32H7).

Выводятся номера пинов со значениями, определенные в PROGMEM 
для каждого из контроллеров, поддерживаемых  библиотекой RT_HW_BASRE.h.
Упрощает разработку универсальных тестов  под разные типы контроллеров 
разной архитектуры (AVR,ESP8266,ESP32,SAMD21(M0), SAM3X, STM32F1, STM32F4, STM32H7).
Номера пинов выводятся группами: 
SYS->control (контрольный пин для отслеживаня цикла loop() ), led(светодиод на плате), button(кнопка на плате);
DBG->debug1,debug2,debug3(пины для отладки пользовательских программ);
DI ->di1,di2 (для использовании в тестах);
ADC->adc1,adc2 (для использовании в тестах);
TCH-> tch1,tch2 (для использовании в тестах);
DO ->do1,do2 (для использовании в тестах);
PWM->pwm1,pwm2 (для использовании в тестах);
DAC->dac1,dac2  (для использовании в тестах);

 

Блок для РЕГИСТРЫ РАСШИРЕНИЯ hc595, mcp23x017
Быстрый блок вывода байта в устройство 74HC595 (AVR,ESP,SAMX,SAMD21,STM32 и др., поддерживаемые  библиотекой RT_HW_BASE.h).
Используемые библиотеки: RT_HW_BASE.h.
1.Устройство может быть подключено через два интерфейса:
  аппаратный SPI. Используются два аппаратных пина SPI (clk,mosi) и один пин cs, который выбирается в настройках.
                            Также может быть выбран номер используемой шины SPI (0,1,2,3) [ESP32,STM32 и др.]  (default=0);
  программный SPI (SSPI), через 3 пина clk,mosi,cs, которые выбираются в настройках.
2.Используемые пины могут могут быть заданы тремя способами:
        тестовые[автоматически выбираемые под тип контроллера];
        пользовательские (в строке параметра);
        через входы блока.
3.Пины проверяются на соответствие функциональным требованиям. 
   Если задан недопустимый пин, то блок записывает в custom код ошибки и в далее не выполняет каких-либо действий.
3.Входные данные могут быть в формате байта(default) или в формате 8-ми бит.  
4.Вывод осуществляется всегда при включении, событии по входу eN 0->1, событии по входу reset 1->0 
        и далее периодически при изменени входного значения.
5.Период вывода может быть выбран из табличных значений (default=50) или задан пользователем.
6.Последовательность вывода битов выбирается наичная со старшего бита(default), либо с маладшего бита.
7.Входы eN(разрешение работы) и reset(сброс текущего значения) настраимваемые (default разрешены).
8.Предусмотрен режим отладки блока (defaul=не разрешен). 
   При включении режима отладки на консоль выводятся параметры блока и его состояние, в т.ч. параметр custom.
9.Измеренное время вывода (для Arduino Nano) по сигналу cs составляет для SPI 4.2мкс, для SSPI 33мкс.

Блок реализует возможности расширителя дискретных сигналоы ввода/вывода MCP23x17:
  MCP23017 - интерфейс i2c;
  MCP23S17 - интерфейс SPI (в разработке).
1.Поддерживается произвольная конфигурация входов/выходов.
2.Поддерживается "горячий" перезапуск.
3.По сравнению с известными библиотеками C++ и блоками FLProg обоспечивает существенно  более высокое быстродействие 
  при минимальной загрузке шины обмена. Особенно это актуально для интерфейса i2c. 
Для обеспечения максимальной производительности по времени рекомендуется использование однотипных портов 
(например, все пины на выход или на вход).
В соответствии с примененным алгоритмом отправка в устройство данных на выходные пины осуществляется только при их изменении
не чаще "периода работы". Этот параметр можно установить "В каждом цикле" в этом случае управление по времени удобно выполнять 
через вход EN.
Период опроса входов можно увеличить параметровм "Множитель опроса входов" - это разгружает шину обмена.

 

СЕНСОРЫ dht22, ds1820, hc-sr04, htu21, bme280, max6675


Сенсор температуры и влажности типа DHT21,DHT22. 
  Блок не поддерживает DHT11 из-за его низкой точности.
Входы:
 1.EN - разрешение работы блока..
 2. Номер пина. Если пин <0, блок не выполняет никаких действий.
Выходы:
  1. ok - флаг готовности устройства и правильных измерений.
  2. T - измеренная температура (-50 - +125 град.С) в формате float с одним знаком после точки. При отсутствии  измерения равна -0.1град.С.
  3. H - измеренная влажности (0-100%) в формате float с одним знаком после точки.  При отсутствии  измерения равна -0.1.
----------------------------------
СЕНСОРЫ dht22, ds1820, hc-sr04, htu21, bme280, max6675
Параметры:
  1. "Разрешение входа EN" - включает/отключает вход EN. Если вход отключен, то работа блока разрешена.
  2. "Период опроса разрешена в мс." 
       По конструктивным особенностям сенсора вызовы не должны быть чаще чем 1 раз в 2000мс.  
       Это значение можно установить равным 0 и управлять периодичностью измерения через вход EN.
  3. "Количество повторов при ошибке измерения".
        После нескольких подряд ошибочных измерений, устанавливаются выходные значения ok=0; T=-0.1; H=0.1. 
Эти значения удерживаются до первого успешного измерения.
Особенности измерения: 
   Запущенный процесс измерения занимает примерно 5,7 мс - в это время процессор занят и 
   реагирует только на аппаратные прерывания, время обработки которых не должны превышать 30-50мкс, 
   в  противном случае может привести к потери сигнала с сенсора и ошибке измерения. 
  Едичные ошибки не  критичны и обрабатыватся блоком.
Используемые библиотеки: RT_HW_DTHx.h версии 4.1 и выше.
-----------------------------------------------------------------
Рекомендации для использовании в FLProg:
 1. Устанавливать на плате, которая вызывается  с периодом менее 1 сек. 
     Обычно это свободная задача, но можно использовать и любой другой тип задачи.

 

1.Осуществляет вывод на консоль:
    1.1.переменных (байт,слово,бит) от 1 до 8 входов с различными форматими.
        Режимы вывода:  в каждом цикле, однократно, по изменению переменных, периодически, 
        периодически при изменении переменных.
    1.2.форматированного текста. Разновидностью этого вывода является вывод горизонтальной линии.
           Режимы вывода:  в каждом цикле, однократно, периодически.
    1.3.параметров использованного контроллера.
           Режимы вывода:  в каждом цикле, однократно, периодически
    1.4.результатов сканирования шины i2c.
           Режимы вывода:  в каждом цикле, однократно, периодически.
2.Все блоки имеют вход разрешения работы EN.xxx.
3.Все блоки имеют выход run -разрешение для работы следующего блока. 
    Этот параметр всегда равен входному параметру EN.xxx.
    Использование EN.xxx и run позволяет выстраивать на плате желаемую последовательность вывода.  

  Сканирует шину i2c и выводит в консоль адреса всех подключенных устройств. 

Выводит на консоль все подключенные пины.

Блок настраивает серийный порт (UART) для консоли.
Без этого блока блоки вывода выполняться не будут.
Блок настраивает UART на скорость работы, определемый параметром RT_HW_Base.console.speed.
Для аппаратного порта по умолчанию скорость=115200.
Для программного порта по умолчанию скорость=9600.
Перед запуском блока этот параметр может быть изменен пользователем.
Входные параметры:
   uart - номер серийного порта для консоли. 
   Этот параметр может быть отключен параметром "Разрешение номера UART"" (false). 
   В этом случае консоль настраивается на uart=0;
Выходные параметры:
 "Заголовок" равен 1 в течении одного цикла после   готовности консоли. 

 

Блоки для ПИНЫ (do,pwm,dac,di,adc,tch,hall)
Запись дискретного пина.
Проверяется физическая доступность пина в контроллере 
и его соответствии выполняемой функции. 
Выполняется через доступ к регистрам (быстрее чем digitalWrite()).

Запись на пин с функцией ШИМ (PWM)  пина.
Проверяется физическая доступность пина в контроллере 
и его соответствии выполняемой функции. 
Выполняется с учетом особенностей контроллеров, в том числе ESP32, STM32.
Входное значение нормализовано до установленной в проекте системной разрядности.
По умолчанию системная разрядность установлена =12, 
соотвественно значение подаваемое на вход должно быть в диапазоне 0-4095.

Запись на аналоговый пин (DAC).
Проверяется физическая доступность пина в контроллере 
и его соответствии выполняемой функции. 
Выполняется с учетом особенностей контроллеров, 
в том числе DUE, ESP32, STM32.
Входное значение нормализовано до установленной в проекте системной разрядности.
По умолчанию системная разрядность установлена =12, 
соотвественно значение подаваемое на вход должно быть в диапазоне 0-4095.

Чтение дискретного пина.
Проверяется физическая доступность пина в контроллере и 
его соответствии выполняемой функции. 
Чтение может быть выполнено с защитой от дребезга.
1. Режим настройки пина:
    пин с подтяжкой к Vcc (вход пин.U);
    плавающий пин            (вход пин.F);
    пин с подтяжкой к GND (вход пин.D).
2. Режим защиты от дребезга:
    без защиты (выход di);
    c защитой с внутренней установкой времени защиты (выход DI);
    c защитой с внешней     установкой времени защиты (выход DI);
3. Время защиты от дребезга устанавливается в мс.

Чтение встроенного в ESP32 датчика Холла.
Выходное значение -128/127.

Чтение сенсорного пина. Только для ESP32.
Проверяется физическая доступность пина в контроллере 
и его соответствии выполняемой функции. 

Чтение аналового пина.
Проверяется физическая доступность пина в контроллере 
и его соответствии выполняемой функции. 
Выходное значение нормализовано до установленной в проекте 
системной разрядности.
По умолчанию системная разрядность установлена =12, 
соотвественно значение с аналогово пина будет в диапазоне 0-4095.

 

 

Блок для вывода процессы и задачи:
В каждый момент времени генерирует только один номер задач разных типов отличный от нуля.
Диспетчер следует размещать в одной из первых плат FLProg (выше только платы  настройки с однократным выполнением).
Эта плата должна вызвываться в каждом цикле loop (т.е. условия вызова платы отсутсвуют).  
Выходы номеров задач:
      control  -  изменяется значение (0/1) в каждом цикле loop() для наблюдения логическим анализатором.
    quick    – номера оперативных задач    (по умолчанию 5 задач,  период смены задачи 10 мс);
    fast        – номера быстрых задач         (по умолчанию 4 задач,  период смены задачи 25 мс);
    slow    – номера медленных задач     (по умолчанию 4 задачи, период смены задачи 250 мс);
    back    – номера фоновых задач        (по умолчанию 5 задач,  период смены задачи 100 мс);
    frdm     - номера свободных задач (без периода) (по умолчанию 25 задач) номера последовательно изменяются 
                в циклах, когда номера предыдущих задач равны 0);
Кол-во задач  могут быть изменены самим блоком или внешним блоком
    (RT_HW_Base.shed.quick.qnt,  RT_HW_Base.shed.fast.qnt,  RT_HW_Base.shed.slow.qnt,  RT_HW_Base.shed.back.qnt).
Периоды задач не изменяются.
Номера задач изменяются циклически. Например для quick ->1,0,2,0,3,0,4,0,5,0  и т.д.)
При одновременной готовности к вызову нескольких типов (quick, fast и т.д.) задач, 
они вызывается по приоритету -> quick, fast, slow, back, frdm. 

Многофункциональный генератор:
1. Генератор событий и меандров.
    Входы: "Разрешение" (подключаемый) [EN], "Полупериод в мс" [time].
    Выходы:"Меандр"(подключаемый) [mean], "Событие" (подключаемый) [event].
2. Генератор импульсов.
    Входы: "Разрешение" (подключаемый) [EN], "Длит.вкл. в мс" (timeON), "Длит.выкл. в мс" (timeOFF).
    Выходы:"Импульс"(pulse).
3. Генератор широтно-импульсного сигнала (ШИМ). 
    Входы:  "Разрешение" (подключаемый), [EN] "Период"(period), "Скважность в %"(w%).
    Выходы: "Широтно-импульсный сигнал" (ШИМ) (pwm).
4. Генератор задач без таймера. 
    Входы: "Разрешение" (подключаемый) [EN], "Кол-во задач" [qnt].
    Выходы: "Номер задачи" [task].
    На выходе task циклично меняются значения от 1 до qnt.
5. Генератор задач с таймером. При EN=1 на выходе task циклично меняются значения от 1 до qnt; 
    Входы: "Разрешение" (подключаемый) [EN], "Период" [period], "Кол-во задач" [qnt].
    Выходы: "Номер задачи" [Task].
    На выходе Task циклично меняются значения от 1 до qnt с периодом=period. 
    Значения устанавливаются на один цикл, остальное время Task=0;
6. Генератор однократной пачки импульсов (меандры)
    (может быть использована для индикации режимов при включении контроллера).
7. Генератор периодической пачки импульсов (меандры).
8. Генератор контрольного сигнала (для контроля цикла loop() логическим анализатором.
9. Генератор секундных импульсов и вычисление моточасов - работает при наличии блока "Диспетчера" в проекте.
10. Делитель входных событий (или передних фронтов импульсов)
    Входы: "Разрешение" (подключаемый) [EN], "Делитель" [div].
    Выходы:"Меандр"(подключаемый) [mean], "Событие" (подключаемый) [event].

 Дешифраторы и конверторы.
Нижепречисленные функции могут быть просто получены и обычными средствами FLProg 
    - реализованы они для удобства создания тестов.
1. Дешифратор на 8 битов: v=0->dc=0;  v=1->dc=1...  v=8->dc=255;       v>0->dc=0;
2. Дешифратор на 16 бит:    v=0->dc=0; v=1->dc=1..  .v=16->dc=65535;  v>0->dc=0;
3. Преобразование тетрады в четыре выхода;
4. Преобразование 16-ти разрядного числа в два 8-ми разрядных числа.

Счетчики:
1.Счетчик "Пила":
    при EN=1     увеличение от порога "Низ" до порога "Верх", 
                сброс до порога "Низ" и повторение цикла.
2.Счетчик "Треугольник":
    при EN=1  увеличение от порога "Низ" до порога "Верх", 
                далее уменьшение до порога "Низ" и повторение цикла.
3.Счетчик "Предел":
    при EN=1     при шаге изменения >0, увеличение от начального значения до +32767,
                при шаге изменения <0, уменьшение от начального значения до -32768;
4.Счетчик "Реверс": 
    при EN+=1     увеличение  до порога "Верх",
    при EN- =1 уменьшение до порога "Низ",
    Если EN+ и EN- одновременно равные 1, значение EN- не обрабатывается.
Примечение: Шаг изменения может присваиваться отрицательное значение. В этом случае 
            Счетчики "Пила", "Треугольник", "Реверс" будут работать с инверсной логикой.

Блок "Фронты" - обработка фронтов входного импульса .
Основные режимы:
1. Выделение переднего фронта (Front).
2. Выделение заднего фронта (Back).
3. Выделение обоих фронтов (Change).
4. При разрешенном входе "Делитель"(div), то выполняется деление входных импульсов. 
Входы:
1.Front,Back,Change - входной импульс;
2.div   - делитель входных импульсов;
Выходы:
1. Событие (сохраняет значение =1 в течении одного цикла loop()).
2. Меандр.

Дешифраторы и конверторы.
Нижепречисленные функции могут быть просто получены и обычными средствами FLProg 
    - реализованы они для удобства создания тестов.
1. Дешифратор на 8 битов: v=0->dc=0;  v=1->dc=1...  v=8->dc=255;       v>0->dc=0;
2. Дешифратор на 16 бит:    v=0->dc=0; v=1->dc=1..  .v=16->dc=65535;  v>0->dc=0;
3. Преобразование тетрады в четыре выхода;
4. Преобразование 16-ти разрядного числа в два 8-ми разрядных числа.

Преобразование. 
(0) Float->Float без точки;
(1) Float->Float с 1 знаком после точки;
(2) Float->Float с 2 знаками после точки;
(3) Float->Float с 3 знаками после точки;
(4) Float->Float с 4 знаками после точки;
(9) 
(A) Float->int16_t x1;
(B) Float->int16_t x10;
(C) Float->int16_t x100;
(N) bool->Float;

 

Таймер обратного отсчёта,отсчёт в секундах.Частоту отсчёта можно изменить в редактировании блока.

T -заданное время.
TIME -оставшееся время до конца цикла,после окончания цикла(отсчёта до 0),принимает значение заданного.
ON -принимает значение 1 после запуска,после окончания цикла сбрасывается в 0.

 

Блок для En_AP - включает автоматическое включение точки доступа в случае отсутствия подключения в режиме клиента
Блок "убирает тормоза" esp8266 если она не подключена клиентом к WiFi сети.
Пока на входе "Отключать Точку Доступа при соединении клиентом" единица - точка
доступа будет отключаться при соединении клиентом.
Вход "period002" - время в мсек, по истечении которого будет осуществлена 
попытка подключиться клиентом к WiFi сети. (т.е. если на входе "period002"
установлено значение 30000 - то esp8266 будет пытаться подключиться 
к WiFi сети один раз в 30 секунд).
*не рекомендуется менее 30000 мсек
**иногда возможен ребут в случае: нет соединения клиентом + юзер находится на 
веб-странице Точки Доступа + нажимает например там кнопку - и в это время происходит 
попытка соединения клиентом.

 

Данный блок используется для передачи и приема данных с помощью Технология ESP-NOW ESP8266 и ESP32 без создания WiFi сети, напрямую по WiFi между контроллерами.
Связь может быть и между этими контроллерами (ESP8266 и ESP32). Прочитайте https://habr.com/ru/post/502260/
В параметрах настраивается блок для передачи или для приема, контроллер и тп (читайте описание параметров).
Так же там можно создавать или удалять 4 входа (выхода): 1 вход (выход) integer, 1 вход(выход) float, 1 вход(выход) string,  1 вход(выход) boolean.
Один вход string включен по умолчанию. 
Входы:
en_now_REC - включение приема данных, включается подачей импульса высокого уровня один раз.
en_now_SEND - включение передачи данных, отправляются данные при подачи импульса высокого уровня.
Если в проекте используется несколько блоков передачи, то при изменении параметра одного, меняются аналогично и другие блоки.
Блок приема использовать в проекте только один раз

 

Опрос

На сайте достаточно материала?

Другие опросы...