Многоканальный тахометр для вентиляторов (нужен совет)

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Мокренькая кисонька
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт сен 27, 2011 07:28:44
Откуда: Москва
Контактная информация:

Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Мокренькая кисонька »

Здравствуйте коты и кошки!

Размышляю над 8-и канальным тахометром для подкроватного сервера. Конечно есть всякие специализированные м/с типа MAX31790, EMC230x, но добыть их сейчас нефуражные и по приемлемой цене не представляется возможным. Зато в "тумбочке" полно всяких разных pic'ов, avr, arduino.

Вот мне и подумалось такое:
Берем 74HC4051, 8-и канальный мультиплексор.
На МК задействуем специальный счетный вход таймера, обычно с помощью которого делают частотомеры.
Или аппаратное прерывание и в нем считаем, но первый вариант мне кажется более точным и правильным.

Соответственно вопрос алгоритмического характера, как все это реализовать, чтобы за приемлемое время (1-2 сек) измерять обороты у всех 8-и вентиляторов?

Пока что я сделал макет на Ардуино и с помощью Гайверовской библиотеки тахометр. Работает она на аппаратном прерывании.
Алгоритм такой:
Переключаю канал - замеряю.
Отключаю вход (ножка E) на 4051 на некоторое время (делаю паузу).
И так по циклу.

Время замера 2 сек на канал, при 1 секунде измерения. Работает, но получается 2 секунды на один вентилятор...
ИзвЕните от слова - веник, ИзвИните от слова - вина.
Реклама
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение jcxz »

[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729008#p4729008"]Соответственно вопрос алгоритмического характера, как все это реализовать, чтобы за приемлемое время (1-2 сек) измерять обороты у всех 8-и вентиляторов?[/uquote]Выкинуть внешние мультиплексоры. МК с 8+ доступными ногами - вагон. Взять такой. Для того, чтобы определиться с алгоритмом, нужно сперва определить макс. и мин. частоты измеряемых импульсов. Из них уже можно решать - достаточно только в прерываниях считать или нужно использовать таймеры. В любом случае: чтобы измерить частоту - достаточно поймать хотя-бы пару импульсов. Нет никакой надобности ждать несколько секунд. Достаточно пары импульсов.
Также нет никакой необходимости мерять последовательно - можно мерять всё 8 параллельно. Дешёвых ARM-ов - также вагон.
И выкинуть абдурину и всякие "либы". Курить RM.

После этого задача станет легко решаемой.
Реклама
Аватара пользователя
Мокренькая кисонька
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт сен 27, 2011 07:28:44
Откуда: Москва
Контактная информация:

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Мокренькая кисонька »

[uquote="jcxz",url="/forum/viewtopic.php?p=4729011#p4729011"]Курить RM.[/uquote]
LM курил в молодости, RM ни разу.
ИзвЕните от слова - веник, ИзвИните от слова - вина.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение jcxz »

[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729016#p4729016"]LM курил в молодости, RM ни разу.[/uquote]RM == Reference manual.
Реклама
Эиком - электронные компоненты и радиодетали
Krismi70
Сверлит текстолит когтями
Сообщения: 1184
Зарегистрирован: Пт ноя 22, 2024 14:08:43

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Krismi70 »

Мокренькая кисонька писал(а):Зато в "тумбочке" полно всяких разных
jcxz писал(а):Выкинуть внешние мультиплексоры
т.е. вполне по мк на вентилятор + мк для схемы или....)))
-----
раз есть входные импульсы, то и NE555 cгодится....
Реклама
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение jcxz »

[uquote="Krismi70",url="/forum/viewtopic.php?p=4729029#p4729029"]т.е. вполне по мк на вентилятор + мк для схемы или....)))[/uquote]Вангую, что один 20-ногий PY32F002AF15P за ~10 центов с алишки - успешно справится с такой непосильной задачей. Один на все 8 пропеллеров. И ещё и отобразить сумеет на каком-нить индикаторе.
Ну если конечно ТС не мегагерцы измерять собрался.
Реклама
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6652
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение AlexS4 »

там частоты 1-250Hz с большим запасом.
это на самом дохлом mcu делается элементарнейше

заводите 8 холлов на 8 bit 1 порта

раз в 4mS (по таймеру) зачитываете байт порта
и фиксируете биты перешедшие из 0 в 1 (сложив битовой операцией с сохраненным на прошлом цикле значением)
Cycle=Pcur &~Pprev; или NOT, AND
получившийся байт признаков начал периодов Cycle
циклом из 8 проходов
разбираете на биты ( Cycle <<1; или ROL ) и прибавляете соответсвующий бит к своему байту-счетчику (массив из 8 1байт-переменных) (это эквивалент условного инкремента счетчика периодов в случае зафиксированного начала периода по соответствующему входу)

раз в 250 таких циклов (здесь - единственная условная операция в обработчике таймера 4mS) зачитываете эти счетчики в другой 8байт массив и сбрасываете исходные в 0.
завершаете прерывание.

так получаете во 2м массиве текущее значение частоты на холлах в Hz, обновляющееся таймерным прерыванием каждую 1s.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Аlex »

AlexS4 писал(а):раз в 4mS (по таймеру) зачитываете байт порта
Это слишком медленно. Нужно раз в 10-20 быстрее зачитывать. А то и во все 100. Иначе на частотах, близких к 250 будете получать точность "+- трамвайная остановка".
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6652
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение AlexS4 »

да, для нашего примера при 1mS и снятии с 200цикла для частоты 250Hz будет точность 12.5% - это мож даже и приемлемо :dont_know:
...и можно оверсемплированием хорошенько уточнять :))
Спойлерто что эффективно оверсемплить - это не шутка, там будет оочень регулярная ошибка в соседних семплах, а то чо это имеет смысл - это конечно шутка, проще разрешение счетчиков и время накопления данных увеличить
и частоты надо уточнить, 250Hz это 7500 rpm для 4х полюсного моторчика, если куллеры домашние-тихие-большие то скорее это двойной+ перезаклад ....а если 1U 25000rpm 8) то наоборот :dont_know:

но в любом случае хватит разрешения в 1 байт для практического применения c куллерами. тоесть прийдется только выбрать подходящий период единственного таймера.
Последний раз редактировалось AlexS4 Чт июл 03, 2025 21:42:56, всего редактировалось 1 раз.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение jcxz »

[uquote="AlexS4",url="/forum/viewtopic.php?p=4729073#p4729073"]раз в 250 таких циклов (здесь - единственная условная операция в обработчике таймера 4mS) зачитываете эти счетчики в другой 8байт массив и сбрасываете исходные в 0.
завершаете прерывание.[/uquote]Это не будет работать даже для меандров 250Гц. Не говоря уже о том, что у ТС сигналы могут быть совсем не меандрами.

До сих пор от ТС нет ничего ни о требуемой точности ни о диапазоне частот ни о скважности импульсов. Без этих данных - пустой разговор.
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6652
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение AlexS4 »

jcxz писал(а):Это не будет работать даже для меандров 250Гц. Не говоря уже о том, что у ТС сигналы могут быть совсем не меандрами.
да, Аlex, уже указал на эту ошибку
а с периодом семплирования 1mS это будет работать до скважности 4 @250Hz.
при том что у какойнить tiny2313 @20Mhz за 1mS можно выполнить 10..20k инструкций а для описанного алгоритма нужно на 2-3 порядка меньше. тоесть не проблема сделать таймер 100uS или даж 20uS :music:
Аватара пользователя
abc
Друг Кота
Сообщения: 3686
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение abc »

Камрады, сорри, конечно, но вы перед тем, как теории развивать, хоть один компьютерный вентилятор в руках держали ?
Там чистейший меандр, 50/50.
Обороты (в режиме "мы тебе не будем срать в уши, честно-честно") - до 1000. Минимальные, при которых они еще умеют вращаться - 400. Т.е. частота будет от 6,6(6) до 16, 6(6) Гц.

ЗЫ
Я бы сделал так :
Мерял бы не частоту, а период у всех восьми штук _последовательно_ во времени, но столько раз, чтобы это укладывалось в интервал 1-2 сек (повторюсь, не для одного, а для всех восьми штук).
Потом результаты усреднял и выводил на индикацию.
Всё.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Аватара пользователя
Мокренькая кисонька
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт сен 27, 2011 07:28:44
Откуда: Москва
Контактная информация:

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Мокренькая кисонька »

[uquote="jcxz",url="/forum/viewtopic.php?p=4729095#p4729095"]До сих пор от ТС нет ничего ни о требуемой точности ни о диапазоне частот ни о скважности импульсов. Без этих данных - пустой разговор.[/uquote]
Нужный диапазон от 0 до 3000 об, хотя 3000 это много, работают они в основном на 1000-1200
2 импульса на оборот у типичного компового вентилятора, скважность 2, т.е. обычный меандр.
Частота получается до 100Гц на канал.
Точность не важна, это показометр для мониторинга, но желательно, чтобы значения не дрыгались особо.
ИзвЕните от слова - веник, ИзвИните от слова - вина.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Аlex »

Мокренькая кисонька писал(а):Частота получается до 100Гц на канал.
Точность не важна
Тогда вообще не проблема.
8 входов у МК. Таймер на 100 us, это будут тики. Ловим фронты на входах (был один уровень, стал другим) в обработчике этого таймера. И считаем "тики", для каждого входа, от фронта до фронта - это будут периоды. Как потом перевести из периода в частоту, объяснять, думаю, не нужно.
Любой МК потянет такой алгоритм по скорости.
Чем ближе будет частота к 100 Гц, тем будет больше хромать точность измерения. Но, думаю, Вам этого будет достаточно.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19048
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Starichok51 »

при 100 Гц период 10 мс. при таймере 100 мкс это 100 единиц счета. то есть "точность" 1/100 - 1%. должно хватить "за глаза".
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6652
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение AlexS4 »

abc писал(а):честно-честно") - до 1000. Минимальные, при которых они еще умеют вращаться - 400. Т.е. частота будет от 6,6(6) до 16, 6(6) Гц.
полноты ради надо добавить что существуют таки вентиляторы, которые раскручиваются до 10..20krpm. обычно это 40x40x67+mm , такие применяют в серверах, и всяких векторных процессорах: асиках c плоской 1U компановкой, видеокартах аля A100 и прочем подобном. звук от них как от самолета... 8) но такие бывают и применяются.

и еще в зависимости от конструкции мотора (количества полюсов ротора) выход холлсенсора может давать x1 ,x2, x4 частоту.

зы а я предложил самый простой алгоритм, с минимумом ветвлений (или вообще без них при наличии 2х таймеров), не требующий деления, его элементарно организовать на самом дохлом at89с2051 какомнить, при этом он обеспечивает параллельное вычисление по всем каналам. :music:
Аватара пользователя
Starichok51
Модератор
Сообщения: 19048
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение Starichok51 »

AlexS4, а что, у at89с2051 8 ядер, чтобы делать параллельное вычисление по всем каналам?
и не шути так больше про параллельность в простейшем МК.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
abc
Друг Кота
Сообщения: 3686
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение abc »

[uquote="AlexS4",url="/forum/viewtopic.php?p=4729156#p4729156"]полноты ради надо добавить что существуют таки вентиляторы, которые раскручиваются до 10..20krpm.[/uquote]да, согласен, но прямо в первом сообщении ТС было про "подкроватный сервер".
И поставить туда ветродуи с 10000rpm могут не только лишь все.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6652
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение AlexS4 »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4729165#p4729165"]AlexS4, а что, у at89с2051 8 ядер, чтобы делать параллельное вычисление по всем каналам?
и не шути так больше про параллельность в простейшем МК.[/uquote]

Starichok51, осмысленная концепция параллельности процессов появилась лет за 30 до появления многоядерных процессоров и лет за 20 до появления многопроцессорных систем. :music: можем это обсудить в подходящей теме.
(из крупных коммерческих проектов с софтовым распараллеливанием процессов можно почитать про unix (~1970) или ibm os/2 (1987) )

в данном случае я говорил о параллельности процессов накопления счетчиков периодов наблюдаемых входов.
это вполне себе параллельность в реальном времени, реализованная чисто софтово.
https://radiokot.ru/forum/viewtopic.php ... 5#p4729085
просто здесь алгоритм распараллеливания вырожден до 1 цикла обхода с фиксированным набором инструкций.
а часть распараллеливания реализовано на свойствах архитектуры, например 8 бит (входов) обрабатываются совершенно одновременно битовыми операциями над целым байтом :music:
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Многоканальный тахометр для вентиляторов (нужен совет)

Сообщение veso74 »

Зафиксируйте хотя бы тип используемого микроконтроллера.
В противном случае каждый будет предлагать варианты на МК из своей любимой темы :).

Как указано выше, предлагаю напр. недорогой модуль STM32F103C8T6. Есть много входов, будут ресурсах и для дисплея, и для коммуникации напр. по UART к другой системе/PC. А можете собирать измерения и по прерываниям, и по Timer Intut Capture direct mode. Ресурсов много. Код быстро пишется в STM32CubeIDE /хотя его не нравится, но для таких проектов идеален/. Несколько десятков кликов мышкой в конфигураторе и почти готово. (Даже потчи уверен, что чат-бот может написать код для этого, по крайней мере, для основных функций).
Ответить

Вернуться в «Периферия»