Какой Ардуино выбрать для подключения 8 термодатчиков, Bluetooth hm-10, 1 сервопривода и вентиллятора?
- Войдите на сайт для отправки комментариев
Вентиллятор в данной схеме будет использоваться для получения информации о скорости воздушного потока, то есть будет подключен к аналоговому входу. Или его правильней как-то по другому подключить? Например как термопару через max31855? Тогда какая будет микросхема для получения сигнала в цифре с обычного 12 вольтового компьютерного вентиллятора?
Диапазон измерения температур будет от -25 до +300 градусов цельсия. Для осуществления измерения данного диапазона нашёл только один вариант: max31855 + термопара. Или есть другие варианты? Точность измерений не сильно важна, важна их линейность на этом диапазоне температур.
Существуют ли модули на основе max31855 к которым подключается сразу несколько термопар, чтобы не приобретать модуль для каждой термопары отдельно?
Итого нужно подключить: 8 термопар, bluetooth-модуль, сервопривод, вентиллятор в качестве считывателя. Хватит ли для этого Arduino Uno или необходим Arduino Mega?
А вы кем работаете?
Я работаю в гражданской авиации, данная задача не относится к работе совсем :) Просто хочучка для гаража :) Надоело у печки заслонку вручную регулировать...
А самому посчитать никак?
max31855 = 2 вывода + 1 CS, соответственно 2+8 выводов; один ШИМ вывод - сервопривод; два вывода - блютуз. Промежуточно имеем 10+1+2 = 13. У Уно/Нано их как раз 13 цифровых + 6(которые тоже могут работать как цифровые А0-А5) = 18. Ещё два чисто аналоговых входа остаются - А6-7. Так что выводов с достаточным запасом. Другое дело - хватит ли вам флеш и ОЗУ для кода?
Вот не знаю, не работал с max31855. Но предполагаю, что можно попробовать термопары коммутировать с помощью аналогового мультиплексора, типа 74HC4051. Тогда минус семь модулей, минус 4 ноги контроллера + немного кода для мультиплексора.
Недостаток флеша и ОЗУ (если вдруг не будет все влезать, я ж незнаю что вы там мутить будете) можно компенсировать с помощью новых Нано-подобных плат на основе Atmega4808, их как раз на Алишку завезли, - 48кБ флеша, 6кБ ОЗУ. Нормально, и чуть дешевле Меги.
MAX31855 - Cold-Junction Compensated Thermocouple-to-Digital Converter (https://datasheets.maximintegrated.com/en/ds/MAX31855.pdf)
Подключение вентиляторов к нему не предусмотрено.
Не знаю, насколько упадёт точность при переключении термопар мультиплексором, но, подозреваю, что это не лучшая идея для термопары на 100Ом.
Осмелюсь поправить, у Уны их нет (там DIP).
термопары на 100Ом.
Это что такое?
как?
По коду на контроллере - там всё просто: отправка информации с датчиков (термо и вентиллятора) по блютуз, приём данных по блютуз для управления сервоприводом. Думаю памяти Arduino Uno на это хватит. Главное что цифровых входов хватило :) Вся логика обработки и генерации данных будет находится на Андроиде.
Хотелось бы ещё понять, чем принципиально отличается вот этот вариант коммутационной платы на MAX31855 с пятью контактами:
от этого с четырьмя контактами:
... будет ли измеряться диапазон от -25 до +300 градусов хотя бы приблизительно линейно в плате с четырьмя контактами?
Итого получается:
1) Мультиплексором термопары к коммутационной плате не подцепить :( Очень жаль, можно было бы хорошо сэкономить на покупке коммутационных плат. Да и в продаже не вижу коммутационных плат для нескольких термопар, значит есть какая-то проблема с этим на физическом уровне.
2) По поводу вентилятора понял, что 12 вольт можно подключить через делитель на аналоговый вход. Вряд ли он будет выдавать все 12 вольт, поэтому нужно будет просто подобрать резисторы, например для максимальных 10, чтобы вся разрядность аналогового входа была задействована.
как?
Вентилятор будет перед дроссельной заслонкой, там в основном температуры до +10.
Для максимальных 10 чего?
MAX31855 - Cold-Junction Compensated Thermocouple-to-Digital Converter (https://datasheets.maximintegrated.com/en/ds/MAX31855.pdf)
Подключение вентиляторов к нему не предусмотрено.
Не знаю, насколько упадёт точность при переключении термопар мультиплексором, но, подозреваю, что это не лучшая идея для термопары на 100Ом.
Во первых, никто вентилятор к модулю не подключает. Во вторых- в данном случае внутреннее сопротивление k-датчика роли не играет, он работает не так. Он вырабатывает напряжение, в зависимости от температуры. А в этом случае играет роль не сопротивление перехода мультиплексора (вы правы, оно достаточно высокое 40-70 Ом по даташиту), а его входное сопротивление, и сопротивление аналогового входа модуля.
Думаю - коммутировать k-термопары все же можно. А потери можно и программно компенсировать. Один фиг калибровать температуру придется.
термопары на 100Ом.
Это что такое?
http://efo-sensor.ru/termosoprotivleniya-pt100-pt500-pt1000-i-drugie.html -> PT100
Во первых, никто вентилятор к модулю не подключает.
См. первопост..
Про приключения с мультиплексором я почитаю с удовольствием.
Ну вот вы и гляньте. Тс предполагал вентилятор, как датчик скорости потока воздуха, к ардуино подключить, а не к модулю MAX31855.
В мои планы не входит участие в бессмысленном сраче с третьим лицом насчёт того, что имел в виду ТС. Я понял так, Вы - иначе. Я высказал свое мнение, Вы - свое. Ничьи права не нарушены? Тогда предлагаю закончить с этим.
термопары на 100Ом.
Это что такое?
С каких это пор термосопротивление (даже РТ100!) стал термопарой?
Вопросы к топик стартеру:
Вы уверены, что вам нужно именно в восьми местах замерять температуру в пределах 300°? Может таки в одном-двух хватит? А в остальных местах может DS18B20 подойдут, или LM35?
Вам точно нужна особенно высокая точность измерения температуры, или +- троллейбусная остановка сойдёт?
Не проще ли те же. k-термопары, или даже просто терморезисторы на A0-A7 через обыкновенные ОУ зацепить? Дёшево и сердито, пример тут http://www.bristolwatch.com/ele/thermalcouple_amplifier.htm и ещё куча реализаций в инете.
Да, после вентилятора придется ещё выпрямительные мост на диодах шотки городить, переменка там получится.
Вольт :) Ну 12 вольтовый вентилятор даст 12 вольт при сильном кручении... возможно. Поток воздуха у дроссельной заслонки будет не такой большой, чтобы раскрутить этот вентилятор так сильно, поэтому, думаю, на максимальном потоке воздуха будет давать вольт десять.
Чем больше, тем лучше. В идеале нужно 8 термопар, в реале думаю всё же 6 или 4 поставить сначала для проверки идеи вообще на работоспособность.
Для измерения температуры в помещении подойдут, но не для изменения температуры в агрегате.
Особа высока точность не нужна, нужна более-менее линейность измерений.
термопары на 100Ом.
Это что такое?
С каких это пор термосопротивление (даже РТ100!) стал термопарой?
OK, термосопротивление, присоединяемоe к Thermocouple-To-Digital convertor.
Есть кулеры на 4 провода. Там четвертым идёт выход датчика холла, как мне помнится. Его можно завести прямо на external interrupt pin и считать импульсы, вычисляя скорость. Без мостиков и преобразователей.
Каким образом? Как микровольты термопары согласуются с омами термосопротивления?
нет.
нет.
Ни фига се буржуйка с реактивной тягой....
Хотя бы вообще вращаться смог.
А, вон оно чего. Я почему-то считал, что речь идёт о MAX31865. Сорян, тогда.
И по поводу термопар и термосопротивлений: из того, что нашёл на Али, что может измерять как отрицательную температуру, так и высокую положительную без нелинейных искажений - это термопары к-типа, которые подключают через АЦП MAX31855, чтобы получить оную в цифре и более-менее точной. PT100 там меряют от 0 до 400 примерно, при этом на температурах меньше нуля большие искажения. Других вариантов, как мерить одновременно отрицательную и высокую положительную температуру - на нашёл.
Ни фига се буржуйка с реактивной тягой....
Хотя бы вообще вращаться смог.
A 3-pin fan is generally connected to a mobo fan port and its speed is changed by changing the supply voltage on Pin #2 of the mobo port. The third pin (Pin #3 on the port) is connected usually to a Yellow wire to the fan. The fan motor generates a pulse signal (2 pulses per revolution) which is sent on the Yellow wire back to the mobo for monitoring.
...
A 4-pin fan works similarly, but with an important difference. The fan motor itself is different to work with this system. A mobo 4-pin fan port has the same three pins and signals on Pin #'s 1 to 3. One important difference, though, is that Pin #2 ALWAYS has the full +12 VDC on it. The added Pin #4 carries the PWM (Pulse Width Modulation) signal from mobo to fan.
----
Так выходит, что холл есть и трехпиновых и в четырехпиновых.
Кстати, про какие-то модули для термопар я читал - мол на Али продаются с неудачной разводкой. Приходится, мол, фиксить сдуванием МС, перерезанием дорожки и обратной припайки.
https://elchupanibrei.livejournal.com/37378.html
а куда ему деваться )))
К топик стартеру.
Ну вот вам и схема вырисовывается.
K-термопары с усилками на ОУ (ссылку я давал) на аналоговые выводы, точности для вашей задачи за глаза (линейности похоже тоже). В остальных местах, где выше +125° не предполагается, DS18B20 (их все можно на один пин МК сажать). Вентилятор на D2 или D3, читать датчик холла по прерыванию. И куча пинов свободных в сухом остатке, и код простой
Пс. Не могу понять - зачем обрабатывать на Андроиде, если у МК куча ресурсов остаётся для вашей задачи?
Итак, пришли к вопросу, указанному в названии топика: Похоже там Нано с головой хватит.
Да, ещё один момент. Как я понял из описания принципа работы (могу ошибаться, но не думаю что ошибаюсь), термопара работает ТОЛЬКО при разности температур на холодном и горячем спае. Если разности нет, то и сигнала с нее нет.
Пример для понимания: гараж и ваша буржуйка имеют одинаковую температуру = на входе термопары нет напряжения. Вы зажгли буржуйку, термопара начала что-то генерировать, при этом, точкой начального отсчёта для нее будет являться температура в гараже. По мере прогревания гаража, холодный спай термопары будет тоже нагреваться, соответственно точка начального отсчёта будет смещаться. Видимо это учитывается модулем max31855.
Если обходится без него, нужен внешний поверочный источник данных по температуре, DS18B20 например. При этом в коде придется учитывать его показания и соответственно смещение точки начального отсчёта температуры для термопары.
Для упрощения жизни, тем более вам супер точность не нужна, вам таки нужен либо модуль max31855, либо смотреть в сторону тупых терморезисторов, и усилителей на ОУ для них.
И толку с этого??? А никакого !!! )))))))))))))))))
Включайте мозг !!!
а куда ему деваться )))
А работать он как будет ??? Святым духом питаться ??? ))))))))))))))
Ну захачит, емае. Отпаяет двигло от питалова, оставит его только на холле.
При какой температуре он будет работать? И будет ли он работать при этой температуре?
PT100 там меряют от 0 до 400 примерно, при этом на температурах меньше нуля большие искажения. Других вариантов, как мерить одновременно отрицательную и высокую положительную температуру - на нашёл.
что касается точности/линейности:
во-первых, у тебя нет сформулированных требований. "Точность измерений не сильно важна, важна их линейность на этом диапазоне температур." - это фраза для, извините за выражение, гуманитариев. "большие искажения" - тоже для них. В числах можешь выразить?
во-вторых: чем ты собираешься п(р)оверять то, что спаяешь, для различения больших значений от небольших?
ИМХО - не оттуда заходим. -25С это нормально, +300 - это экстремально.. Сомневаюсь, что существует датчик, который отработает 300+К адекватно. Скорее всего понадобится 2 или более датчиков. Хотя все зависит от требуемой точности измерений.
При какой температуре он будет работать? И будет ли он работать при этой температуре?
При зимней гаражной. В гараже у меня - 15 градусов при -40 на улице. Это максимум минимума, который удалось зафиксировать за две зимы. Средняя зимняя температура в гараже -7 градусов. Верхняя отметка при использовании печи около +20 градусов. Вентилятор будет установлен герметично перед дроссельной заслонкой печи. Обычный компьютерный вентилятор крутится на тяге печи, проверял.
С термопарами мороки много и точность низкая. Я бы взял датчик на основе Pt100. Они и до 800С бывают, но не все исполнения. Подключать можно через модуль на базе MAX31865. Вот например - https://aliexpress.ru/item/32832002951.html
PT100 там меряют от 0 до 400 примерно, при этом на температурах меньше нуля большие искажения. Других вариантов, как мерить одновременно отрицательную и высокую положительную температуру - на нашёл.
платиной и от -200 измерять можно.
Предполагаю, что платиновые дорого стоят. В любом случае, заказал уже термопары к-типа и обвес к ним на микрухе MAX31855. Может быть такое решение дорого, но просто и точно :)
что касается точности/линейности:
во-первых, у тебя нет сформулированных требований. "Точность измерений не сильно важна, важна их линейность на этом диапазоне температур." - это фраза для, извините за выражение, гуманитариев. "большие искажения" - тоже для них. В числах можешь выразить?
"Точность измерений не сильно важна, важна их линейность на этом диапазоне температур." Требования именно такие, потому что абсолютные значения температур не нужны. Мне нужна дельта температуры с датчиков за период времени.
во-вторых: чем ты собираешься п(р)оверять то, что спаяешь, для различения больших значений от небольших?
Не собираюсь. Думаю здесь уже всё спаяли, чтобы просто получать данные с датчиков:
PT100 там меряют от 0 до 400 примерно, при этом на температурах меньше нуля большие искажения. Других вариантов, как мерить одновременно отрицательную и высокую положительную температуру - на нашёл.
платиной и от -200 измерять можно.
Предполагаю, что платиновые дорого стоят.
Pt100 и есть платиновые с сопротивлением 100 Ом при 0С
ИМХО - не оттуда заходим. -25С это нормально, +300 - это экстремально.. Сомневаюсь, что существует датчик, который отработает 300+К адекватно. Скорее всего понадобится 2 или более датчиков. Хотя все зависит от требуемой точности измерений.
Ну, судя из того что вычитал, термопара к-типа с обвязкой на MAX31855 как раз измеряет достаточно точно диапазон от -200 до +1350, при этом конструктив исполнения этих термопар можно вкрутить в металл с отверстием 6 мм. Другое дело, что это достаточно не дёшево для множества датчиков... но я уже купил, осталось дождаться доставки.
Судя по этому видео-разбору работы вентилятора (https://youtu.be/jqCczTX-HGg) можно подать напряжение между чёрным и жёлтым проводом вентилятора, чтобы считать скорость вращения? Получается, что жёлтый замыкается на землю 2 раза за оборот, соответственно напряжение будет то появляться то пропадать, а это уже можно считать, верно?
Схема в вентиляторе без питания работать не будет. А с питанием вентилятор будет крутиться.
Нашёл статью, как из 3-х пинового вентилятора можно сделать анемометр: (https://skootsone.yolasite.com/wind-pow-02.php). В кратце:
1) Снять статор.
2) Вместо катушек, в схему, включить два резистора. Это соблюдает «статус кво» для микросхемы и позволяет работать формирователю тахометрических импульсов.
Теперь на все вопросы ответы найдены, кроме одного: насколько длинным может быть провод для передачи цифрового сигнала на Ардуино. Один из температурных датчиков будет далеко, метров 12 от модуля Ардуино. Сам датчик длиною в 1 метр заказал, итого от платы на MAX31855 до цифровых контактов Ардуино остаётся 11 метров. Много это или норм?
Очень плохо.
Очень плохо.
Всмысле?
от платы на MAX31855 до цифровых контактов Ардуино остаётся 11 метров. Много это или норм?
Много. Не взлетит.