Arduino Nano и измерение напряжение с нагрузкой
- Войдите на сайт для отправки комментариев
Чт, 30/03/2017 - 00:19
Проблема в следующем. Измеряю напряжение на аналоговом входе и вывоже результат в консоль. Штатно все достаточно точно измеряет, но стоит подключить нагрузку на цифровые выходы, результаты измерения сильно искажаются. Результаты завышаются. Чем больше нагрузка на цифровых выходах, тем сильнее искажается результ.
Даже при минимальном подключении одного светодиода, результат измерений уже уходит за 5%, пара светодиодов и полевой транистор искажают результат уже процентов на 20 и более. Т.е. ни каких измерений при нагрузке на цифровых выходах практически невозможно произвести.
Это нормально или я делаю что то не так? Проблема в моей ардуине или в руках?
(Заглянув в хрустальный шар:) искажения происходят в одну и ту же сторону - завышения показаний?
(Глядя в серебрянное зеркало, где видно отражение хрустльного шара) : питания падение предположить возможно. Но код и схему - не разлядеть никак. Смутны следы силы сегодня.
I'm one with the Force and the Force is with me.
Ту andriano: Искажения естественно в одну сторону, естественно - заавышение.
Ту T.Rook: Схема уж не знаю рисовать зачем, аналог на вход, цифровые на выход. Ни чего сверх естественного. Код проще не куда, не знаю чем он может помочь.
Похоже, что падение напряжения при подключении нагрузки на цифровые выходы. Вопрос в том - это не лечится? Так и должно быть?
Схема затем, что бы было видно куда Вы нагрузку подвесили. И если это не внешний бп, а 5В ардуиновских , то лечите разделением питания нагрузки и цепей управления
Для примера - имею один светодиод, который питается с цифрового выхода. Светодиод включен через резистор на землю. Питание ардуины от usb порта. С выключенным светодиодом результат измерения напряжения 3.854. Если подать сигнал на цифровой выход и зажечь светодиод получаю результат 4.150, если добавить еще один диод то 4.184. Это не в какие ворота. Я с трудом представляю как изолировать включение диодов =(
Ставить маломощные транзисторы в ключевом режиме и напряжение на светодиоды давать с внешнего источника питания?
Схема уж не знаю рисовать зачем, аналог на вход, цифровые на выход. Ни чего сверх естественного. Код проще не куда, не знаю чем он может помочь.
Похоже, что падение напряжения при подключении нагрузки на цифровые выходы. Вопрос в том - это не лечится? Так и должно быть?
Схема (меня опередили), нужна для того, чтобы понять куда вы шаловливыми ручками реле повесили, на отдельный блок или на бедную-маленькую ардуинку.
Да, у вас просаживается напряжение.
Да, это лечится, Нет так быть не должно.
Причина - ваши кривые руки.
------------------
Лечение:
1 вариант. Питание ардуины - священно и ничего на него не вешать. Все говно питать отдельно. По земле дополнительно поставить фильтрующие конденсаторы.
2. Вариант, питать не так строго, но, перед тем, как измерять нужное напряжение, измерить свое напряжение питания (в Гугль!), и умножать не на 5000., а на то к-во милливольт, которое порлучилось.
При этом ОБЯЗАТЕЛЬНО вынуть из прерывания всю херню, которую вы туда понаставили. В прерывании просто поднять флаг, а в loop() постоянно проверять наличие флага и, если он поднят, выполнить то, что вы запихнули, по незнанию, в прерывание. Само собой - убрать из loop() delay()! Заменить его проверкой текущего времени (millis()) и выпеолнять то, что вы там делаете каждые 500 мс.
Все это важно для варианта 2 потому, что измерение станет дольше. И так очень плохо пихать длинные действия в прерывание. Только хороший программист, которые совершенно точно знает, что происходит в коде, может позволить себе длинные действия в прерывании.
Еще можно/нужно почитать про analogReference
Еще можно/нужно почитать про analorReference
предположим, что ему нужен диапазон питания, а про делитель напряжения, он нихрена не знает ;)
хм.... ну тогда может перепаять 1117 на на ардуинке на более мощный? А? угадал?
Можно и поглумиться =)
T.Rook/wdrakula - Про analogReference, опорное напряжение и "правильное" измерение напряжения я в курсе. В моем контексте на данном этапе не принципиально.
wdrakula я не хороший программист, но знаю что происходит в коде. Каждые 500 секунд ни чего не делается, задержка дребезга контактов кнопки при нажатии. Измерение напряжения раз в 2 секунды, при любом методе расчета, ни чем не навредит, хотя совет по флагу в прерывании имеет смысл.
Раз теоретически лечится, подскажите как лечить. Для примера я привел 2 светодиода на цифровых выходах. Как их по правильному подключить, чтобы они не влияли на результат измерения?
еще один упоротый!
Я написал - "КАК".
Измерять сперва напряжение питания. И я, и евгенийП и еще куча народа выкладывали тут функцию измерения напряжения питания.
Не найдете - ищите в гугле. Она зависит от применяемого контроллера.
А ПОТОМ, измеряете свое напряжение, используя напряжение питания, как опорное.
Или используйте внутренний источник, если понимаете как.
--------------------
Вы не можете даже вообразить, как задалбывают ОДНИ И ТЕЖЕ вопросы из месяца в месяц.
Потому старожилы и становятся злыми и циничными.
Для примера я привел 2 светодиода на цифровых выходах. Как их по правильному подключить, чтобы они не влияли на результат измерения?
это ПИТАНИЕ, хрустального шара у меня нет. Возьмите мультиметр и посмотрите, что происходит на шине питания, при включении диодов.
Если просадка большая - у Вас кабель USB - говно. и т.д. вариантов может быть много.
Работайте головой, собственной! Форум - это не справочная.
Сюда приходят ПОСЛЕ самостоятельного поиска ответов в гугле и книгах.
Раз теоретически лечится, подскажите как лечить.
Обеспечьте стабильное опорное напряжение и используя analogReference меряйте стабильно, вне зависимости от просадок питания.
Про analogReference, опорное напряжение и "правильное" измерение напряжения я в курсе. В моем контексте на данном этапе не принципиально.
Для восстановления нити беседы: Первичный вопрос был почему плавают результаты при измерениях. Объяснили почему, рассказали как мерять. Оказывается это не принципиально. Ладно. В чем сейчас вопрос?
Вопрос остался в общем один, озвученный выше.
Так как пара светодиодов цифровых выходах дает "просадку" напряжения и влияет на результат измерения я с трудом представляю как изолировать включение диодов.
Ставить маломощные транзисторы в ключевом режиме и напряжение на светодиоды подавать с внешнего источника питания? Или еще какой то вариант стоит рассмотреть?
Ставить маломощные транзисторы в ключевом режиме и напряжение на светодиоды подавать с внешнего источника питания?
Да. Вы же в курсе про нагрузочную способность выходов ардуинки?
Но зачем оставлять зависимость качества измерения от стабильности питающего?! Может таки проще по хорошоему организовать измерение?
Раз теоретически лечится, подскажите как лечить.
Обеспечьте стабильное опорное напряжение и используя analogReference меряйте стабильно, вне зависимости от просадок питания.
Если я правильно понимаю, без внешнего источника опорного напряжения невозможно получить стабильный результат измерения при нагрузке на цифровых портах ардуино?
Да. Вы же в курсе про нагрузочную способность выходов ардуинки?
Но зачем оставлять зависимость качества измерения от стабильности питающего?! Может таки проще по хорошоему организовать измерение?
По хорошему, все равно при подключении нагрузки на цифровые выходы плывет результат.
Ок. Понял вас. Спасибо.
Если я правильно понимаю, без внешнего источника опорного напряжения невозможно получить стабильный результат измерения при нагрузке на цифровых портах ардуино?
Есть внутренний 1.1В. Но величина опорного это максимальная величина измерения. Если нужно больше ( через делитель точность не устаивает), то вешаем простейший стаб (стабилитрон + резистор) на нужное напряжение. Но, конечно, все равно это меньше питающего. Вариантов масса :)
В общем, по результатам экспериментов. При "правильном" измрении напряжения и минимизации нагрузки до 9мА (реле через мосфет, питается реле от внешнего источника) завышается результат измерения на 0.098, при использовании встроенного опорного напряжения завышается на 0.161. Остановился на первом варианте.