Ребят, есть возможность подключить до 10 датчиков, которые могут иметь разное напряжение питания, от 5 до 32В, так как опрос их не чаще раза в минуту, решил сделать все очень просто, Есть dc-dc преобразователь, ним устанавливаю нужное напряжение (програмно) и включаю нужные датчики. Все ок кроме одного. Если, например, только-что был датчик с питанием 24В, а я теперь хочу включить с напряжением +5, то беда, так как выходной конденсатор преобразователя заряжен до 24В, и если я включу датчик то он банально сгорит. Как можно этого избежать? Идея была добавить 11 канал на котором просто будет резистор какой-то, и если Uпредыдущее>Uтекущего, то на доли секунды включать его для разрядки кондера. Но это какой-то колхоз. Что посоветуете? или тупо резистора на кондер хватит?
Комментарии: 25
Region0123
Развязка через оптопары?
Mir
они тут причем? развязка чего?
Region0123
Что б 24 не шло куда не положено
Mir
ну у меня там Р мосфеты, я включаю нужный
Pavel
А где он будет брать нижнюю часть
Mir
10 штук
Region0123
Погоди ка , я не догнал чего то. Преобразователь dc-dc для всех один? И во время запроса он меняет питание на нужное ??? А мосфеты на входах питания датчиков?
Mir
да. один. Устанавливаю нужное напряжние (програмно) и подаю на нужный датчик открыв нужные мосфеты
Region0123
А, ну тогда да, на датчики где питание выше 5, ставь резисторы и всё. Если там есть ещё свободная линия можно добавить, опрос напряжения, если резистор уже посадил конденсатор, тогда опрашиваем дальше. Или выкинь ёмкость из преобразователя, и поставь на вход каждому свою.
Mir
точно, наверное лучше 10 ёмкостей, так даже лучше) спасибо Но нет) тогда напряжение с него будет через диод мосфета идти назад. Таки лучше резистор+ есть свободная нога АЦП, можно контролировать)
Region0123
Только совсем не убирай, поставь на dc-dc хотя бы 1х50в и резистор подбери в параллель, что б сразу высаживал его на холостом.
Mir
да, так и сделаю
Voha
Что в Си, что в С++ при работе со строками string (массивами символов) нужно следить чтоб не вылезти за размер массива+ оставлять один байт на нулевой символ aka конец строки. В случае со String (ардуиновской библиотекой) пиши как хочешь, ничего не сломается
Mir
в Си string же умеет сам это. Ты о char[]?
Andrey
И в плюсах тем более
Maksim
Вроде char[] надо описывать размер Не? Ну по крайней мере в с++
Mir
смотря как писать)
Andrey
Есть указатели, есть malloc, есть new
Mir
ну С99 вроде умеет char[n], где n не статическая переменная, а например аргумент функции но умеют ли это компиляторы под МК хз С++ так не может
Maksim
Ну это если n быдет аргументом
Andrey
Динамическое выделение памяти давно изобрели.
Maksim
Кстати да
Maksim
Ну я указывал массив и ограничание по массиву
Anonim
можно описывать, а можно нет, но сразу присваивать значения - тогда переменная автоматом создаст размерность для массимва
Voha
Ну в описании ардуино нету STLвского string, я ошибся....