Страница 1 из 2

посчитать импульсы за еденицу времени

Добавлено: 20 май 2018, 22:27
MANGUST
Здравствуйте!
Возникла необходимость ресурсами ардуино нано посчитать импульсы за еденицу времени (4 импульса за 6 секунд) и при привышении заданного значения отреагировать на выходе (допустим включить светодиод). Блок (SCT2) вроде не сложный, и алгоритм простейший, но не могу никак его реализовать… решил попросить помощи у знающих людей так как мои вариации в FlProg закончились ничем. Заранее спасибо всем кто откликнется (особенно с готовым решением в виде файла) :)

посчитать импульсы за еденицу времени

Добавлено: 20 май 2018, 22:40
Serg_Grn
test.flp
Больше 4 импульсов за 6 сек. - на выходе "1"; меньше 3 имп. за 6 сек. - на выходе "0".

посчитать импульсы за еденицу времени

Добавлено: 20 май 2018, 22:47
MANGUST
ок. завтра попробую Вашу схему. Когда я делал с одним блоком сравнения - не работало...

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 08:08
pan
MANGUST писал(а): 20 май 2018, 22:274 импульса за 6 секунд
а нахрена скоростной счетчик на прерываниях? чем обычный не угодил

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 10:49
seri0shka
pan писал(а): 21 май 2018, 08:08чем обычный не угодил
Возможно, в проекте есть и другие блоки. Без прерываний, если короткий импульс придёт во время обработки других блоков, он останется незамеченным.

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 16:00
Serg_Grn
Действительно, на такой мизерной частоте вполне можно на обычном счётчике сделать...
Выход, при необходимости, можно зафиксировать триггером или задержкой.
счётчик.flp

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 16:10
Serg_Grn
MANGUST писал(а): 20 май 2018, 22:47 Когда я делал с одним блоком сравнения - не работало...
Второй блок сравнения и триггер нужны только для формирования гистерезиса. Если гистерезис не нужен, то достаточно одного блока сравнения.

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 16:19
Sancho
Serg_Grn писал(а): 21 май 2018, 16:00Выход, при необходимости, можно зафиксировать триггером или задержкой.
Или кондёром по входу.

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 21:16
MANGUST
pan писал(а): 21 май 2018, 08:08
MANGUST писал(а): 20 май 2018, 22:274 импульса за 6 секунд
а нахрена скоростной счетчик на прерываниях? чем обычный не угодил
Вообще в планах проект по отключению камеры переднего вида автомобиля при достижении скорости 15 км в час, импульсы думал взять с датчика АБС, какое их количество должно быть при такой скорости пока не считывал, т.к. если честно не уверен в стабильной работе ардуино в автомобиле, думал соберу на столе посмотрю как будет это всё работать, а потом уже "доработаю напильником" как говорится. Вариант Serg_Grn почему то не работает.

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 21:25
pan
MANGUST писал(а): 21 май 2018, 21:16Вариант Serg_Grn почему то не работает.
по идее должен работать. возможно нужно подправить под конкретную схему.

а вообще тут товарищи скорость по шине считывают. http://forum.flprog.ru/viewtopic.php?p=47756#p47756

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 21:27
Serg_Grn
MANGUST писал(а): 21 май 2018, 21:16Вариант Serg_Grn почему то не работает.
Этот вариант (если Вы про первоначальную схему со скоростным счётчиком) у меня безотказно и точно работает - считает расход воды через теплообменник котла посредством датчика холла, примерно от 10 до 30 Гц частота. Если у Вас не работает, значит где-то ошибка.

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 21:33
MANGUST
pan писал(а): 21 май 2018, 21:25
MANGUST писал(а): 21 май 2018, 21:16Вариант Serg_Grn почему то не работает.
по идее должен работать. возможно нужно подправить под конкретную схему.

а вообще тут товарищи скорость по шине считывают. http://forum.flprog.ru/viewtopic.php?p=47756#p47756
Ну, до кан шины мне ещё не близко, с элементарным затыки, да и в авто по шине этот сигнал вряд ли проходит скорее всего, слишком простая

Отправлено спустя 1 минуту 9 секунд:
Serg_Grn писал(а): 21 май 2018, 21:27
MANGUST писал(а): 21 май 2018, 21:16Вариант Serg_Grn почему то не работает.
Этот вариант (если Вы про первоначальную схему со скоростным счётчиком) у меня безотказно и точно работает - считает расход воды через теплообменник котла посредством датчика холла, примерно от 10 до 30 Гц частота. Если у Вас не работает, значит где-то ошибка.
https://yadi.sk/i/6YPENq_U3WJtWT

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 21:44
Serg_Grn
Скорее всего причина в том, что когда Вы вставляете/вынимаете провод из макетки, ардуина получает не один, а целую пачку импульсов, т.к. контакт при движении провода нестабилен, а входное сопротивление входов очень высоко и скорость обработки сигналов очень высокая. В итоге Вы вроде как просто замыкаете/размыкаете цепь, а ардуина получает на вход огромное количество импульсов с разной частотой и длительностью.
Во первых, нужно притянуть вход резистором к питанию, во вторых, замыкать не проводом, а чем-то более надёжным, кнопкой например.

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 21:51
MANGUST
тоже думал что так может быть, но там вроде на аппаратном уровне уже стоит галка "подтягив. резистор"... попробую с доп резюком. но ведь у АБС думаю тоже не очень высокая скорость... получится ли вообще?

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 21:58
Serg_Grn
MANGUST писал(а): 21 май 2018, 21:51тоже думал что так может быть, но там вроде на аппаратном уровне уже стоит галка "подтягив. резистор"... попробую с доп резюком. но ведь у АБС думаю тоже не очень высокая скорость... получится ли вообще?
Я именно тот аппаратный резистор и имел ввиду.
Дело в том, что источники импульсов (хоть абс, хоть как у меня - реле протока) - это микросхемы, которые дают на выходе чистый и красивый меандр, т.е. от них ардуина получает либо "1", либо "0" и ничего другого. А когда Вы замыкаете цепь проводом, то в моменты замыкания/размыкания на вход ардуины поступает куча мусора, который она воспринимает и считывает как импульсы.

посчитать импульсы за еденицу времени

Добавлено: 21 май 2018, 23:00
MANGUST
в моменты замыкания/размыкания на вход ардуины поступает куча мусора, который она воспринимает и считывает как импульсы.
про этот мусор я вполне понимаю и согласен, где то валялся датчик холла (положение коленвала, может его сразу попробую прикрутить к схеме на столе...

Отправлено спустя 4 минуты 50 секунд:
да, с кнопкой всё более менее стабильно пока :yahoo:

Отправлено спустя 43 минуты 22 секунды:
более чем стабильно. всё отлично. блин, а ведь сталкивался уже один раз с дребезгом, когда омыватель для фар обустраивал определённым алгоритмом работы (по количеству нажатий омывателя стекла - 8 раз на лобаш, 9-й 2 секунды на фары....)
спасибо огромное Serg_Grn. буду дальше сращивать , но вопросы будут в любом случае, не смог разобраться с аналоговым переключателем (SWITCH) который хочу задействовать для перенаправления видеосигнала то с одной камеры, то с другой поочерёдно (зад-перед) на монитор головного устройства авто, т.к. у магнитолы один видеовход предназначенный для камеры заднего вида, а через обычное реле видеосигнал в жару уже не хочет проходить.... теряется.

посчитать импульсы за еденицу времени

Добавлено: 22 май 2018, 08:17
pan
MANGUST писал(а): 21 май 2018, 23:00(SWITCH) который хочу задействовать для перенаправления видеосигнала то с одной камеры, то с другой поочерёдно
вот вас понесло.. какой такой аналоговый сигнал? там имеется ввиду переменная,а не то что вы думаете.
вопросы по блокам в соседней теме.

посчитать импульсы за еденицу времени

Добавлено: 22 май 2018, 11:05
MANGUST
pan писал(а): 22 май 2018, 08:17
MANGUST писал(а): 21 май 2018, 23:00(SWITCH) который хочу задействовать для перенаправления видеосигнала то с одной камеры, то с другой поочерёдно
вот вас понесло.. какой такой аналоговый сигнал? там имеется ввиду переменная,а не то что вы думаете.
вопросы по блокам в соседней теме.
почему же сразу понесло? прочитав описание блока я решил что он как раз и нужен для моего проекта... "Аналоговый переключатель служит для передачи на выход одного из аналоговых сигналов, подаваемых на вход "0" или "1" в зависимости от логического уровня на входе "S".
При логическом 0 на входе "S", на выход передается сигнал со входа "0", а при логической 1 - со входа "1".
"

file:///D:/Arduino/FLProg/Help_html/rus/fbdSwitchBlock.html

посчитать импульсы за еденицу времени

Добавлено: 22 май 2018, 11:14
pan
импульсы посчитали? ок )
повторюсь, вопросы по штатным блокам в соседней теме
MANGUST писал(а): 22 май 2018, 11:05 прочитав описание блока я решил что он как раз и нужен для моего проекта... "Аналоговый переключатель служит для передачи на выход одного из аналоговых сигналов
это , как говорится, для непрограмистов.
"аналоговый" сигнал, здесь имеется ввиду - переменная, отличная от boolean. т.е которая может принимать различные значения,
а не просто 0 или 1

посчитать импульсы за еденицу времени

Добавлено: 22 май 2018, 11:31
MANGUST
пока всё равно не понял, но спасибо Вам за подсказки, почитаю матчасть... Где мне лучше открыть новую тему для обсуждения на автомобильную тему, так думаю будет правильнее , чем плодить несколько тем в разных ветках?