Пользовательские блоки не подходящее под другие разделы
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
aidar_i писал(а):Испытал, не заработал. Вставил в конце delay(20000); начал проигрывать длительностью 20 с, проверил при разных индексах. Но проигрывает циклически непрерывно. Как прервать после первого воспроизведения?
Проверил-работает!
В моем DTMF модуле 12 выходов (выходы в блок SD добавил), при нажатии на кнопку тф включается канал, при повторном выключается. Дешифратор и триггер встроен в модуль. Я попробовал включить, добавив 12 блоков СД и прописав константы на каждый канал, все хорошо работает, но программа получается громоздким. Сделать проект, используя только один блок и изменением индекса при переключении каналов, не получается пока. Может поможете? Нужен блок, когда на вход подана "1" , он выдает на выходе записанный в него индекс.
Спасибо!
Последний раз редактировалось aidar_i 25 фев 2017, 15:15, всего редактировалось 1 раз.
Большое спасибо! Все отлично работает, можно собирать проект. Я не знал , что с переменными можно так работать. Программа получается компактно и красиво!
aidar_i писал(а):Большое спасибо! Все отлично работает, можно собирать проект. Я не знал , что с переменными можно так работать. Программа получается компактно и красиво!
Нужна помощь в создании (если есть , где искать?) блок программного декодера DTMF. Хотел сам сделать из скетча Осипова, но там привязаны пины и ардуино превращается в DTMF декодер с дешифратором, чтобы еще что то запрограммировать нужен второй ардуино. А мне нужен просто блок со входом (можно привязанным к А0), 4 выводами кода и выводом stq (всего 5 ), чтобы внутри проекта использовать. Блок дешифратора я сам сделал с проекта Грачика, второй покупной модуль DTMF с 5 выводами работает, но еще хочу сделать проект без готовых модулей.
У меня их 2 шт. Но нужен программный, скетч Осипова работает хорошо.
Вот сделал на его основе блок. Прикрепляю пример, там 2 блока. Первый по Осипову. Ардуино превращается в DTMF декодер с дешифратором. Второй , как я хочу видеть (количество выходов можно до 12 добавить), но он не рабочий, тк я не умею писать программу, прошу опытного скетчиста помочь.
Еще, если использовать первый блок, его выход (например пин 2) соединить другим пином МК (например А1) будет работать? Тогда можно вставить этот блок в проект и там же сделать проигрывание сд карты, замер температуры.
Последний раз редактировалось aidar_i 28 фев 2017, 14:44, всего редактировалось 1 раз.
Пока нет ответа. Прикрепляю эскиз блока, чтобы можно уменьшить объем работы и скетч Осипова. В скетче нужно изменить, чтобы вход и выходы не были привязаны к пинам Ардуино (задать пременные?).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i писал(а):Нужна помощь в создании (если есть , где искать?) блок программного декодера DTMF.
Создать вход для сигнала (А0) получается,создал выходы блока, работают с кнопки * и # , с остальных не могу сделать, посмотрите код, как можно исправить?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 03 мар 2017, 18:36, всего редактировалось 1 раз.
Добавлено (04.03.2017, 04:01)
---------------------------------------------
Сделал все таки за ночь блок, пришлось немного изучить язык. Проверил-работает! Можно прикрутить к нему в FLProge блок СД (см выше), термодатчик и тп.
Выложу позже, если кому интересно. Блок прикрепленный здесь старый недоделанный, не знаю как удалить.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось aidar_i 04 мар 2017, 04:04, всего редактировалось 1 раз.
Всем здрасти!
Хочу поделится способом ввода управляющих команд для изменения значения разных переменных с контролем изменяемого значения. Эти команды управления еще называют AT командами. Если управляющих команд много, то преимущество этого способа очевидно. Не нужно заботится о количестве вводимых символов, необходимо только указать, с какого индекса будут начинаться изменяемое значение. Если терминальная программа в конце добавляет символ перевода строки, то этот символ автоматически удаляется.
Такой способ я применяю для удаленного управления разными устройствами. Изменяемое значение контролируется по факту его изменения, эти данные можно сохранять в логе если это необходимо.
Ограничения:
1. Вводимые команды критичны к регистру.
2. Длина строки вводимых данных не должна превышать 16 текстовых символов без символа перевода строки или 15 - с наличием этого символа.
Если количество вводимых данных превышено, то выводится сообщение об ошибке с блокировкой изменения значения переменной. Обычно для команд управления этого вполне достаточно.
На плате 1 находится непосредственно формирователь вводимых данных.
На плате 2 я привел четыре примера для изменения разных переменных. В примере 3 есть два блока пользователя.
Теперь по командам:
После команды Comm1 вводится любое десятичное число
После команды Comm2 вводится любой текст
После команды Comm3 вводится 16-тиричное значение одного байта (если вводимое значение меньше 0х10, то в контролируемом значении добавляется ноль (работа блока пользователя).
После команды Comm4 вводится 0 или 1
Буду рад, если такой способ ввода кому нибудь пригодится.
Пример способа прилагаю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DrMario 04 мар 2017, 08:10, всего редактировалось 1 раз.
На основе блока от nik2-2005 сделал блок для DS18B20 с контролем работоспособности датчика. Прошу знающих людей проверить право данной схемы на жизнь. Не совсем разобрался с контрольными суммами, так как сдирал с готовых примеров. В блоке сравниваются crc расчитаные и фактические (насколько я правильно понял примеры) и в случае равенства выход OK устанавливается в true. Выходы crc и raw сделал для наглядности. Возможно есть более простой способ диагностировать обрыв датчика, но у меня в случае обрыва просто температура становится -0,0625 до перезагрузки.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок сканирования срабатывает однократно при подаче единицы на вход EN. Что бы снова найти датчик нужно определить сбой, а как это сделать если у нас просто температура становится 0 градусов? Возможно стоит периодически сканировать шину?
Вот это и будет индикатором обрыва датчика или замыкания на землю. Можете конечно пробежаться по всем данным, но думаю это лишнее, четырех первых байт за глаза.
Последний раз редактировалось Boroda 04 мар 2017, 23:59, всего редактировалось 1 раз.