Расчет расстояния и курса по координатам двух точек земли.
На входах данные градусов двух точек, вида ( 47.653124) тип строчный.
Если выбран 8бит контроллер, координаты вводятся раздельно целая и дробная части.
Пример: широта = 47.653124, записывать как lat1 = 57 lat1* = 0.653124
На выходе дистанция до второй точки в метрах, курс в градусах 0-360.
Более подробней на форуме:
https://forum.flprog.ru/viewtopic.php?f=74&t=7582#p106421
rw6cm 27.09.21
Flp 7.3.8
Мультиблок GPS, выбирает данные из пакета NMEA формата, переданного по UART.
Данные могут быть, как общепринятые, так и дополнительные, заложенные производителем GPS.
Мультиблок имеет блоки:
"Дата" "Время" "Координаты" "Курс" Высота" "Скорость" Спутники" "Точность места"
А так же блок извлекающий дополнительные данные, заложенные производителем GPS
Во многих блоках есть подсчет времени загрузки цикла блоком.
Некоторые имеют дополнительные выходы (встроенные детекторы изменения сигналов).
Блоки используются в проекте один раз, кроме блока со звездочкой.
Библиотека TinyGPSflp.
Это слегка измененная под FLProg библиотека «TinyGPS++» version=1.0.2.
Более подробней на форуме:
https://forum.flprog.ru/viewtopic.php?f=74&t=7582#p106420
rw6cm 27.09.21
flp7.3.8
Энкодер Pro (EncPro) V1.4
Энкодер Pro (EncPro) Энкодер_Pro_V1.5.1
Это универсальный блок с возможностью настройки.
Все настройки интуитивно понятны и имеют описание и подсказки.
Благодаря отличному алгоритму библиотеки Encoder (https://github.com/PaulStoffregen/Encoder/releases),
которую я поправу считаю лучшей в своем классе, пропуск шагов практически исключен.
В описании библиотеки гарантирована работа на частоте до 100 - 127 кГц.
Если у вас нормальный, не убитый энкодер, имеющий RC фильтры, то при подключении
сигнальных пинов на пины контроллера, поддерживающие прерывания, качественная работа
блока гарантирована. Если же такой возможности нет, то используйте хотя бы один пин
поддерживающий прерывания. У таких контроллеров как UNO и NANO это D2 и D3.
Счетный выход блока Count выдает результат моментально.
Скорость работы импульсных выходов Up и Down зависит от вашей программы.
Блок физически не может выдавать больше одного импульса за два цикла.
Однако импульсов будет ровно столько, сколько покажет моментальный выход Count,
хотя они могут совершаться с задеожкой.
Блок выдает количество шагов и импульсы для каждого шага.
Автор
Dryundel
Блок преобразует данные с датчика MPC9700 в градусы. Блок для передача данных по UART
Блок преобразует данные с датчика MPC9700 в градусы (Цельсия*10)
Питание датчика 5v, опорное напряжение контроллера 5v.
Автор: Boroda
Блок формирует посылку из четырех INT + контрольная сумма LRC для отправки в UART.
Автор: Boroda
Блок формирует посылку из восьми INT + контрольная сумма LRC для отправки в UART.
Автор: Boroda
Блок запоминания 8 аварий с кнопкой "Сброс" и "Тест сигнализации"
Блок для модуль прием и передатчик nRF24L01+
Для nRF24L01+ Автор: Слимпер
SCK (Serial ClocK) — тактирование (синхронизация). ( Arduino UNO D13 | Arduino Mega D52)
MOSI / MI (Master Out Slave In) — вход данных. ( Arduino UNO D11 | Arduino Mega D51)
MISO / MO (Master In Slave Out) — выход данных. ( Arduino UNO D12 | Arduino Mega D50)
CE/SS - Выбор ведомого на шине SPI из нескольких устройств.
SCN - выбор режима приема/передача , фактически тот же CE.
IRQ - выход прерывания, чаще всего не используется. Необходим для немедленной реакции микроконтроллера при приеме нового пакета данных.
GND - земля, масса, минусовая шина.
Vcc -питание модуля 3.3в. Для надежной работы параллельно питанию как можно ближе к радио модулю рекомендуется подключить электролитический конденсатор не менее 100мкф , а так же керамический на 0.1 мкф.
Блок служит для настройки работы системы передачи данных
!!! Блок должен быть расположен раньше всех остальных из этой серии. Т.е желательно вверху первой платы.
Параметры
Адреса Устройства - Адреса самого трубы (устройства) в сети. Может быть пустым, если устройство не будет передавать данные.
Длинна должна быть равна 5 символам (цифры и буквы латинского алфавита). Вводить в кавычках. Адресов может быть несколько, водить надо через запятую, например: "1Node" , "2Node"
Номер по порядку нужно будет подставлять на вход "address", блоков отвечающих за передачу данных.
Нумерация адресов начинается с ноля, т.е. запись 4Node" , "6Node" , "7Node" , "9Node" означает: №0 - 4Node" ,№1 - "6Node" ,№3 - "7Node" , №4 -"9Node"
Адреса Прослушки - Адреса других труб (устройств) в сети, сообщения с которых будут приниматься текущем устройствам. Может быть пустым, если устройство не будет принимать данные.
Длинна одного должна быть равна 5 символам (цифры и буквы латинского алфавита). Вводить в кавычках. Адресов может быть от 1 до 5, водить надо через запятую, например: "1Node" , "2Node"
Адреса для прослушки должны иметь один и тот же адрес, кроме первого байта (символа), например: "1Node" , "2Node" , "3Node" , "4Node"
Скорость - скорсть предачи данных между модулями. Варианты RF24_250KBPS - 250 кБит/с, RF24_1MBPS - 1 МБит/с, RF24_2MBPS - 2 МБит/с
Повторы - Количество повторный отправок до отказа.
Входы
ChanneNRF24 - Номер канала:0-125 Нулевой канал начинается с 2400мгц и далее с шагом 1 мгц, например 70 канал находится соответственно на 2470мгц. При установке скорости 2 МБит/с занимается ширина двух каналов. Не подключенный вход означает 0 канал.
LevelNRF24 - Мощность передатчика: 0- RF24_PA_MIN, 1-RF24_PA_LOW, 2-RF24_PA_HIGH, 3- RF24_PA_MAX соответственно NRF24L01: -18dBm, -12dBm, -6dBM и 0dBm SI24R1: -6dBm, 0dBm, 3dBM и 7dBm. Не подключенный вход означает минимальную мощность.
Входы ChanneNRF24 и LevelNRF24 обрабатываются только один раз при старте программы. Подразумевается использование их совместно с EEPROM или блоком меню. То есть, изменил значение в памяти, перезапустил контроллер и вступают в силу новые настройки.
PauseNRF24 - пауза между отправками данных, в мс. Используется для задержки отправки следующего покета данных.
Не подключенный вход означает 10мс.
Initialization - при подачи 1 на вход проводит повторную инициализацию платы.
Необходимо если для экономии питания было произведено отключении питания nRF24, вовремя работы контроллера.
!!! Во всех других случаях вход оставлять не подключеным.
Выхода
NRF24_dataObtained - Поступили новые данные. Добавил выход для возможности отключения плат на которых идет обработка новых данных.
rxFifoFull - Переполнение приемного буфера nRF24L01+. Означает, что высока вероятность потери части данных.
!!! Необходимо принять меры. !!!
Возможно, требуется оптимизировать программу текущего контроллера. Или можно увеличить интервалы отправки на передающих.
Если на передающем больше одного блока передачи данных, то надо увеличит значение входа PauseNRF24 блока NRF24_Главный на передающем устройстве.
Блок для бегущая строка на MAX7219, главный блок.
Uno or Duemilanove DIN 11 (MOSI), CLK 13 (SCK), pinCS установить в параметрах , по умолчанию 10.
Внимание! numberOfHorizontalDisplays= nH это вертикальные матрицы,
а numberOfVerticalDisplays= nV это горизонтальные матрицы.
aidar_i
Приставка для создания бегущей строки для дисплеев.
Выход V подать на вход "х" блока вывода стационарного текста
Входы:
scroll
speed
lengthStr -
width_display
width_font
Выводится строка со входа .
aidar_i
Блок для Ina226 двунаправленное Напряжение Тока
Изначальные настройки 00h:
Время измерения тока и напряжения 588мкс
Количество замеров для усреднения - 64
Сопротивление шунта в сотых миллиома.На плате из али - R100=1000, R010=100
Time_Read - время в мс между опросами
Автор Sancho
Блок для записи и чтения ЕЕПРОМ
Очищает память ЕЕПРОМ
Главный блок. Ставится первым.
Применять с блоками записи и чтения ЕЕПРОМ,
Параметр String_length - максимальная длина строки. Кириллица по сравнению латинницей длиннее в 2 раза (занимает 2 байта).
Параметр EEPROM_length - размер EEPROM.
При подаче на вход En_read высокого уровня на выходе readStr выводится строка из ячейки памяти - _address.
При подаче на вход En_write высокого уровня записывает строку со входа TextStr по адресу address_ .
На выходе addr появляется "длина строки +1", необходим для подсчета адресов ячеек памяти. Если запись начать с ячейки 10, то адрес следующего блока при addr = 7, будет addr = 10+7. Обычно запись начинается с адреса 0.
Блок для записи массива в EEPROM
Параметры:
Адрес для записи - адрес куда сохраняем
Массив - массив для записи
Входы:
Запись - По переднему фронту сохраняем массив в EEPROM, использовать через RTrig
Адрес - Адрес для записи
Выходы:
Адрес для следующего - Адрес для следующего блока записи
AlexCrane, 2021
Блок для чтения строки в EEPROM
Параметры:
Адрес для чтения - адрес откуда читаем
Строка - строка для чтения
Входы:
Чтение - По переднему фронту читаем строку из EEPROM, использовать через RTrig
Адрес - Адрес для чтения
Выходы:
Адрес для следующего - Адрес для следующего блока чтения
AlexCrane, 2021
Блок для записи массива String в EEPROM
Параметры:
Адрес для записи - адрес куда сохраняем
Массив - массив для записи
Входы:
Запись - По переднему фронту сохраняем массив в EEPROM, использовать через RTrig
Адрес - Адрес для записи
Выходы:
Адрес для следующего - Адрес для следующего блока записи
AlexCrane, 2021
Блок для чтения массива из EEPROM
Параметры:
Адрес для чтения - адрес откуда читаем
Массив - массив в который читаем
Входы:
Читать - По переднему фронту читаем массив из EEPROM, использовать через RTrig
Адрес - Адрес для чтения
Выходы:
Адрес для следующего - Адрес для следующего блока чтения
AlexCrane, 2021
Блок для очистки EEPROM
Параметры:
Стирать EEPROM полностью - стираем все! Иначе по конкретным адресам
Входы:
Стереть - По переднему фронту стираем EEPROM, использовать через RTrig
Начало - Адрес для начала
Конец - Адрес для конца
AlexCrane, 2021
Блок для чтения массива String из EEPROM
Параметры:
Адрес для чтения - адрес откуда читаем
Массив - массив в который читаем
Входы:
Читать - По переднему фронту читаем массив из EEPROM, использовать через RTrig
Адрес - Адрес для чтения
Выходы:
Адрес для следующего - Адрес для следующего блока чтения
AlexCrane, 2021
Блок для записи строки в EEPROM
Параметры:
Адрес для записи - адрес куда сохраняем
Строка - строка для записи
Входы:
Запись - По переднему фронту сохраняем строку в EEPROM, использовать через RTrig
Адрес - Адрес для записи
Выходы:
Адрес для следующего - Адрес для следующего блока записи
AlexCrane, 2021