Многоканальный тахометр для вентиляторов (нужен совет)
- Мокренькая кисонька
- Открыл глаза
- Сообщения: 59
- Зарегистрирован: Вт сен 27, 2011 07:28:44
- Откуда: Москва
- Контактная информация:
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="veso74",url="/forum/viewtopic.php?p=4729183#p4729183"]Зафиксируйте хотя бы тип используемого микроконтроллера.[/uquote]
Думаю использовать Mega 168 или 328, у меня их больше всего, да и опыт на аврах больше.
Думаю использовать Mega 168 или 328, у меня их больше всего, да и опыт на аврах больше.
ИзвЕните от слова - веник, ИзвИните от слова - вина.
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="Аlex",url="/forum/viewtopic.php?p=4729112#p4729112"]8 входов у МК. Таймер на 100 us, это будут тики. Ловим фронты на входах (был один уровень, стал другим) в обработчике этого таймера. И считаем "тики", для каждого входа, от фронта до фронта - это будут периоды. Как потом перевести из периода в частоту, объяснять, думаю, не нужно.
Любой МК потянет такой алгоритм по скорости.
Чем ближе будет частота к 100 Гц, тем будет больше хромать точность измерения. Но, думаю, Вам этого будет достаточно.[/uquote]Да, так пойдёт. Но дополню:
Я бы мерял не просто "от фронта до фронта", а согласно периоду индикации: до последнего фронта сигнала в каждом периоде индикации. И с подсчётом фронтов внутри периода индикации. А потом - делим измеренный интервал времени на количество фронтов за период индикации и выводим. При таком способе точность не будет ухудшаться с ростом частоты сигналов. Будет усреднение по множеству периодов сигнала.
Любой МК потянет такой алгоритм по скорости.
Чем ближе будет частота к 100 Гц, тем будет больше хромать точность измерения. Но, думаю, Вам этого будет достаточно.[/uquote]Да, так пойдёт. Но дополню:
Я бы мерял не просто "от фронта до фронта", а согласно периоду индикации: до последнего фронта сигнала в каждом периоде индикации. И с подсчётом фронтов внутри периода индикации. А потом - делим измеренный интервал времени на количество фронтов за период индикации и выводим. При таком способе точность не будет ухудшаться с ростом частоты сигналов. Будет усреднение по множеству периодов сигнала.
- Мокренькая кисонька
- Открыл глаза
- Сообщения: 59
- Зарегистрирован: Вт сен 27, 2011 07:28:44
- Откуда: Москва
- Контактная информация:
Re: Многоканальный тахометр для вентиляторов (нужен совет)
Я вот думаю все-таки задействовать аппаратный щ0ччик и в его прерывании делать предварительную обработку и переключать мультиплексор. Конечно можно будет выкроить целый порт под это, но это не очень будет удобно, т.к. еще нужно 2 ШИМа вывести, датчики температуры, UART вместо дисплея.
Всем спасибо за советы, если что-то годное получится - результат запощу. Пока буду экпериментировать.
Всем спасибо за советы, если что-то годное получится - результат запощу. Пока буду экпериментировать.
ИзвЕните от слова - веник, ИзвИните от слова - вина.
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="abc",url="/forum/viewtopic.php?p=4729168#p4729168"]да, согласен, но прямо в первом сообщении ТС было про "подкроватный сервер".
И поставить туда ветродуи с 10000rpm могут не только лишь все.[/uquote]В такую жару как сейчас - самое то!
Добавлено after 54 seconds:
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729225#p4729225"]Думаю использовать Mega 168 или 328, у меня их больше всего, да и опыт на аврах больше.[/uquote]И зря! При нынешних-то ценах на ARM-ы... Вот и освоили бы их на такой простой задаче.
Добавлено after 5 minutes 31 second:
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729228#p4729228"]и переключать мультиплексор.[/uquote]Вижу у автора настойчивое желание потратить некий мультиплексор.
И поставить туда ветродуи с 10000rpm могут не только лишь все.[/uquote]В такую жару как сейчас - самое то!
Добавлено after 54 seconds:
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729225#p4729225"]Думаю использовать Mega 168 или 328, у меня их больше всего, да и опыт на аврах больше.[/uquote]И зря! При нынешних-то ценах на ARM-ы... Вот и освоили бы их на такой простой задаче.
Добавлено after 5 minutes 31 second:
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729228#p4729228"]и переключать мультиплексор.[/uquote]Вижу у автора настойчивое желание потратить некий мультиплексор.
Re: Многоканальный тахометр для вентиляторов (нужен совет)
а можнож на аппаратных счетчиках сделать, зачем ваще mcu 
еще хороший вариант взять завалявшуюся fpga , загнать в нее опенсорсный стековый процессор
https://github.com/IamMaxim/OurCPU
и уже на нем писануть алгоритм. можно прямо на языке forth
еще хороший вариант взять завалявшуюся fpga , загнать в нее опенсорсный стековый процессор
https://github.com/IamMaxim/OurCPU
и уже на нем писануть алгоритм. можно прямо на языке forth
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="AlexS4",url="/forum/viewtopic.php?p=4729232#p4729232"]еще хороший вариант взять завалявшуюся fpga , загнать в нее опенсорсный стековый процессор
https://github.com/IamMaxim/OurCPU
и уже на нем писануть алгоритм. можно прямо на языке forth
[/uquote]Всё хорошо, осталось дело за малым - чтобы fpga завалялась. 
PS: Окучивать подкроватные пропеллеры при помощи FPGA - это сильно!
https://github.com/IamMaxim/OurCPU
и уже на нем писануть алгоритм. можно прямо на языке forth
PS: Окучивать подкроватные пропеллеры при помощи FPGA - это сильно!
Re: Многоканальный тахометр для вентиляторов (нужен совет)
хорошо.Мокренькая кисонька писал(а):Думаю использовать Mega 168 или 328
у них можно назначить прерывание на любой вывод.
т.е. количество датчиков ограничено только количеством выводом самого МК.
но тут другая проблема - прерывания непредсказуемые ))
поэтому например в радиоуправлении мы опрашивали датчики с высокой частотой (в прерывании таймера 0).
а потом передавали по радио... на комп... и т.д.
может показаться что опрашивать датчики с высокой частотой это пустая трата ресурсов... но в нашем случае это оправдано.
зато у нас высокая стабильность (таймер работает от кварца)... высокая точность... и т.д.
и главное что мы знаем точно когда сработает таймер. и значит можем рассчитать все тайминги.
2 ШИМа вывести, UART - не проблема.
датчики температуры - у нас была проблема... на время опроса датчика температуры желательно отключать все прерывания.
иначе будут ошибки.
а остальном всё замечательно работает))
Re: Многоканальный тахометр для вентиляторов (нужен совет)
Спойлер
Это какой-то позор оверинжиниринг.Что заставило для трех устройств с I2C использовать две ардуины ?
ЗЫ
Понял, спасибо, вопрос снят
Последний раз редактировалось abc Сб июл 05, 2025 13:33:30, всего редактировалось 1 раз.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Re: Многоканальный тахометр для вентиляторов (нужен совет)
Спойлер
это экспериментальная схема.потом всё переделали.
- АлександрЛ
- Друг Кота
- Сообщения: 43815
- Зарегистрирован: Пн ноя 30, 2009 03:00:01
- Откуда: Нерезиновая
Re: Многоканальный тахометр для вентиляторов (нужен совет)
Интересно, а что, так "смертельно необходимо" знать обороты вентилятора с точностью до одного оборота в минуту (или в секунду)?
2 импульса на оборот, при частоте вращения 1500 оборотов в минуту- это 50 оборотов в секунду, или 15 оборотов за 0,3 секунды. Программируете измерительный интервал не 1 секунду, а 0,3 секунды, и имеете на выходе число и "х100 оборотов в минуту"
2 импульса на оборот, при частоте вращения 1500 оборотов в минуту- это 50 оборотов в секунду, или 15 оборотов за 0,3 секунды. Программируете измерительный интервал не 1 секунду, а 0,3 секунды, и имеете на выходе число и "х100 оборотов в минуту"
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="АлександрЛ",url="/forum/viewtopic.php?p=4729292#p4729292"]...2 импульса на оборот, при частоте вращения 1500 оборотов в минуту- это 50 оборотов в секунду, или 15 оборотов за 0,3 секунды. Программируете измерительный интервал не 1 секунду, а 0,3 секунды, и имеете на выходе число и "х100 оборотов в минуту"[/uquote]Не совсем так. 1500/60=25/[сек]*0,3=(100)*7,5[об/мин]???
Если измерительный интервал взять длительностью 0,6 секунды, получается более правильно 1500/60=25/[сек]*0,6=(100)*15[об/мин]
Если измерительный интервал взять длительностью 0,6 секунды, получается более правильно 1500/60=25/[сек]*0,6=(100)*15[об/мин]
Управление мультиплексором потребует 4 лапы контроллера. Можно подключиться к входу захвата таймера Т1 через встроенный аналоговый мультиплексорМокренькая кисонька писал(а):Я вот думаю все-таки задействовать аппаратный щ0ччик и в его прерывании делать предварительную обработку и переключать мультиплексор. Конечно можно будет выкроить целый порт под это, но это не очень будет удобно, т.к. еще нужно 2 ШИМа вывести, датчики температуры, UART вместо дисплея...
Спойлер
https://radiokot.ru/forum/download/file.php?mode=view&id=419447&sid=4996caad8af767aed4ee064cd97f9612- Вложения
-
- Встроенный мульплексор m48...m328.PNG
- (43.61 КБ) 120 скачиваний
- АлександрЛ
- Друг Кота
- Сообщения: 43815
- Зарегистрирован: Пн ноя 30, 2009 03:00:01
- Откуда: Нерезиновая
Re: Многоканальный тахометр для вентиляторов (нужен совет)
Где-то в начале ветки написано, что, таходатчик вентилятора выдаёт ДВА импульса на оборот.akl писал(а):Не совсем так. 1500/60=25/[сек]*0,3=(100)*7,5[об/мин]???
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="akl",url="/forum/viewtopic.php?p=4729301#p4729301"]Управление мультиплексором потребует 4 лапы контроллера.[/uquote]
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729008#p4729008"]Размышляю над 8-и канальным тахометром[/uquote]
Управление 8-и канальным мультиплексором потребует 3 лапы контроллера.
[uquote="akl",url="/forum/viewtopic.php?p=4729301#p4729301"]Можно подключиться к входу захвата таймера Т1 через встроенный аналоговый мультиплексор[/uquote]
Можно... но зачем ? ))
-не у всех МК есть 8-и канальным мультиплексор.
-если использовать 8-и канальным мультиплексор то мы потеряем АЦП. который нам ещё пригодится))
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729008#p4729008"]Размышляю над 8-и канальным тахометром[/uquote]
Управление 8-и канальным мультиплексором потребует 3 лапы контроллера.
[uquote="akl",url="/forum/viewtopic.php?p=4729301#p4729301"]Можно подключиться к входу захвата таймера Т1 через встроенный аналоговый мультиплексор[/uquote]
Можно... но зачем ? ))
-не у всех МК есть 8-и канальным мультиплексор.
-если использовать 8-и канальным мультиплексор то мы потеряем АЦП. который нам ещё пригодится))
- AlanDrakes
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Пн июл 04, 2016 16:51:22
- Откуда: Россия, Омск
Re: Многоканальный тахометр для вентиляторов (нужен совет)
Я такой "тахометр" делал на ESP32 + графический дисплей.
Все пины сигналов заводил на аналоговый ключ (74HC4051). Логика максимально тупая.
Сигналы с пинов вентиляторов идут через схему защиты, компараторы (8) на аналоговый ключ. Контроллер выбирает желаемый канал, и уходит в сон на 0,2 секунды. Это максимальное время опроса канала.
Сам сигнал после компараторов и аналогового ключа заводится на пин с прерыванием, который считает импульсы. Если получено 20 импульсов - будет основной поток. После этого переключаемся на следующий канал и продолжаем.
Я не очень заморачивался с причёсыванием кода, но оно работает в пределах 50об/мин ... 9999 об/мин (я оставил 4 разряда под скорость, да и где такие кулеры встречаются?).
Тайминги получаются из внутреннего счётчика времени. На малых оборотах показания плавают, но высокие измеряются более-менее достоверно.
Все пины сигналов заводил на аналоговый ключ (74HC4051). Логика максимально тупая.
Сигналы с пинов вентиляторов идут через схему защиты, компараторы (8) на аналоговый ключ. Контроллер выбирает желаемый канал, и уходит в сон на 0,2 секунды. Это максимальное время опроса канала.
Сам сигнал после компараторов и аналогового ключа заводится на пин с прерыванием, который считает импульсы. Если получено 20 импульсов - будет основной поток. После этого переключаемся на следующий канал и продолжаем.
Я не очень заморачивался с причёсыванием кода, но оно работает в пределах 50об/мин ... 9999 об/мин (я оставил 4 разряда под скорость, да и где такие кулеры встречаются?).
Тайминги получаются из внутреннего счётчика времени. На малых оборотах показания плавают, но высокие измеряются более-менее достоверно.
Re: Многоканальный тахометр для вентиляторов (нужен совет)
там же речь о очень низких скоростях, нет никакого разумного смысла дополнять gpio порты какимито аппаратными коммутаторами. для защиты gpio там нужны резисторы последовательно входам ~1..10k и все!
это на любой mcu из конца прошлого тысячалетия сделать без доп компанентов. а на esp32 это будет еще и с BT интерфейсом
а все попытки довесить подобное железом чтоб все стало "понятно" - исключительно от отсутствия опыта программирования (сложнее чем демо-скетчи готовые чуть допиливать под себя). ... и с таким подходом этого опыта никогда и не появится

это на любой mcu из конца прошлого тысячалетия сделать без доп компанентов. а на esp32 это будет еще и с BT интерфейсом
а все попытки довесить подобное железом чтоб все стало "понятно" - исключительно от отсутствия опыта программирования (сложнее чем демо-скетчи готовые чуть допиливать под себя). ... и с таким подходом этого опыта никогда и не появится
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="AlexS4",url="/forum/viewtopic.php?p=4731981#p4731981"]там же речь о очень низких скоростях, нет никакого разумного смысла дополнять gpio порты какимито аппаратными коммутаторами. это на любой mcu из конца прошлого тысячалетия сделать без доп компанентов. а на esp32 это будет еще и с BT интерфейсом
[/uquote]Ой-ли? Уверены?
На electronix-е один человечек жаловался, что енти самые "народные" ESP32 при работе с эфиром периодически запрещают прерывания на несколько мсек! И никто так и не поведал - как победить сей блуд с прерываниями.
Может вы поведаете?
На electronix-е один человечек жаловался, что енти самые "народные" ESP32 при работе с эфиром периодически запрещают прерывания на несколько мсек! И никто так и не поведал - как победить сей блуд с прерываниями.
Может вы поведаете?
Re: Многоканальный тахометр для вентиляторов (нужен совет)
тоже читал про это. сам esp не использовал, кроме как отдельный bt/wifi-uart мост в паре некритичных к задержкам мест
но для задачи с вентиляторами - это все пофиг. ну будет периодически возникать ошибка по частотам, ее либо откидывать можно будет по признаку одновременного существенного отклонения по всем каналам, либо сделать контрольный канал чтоб детектировать эту ошибку. а скорее всего подозреваю ее можно будет просто игнорировать
но для задачи с вентиляторами - это все пофиг. ну будет периодически возникать ошибка по частотам, ее либо откидывать можно будет по признаку одновременного существенного отклонения по всем каналам, либо сделать контрольный канал чтоб детектировать эту ошибку. а скорее всего подозреваю ее можно будет просто игнорировать
Re: Многоканальный тахометр для вентиляторов (нужен совет)
[uquote="AlexS4",url="/forum/viewtopic.php?p=4731992#p4731992"]тоже читал про это. сам esp не использовал, кроме как отдельный bt/wifi-uart мост в паре некритичных к задержкам мест
но для задачи с вентиляторами - это все пофиг.[/uquote]Не факт. Эта задержка нигде в документации не документирована. А значит - может быть любой. И если у того человечка она была "несколько мсек", то в другом режиме работы и в другом окружении может быть другой. Или картина может резко измениться с выходом новой версии прошивки BT-стека.
Кроме того - предположим, что она будет также == "несколько мсек", но повторяться через каждые 100 мсек. И пропеллер вращается с такой же частотой. Что в этом случае увидим? Падающего Карлсона!
Так как пропеллер остановился!
Возможно конечно, что хоть прерывания и запрещаются, но не теряются. И срабатывают после конца запрета. Тогда даже при частых запретах в пару мсек проблем быть не должно. Но это всё - вилами по воде. Китайскими вилами из китайского железа.
Вобщем - ESP32 с чёрным ящиком BT-стека для такой задачи - это хождение по минному полю, покрытому слоем грабель. Али его знает - может будет работать, может - нет. А может - иногда будет, иногда - нет.
[uquote="AlexS4",url="/forum/viewtopic.php?p=4731992#p4731992"]ну будет периодически возникать ошибка по частотам, ее либо откидывать можно будет по признаку одновременного существенного отклонения по всем каналам, либо сделать контрольный канал чтоб детектировать эту ошибку. а скорее всего подозреваю ее можно будет просто игнорировать
[/uquote]Т.е. - предлагаете сразу точить костыли?
Зачем? Лучше взять обычный нормальный МК. Без всяких кривых блюпупов. А ESP пусть лучше рядом постоит, коль сильно нужен.
но для задачи с вентиляторами - это все пофиг.[/uquote]Не факт. Эта задержка нигде в документации не документирована. А значит - может быть любой. И если у того человечка она была "несколько мсек", то в другом режиме работы и в другом окружении может быть другой. Или картина может резко измениться с выходом новой версии прошивки BT-стека.
Кроме того - предположим, что она будет также == "несколько мсек", но повторяться через каждые 100 мсек. И пропеллер вращается с такой же частотой. Что в этом случае увидим? Падающего Карлсона!
Возможно конечно, что хоть прерывания и запрещаются, но не теряются. И срабатывают после конца запрета. Тогда даже при частых запретах в пару мсек проблем быть не должно. Но это всё - вилами по воде. Китайскими вилами из китайского железа.
Вобщем - ESP32 с чёрным ящиком BT-стека для такой задачи - это хождение по минному полю, покрытому слоем грабель. Али его знает - может будет работать, может - нет. А может - иногда будет, иногда - нет.
[uquote="AlexS4",url="/forum/viewtopic.php?p=4731992#p4731992"]ну будет периодически возникать ошибка по частотам, ее либо откидывать можно будет по признаку одновременного существенного отклонения по всем каналам, либо сделать контрольный канал чтоб детектировать эту ошибку. а скорее всего подозреваю ее можно будет просто игнорировать
Зачем? Лучше взять обычный нормальный МК. Без всяких кривых блюпупов. А ESP пусть лучше рядом постоит, коль сильно нужен.
Re: Многоканальный тахометр для вентиляторов (нужен совет)
Наверно, лучше будет «лобовое» решение – на каждый вентилятор по таймеру. Использовать современный МК AVR, например, AVR64DA64, у него 8 таймеров плюс таймер RTC. МК, конечно, стоит подороже, но при единичной разработке это мелочь.
Можно посмотреть вариант: пара дешёвых ATtiny1616, там 4 таймера плюс таймер RTC. В дорогом ЧипДипе стоит 79 рублей, корпус, правда, не очень.
Плюсы: простые измерения с хорошим усреднением, хороший запас для других дел, например, измерение температуры во многих точках и т.д.
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729016#p4729016"]LM курил в молодости, RM ни разу.[/uquote]
Лучше бы «курили RM». У любителей LM, кто постарше, ситуация известная – тяжёлые болезни и кладбище.
Можно посмотреть вариант: пара дешёвых ATtiny1616, там 4 таймера плюс таймер RTC. В дорогом ЧипДипе стоит 79 рублей, корпус, правда, не очень.
Плюсы: простые измерения с хорошим усреднением, хороший запас для других дел, например, измерение температуры во многих точках и т.д.
[uquote="Мокренькая кисонька",url="/forum/viewtopic.php?p=4729016#p4729016"]LM курил в молодости, RM ни разу.[/uquote]
Лучше бы «курили RM». У любителей LM, кто постарше, ситуация известная – тяжёлые болезни и кладбище.