Ребят, есть возможность подключить до 10 датчиков, которые могут иметь разное напряжение питания, от 5 до 32В, так как опрос их не чаще раза в минуту, решил сделать все очень просто, Есть dc-dc преобразователь, ним устанавливаю нужное напряжение (програмно) и включаю нужные датчики. Все ок кроме одного. Если, например, только-что был датчик с питанием 24В, а я теперь хочу включить с напряжением +5, то беда, так как выходной конденсатор преобразователя заряжен до 24В, и если я включу датчик то он банально сгорит. Как можно этого избежать? Идея была добавить 11 канал на котором просто будет резистор какой-то, и если Uпредыдущее>Uтекущего, то на доли секунды включать его для разрядки кондера. Но это какой-то колхоз. Что посоветуете? или тупо резистора на кондер хватит?

Комментарии: 25

  1. Region0123

    Развязка через оптопары?

    • Mir

      они тут причем? развязка чего?

      • Region0123

        Что б 24 не шло куда не положено

        • Mir

          ну у меня там Р мосфеты, я включаю нужный

          • Pavel

            А где он будет брать нижнюю часть

            • Mir

              10 штук

  2. 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, я ошибся....

Не нашли ответ?

Вам также может быть интересно