avatar_UriBas

Моргалка на Arduino. Этюды для начинающих.

Автор UriBas, 08 Март 2017 в 16:08

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

UstAlexei

Цитата: Dunkel от 24 Март 2017 в 13:01
Зачем вообще все эти расчеты?
Для расчета предварительного коэффициента делителя используем формулу. При расчете задаемся требуемым опорным напряжением на контроллере (задается регистрами контроллера, Реношник об этом в статье писал), больше этого напряжения контроллер замерить не сможет (будет измерять всегда 1023), а если вы превысите по входу напряжение питания контроллера, то и вход можете вывести из строя.
После того как определились с расчетным коэффициентом, удостоверились что сжечь ничего не сумеете, производите поправку коэффициента при помощи источника образцового напряжения, либо поверенного вольтметра.

Dunkel

В нашем конкретном случае просто берем любую пару резисторов от 10к в соотношении 1:4 - 1:5.
Дальше подключаем и вычисляем фактический коэффициент.
Никаких других расчетов не нужно.
Многофункциональная облачная моргалка/логгер:
https://morgalka78.wordpress.com/

UstAlexei

#92
Я бы на вашем месте применил опорное напряжение 1,1 В, и соответственно выбрал другой делитель. Поясню почему.
Нам нужна большая точность, если вы выбираете делитель 1 / 5, то точность измерения напряжения будет хуже 20-25 мВ на один квант АЦП.
При выборе делителя 1/2 точность станет выше и будет около 15 мВ на один квант АЦП, но вы имеете риск повредить контроллер, если случайно превысите напряжение 15 В на клеммах АКБ.
Напротив, изменив делитель до 1/13.636 и применив опорное напряжение 1,1 В, вы получаете высокую точность с нулевым риском выхода контролера из строя.

Всмотревшись в даташит и увидев что контроллер будет врать в 1-3 кванта, точность у устройства имеет важное значение...

Яков93

#93
Цитата: Dunkel от 24 Март 2017 в 08:56
А запитать контроллер лучше через USB или отдельную понижайку, иначе легко спалить.
Стабильное питание для проведения измерений очень важно.
Вот что я для себя на данный момент определил по иерархии от самого неправильного к более правильному.

Питать через USB неправильно. На разных источниках с выходами usb напряжение немного гуляет относительно номинальных 5В, в результате если питать ардуину через БП с USB выходом, там может быть допустим 5.1В. Если надо поменять программу или посмотреть данные через Serial.print подключаете ардуину к компу, а там напряжение уже 4,95 (допустим). В итоге ардуина выдает разные данные о напряжении АКБ, т.к. эти данные зависят от опорного напряжения, которым и является питающее напряжение 5В (по дефолту).

Я пробовал другое опорное напряжение (INTERNAL) - 1,1В для ардуино Нано. Оно уже не меняется в зависимости от колебаний напряжения 5В, но столкнулся с тем, что оно тоже скачет на несколько сотых во время подачи сигнала на срабатывание мосфета. Ну т.е. подается HIGH на цифровой вывод, опорное напряжение меняется на 0,02В (не помню точно цифр), в итоге показания тоже пляшут. Может я чего-то не так сделал, сколько ни искал, ошибок у себя не нашел.

Можно задействовать вход Vin и подключать к нему понижайку или БП от 6В до 12В. В принципе неплохо, линейный стаб. на ардуине уменьшит напряжение до необходимых 5. Хотя на самом деле на выходе "5В" ардуины  будет не точно 5В, а допустим 4,95 и если подключить ардуину к компу для программирования или снятия информации то напряжение тоже может слегка меняться и показания будут другими. Кроме того, если подаваемое напряжение 10-12В линейный стаб на ардуине сильно греется и жрет много энергии (если это важно).

В итоге для вывел как самый лучший вариант для себя - подключение питания к выходу "5В" Ардуины. Только питание должно быть стабильным. Пробовал подключать зарядки от телефонов с номиналом 5В, но у них на самом деле напряжение слегка скачет (по крайней мере тех что есть у меня). Самое лучшее - DC-DC понижайка на 5В. Подключение к компу никакого влияния не оказывает, т.к. напряжение ставлю 5В или капельку выше - 5,1В. Нагрева ардуины нет и потребление тока минимальное.
Та понижайка, которую Вы указали классная, единственный ее недостаток - подстроечник, который может от механических нагрузок менять выходное напряжение, что вообще не желательно. Я себе прикупил еще вот такие . Выходное напряжение не меняется - точно 5,1В, размер очень маленький, правда стоят неоправданно дорого, может где-то подешевле можно найти.

Яков93

#94
Цитата: UstAlexei от 24 Март 2017 в 13:49
Я бы на вашем месте применил опорное напряжение 1,1 В, и соответственно выбрал другой делитель. Поясню почему.
Нам нужна большая точность, если вы выбираете делитель 1 / 5, то точность измерения напряжения будет хуже 20-25 мВ на один квант АЦП.
При выборе делителя 1/2 точность станет выше и будет около 15 мВ на один квант АЦП, но вы имеете риск повредить контроллер, если случайно превысите напряжение 15 В на клеммах АКБ.
Напротив, изменив делитель до 1/12 и применив опорное напряжение 1,1 В, вы получаете высокую точность с нулевым риском выхода контролера из строя.

Всмотревшись в даташит и увидев что контроллер будет врать в 1-3 кванта, точность у устройства имеет важное значение...
А какая разница? При опорном напряжении 1,1В контроллер врет на 1-3 кванта (0,1-0,3%) и при опорном напряжении 5В врет на 1-3 кванта (0,1-0,3%).  Получается в процентом отношении  при разном опорном напряжении вранье одинаковое.
При переводе квантов в реальные вольты (0В-15В) при любом опорном напряжении 1 квант будет равен одному и тому же - 0,014648 В. Если кванты в АЦП скачут одинаково, то и конечный результат будет скакать одинаково +/- 0,045 В. Это конечно в теории, на самом деле скачки еще больше.

Мне кажется низкое опорное напряжение имеет смысл для "уточнения" только низковольтных источников - ниже 5В, чтобы можно было растянуть 1024 кванта на весь диапазон измеряемого напряжения.

Dunkel

Цитата: Яков93 от 24 Март 2017 в 13:57
Та понижайка, которую Вы указали классная, единственный ее недостаток - подстроечник, который может от механических нагрузок менять выходное напряжение, что вообще не желательно.

Тогда можно вот такую:

https://www.aliexpress.com/item/DC-6-24V-12V-24v-to-5V-USB-Output-charger-step-down-Power-Module-Mini-DC/32692500351.html

Или подстроечник лаком заклеить.
Многофункциональная облачная моргалка/логгер:
https://morgalka78.wordpress.com/

Яков93

Цитата: Dunkel от 24 Март 2017 в 14:25
Цитата: Яков93 от 24 Март 2017 в 13:57
Та понижайка, которую Вы указали классная, единственный ее недостаток - подстроечник, который может от механических нагрузок менять выходное напряжение, что вообще не желательно.
Тогда можно вот такую:
https://www.aliexpress.com/item/DC-6-24V-12V-24v-to-5V-USB-Output-charger-step-down-Power-Module-Mini-DC/32692500351.html
Или подстроечник лаком заклеить.
Можно и так и так.

Яков93

#97
Цитата: UstAlexei от 24 Март 2017 в 14:24
[user]Яков93[/user], внимательно прочитайте. Особенно там где про риск и про коэффициенты!
Я внимательно прочитал. Про риск понятно, хотя риск больше виртуальный, чем реальный.
Что надо прочитать про коэффициенты?
Я уже написал, что в итоге мы переводим единицы полученные от АЦП в реальные Вольты. При диапазоне 0-15В на каждую единицу АЦП приходится около 15 мВ (15/1024) при любом опорном напряжении.
Если единицы в АЦП скачут по его внутренним причинам, то и выходной результат скачет неважно при каком опорном напряжении эти единицы получены. Или они при разном опорном по-разному скачут?

Допустим измеряемое напряжение 12 В
При опорном напряжении 5 В и делителе 60 кОм-30 кОм (0-15В) на выходе получаем 4 В или 819 единиц АЦП.
При опорном напряжении 1,1 В и делителе 126 кОм-10 кОм (0-15В) на выходе получаем 0,88 В или 819 единиц АЦП.

Т.е. разницы в количестве получаемых единиц АЦП при разном опорном напряжении нет. При переводе единиц АЦП обратно в вольты разницы тоже нет (0,014648 В * 819 = 11,9967В). В чем тогда разница?

Alex_Soroka

Цитата: Яков93 от 24 Март 2017 в 14:59
В чем тогда разница?
в применении в Атмеге математики с плавающей точкой  :hello:
памяти хватит ? скорости вычислений "с точкой" хватит?

Вообще надо рассчитывать делитель для АЦП так, чтобы:
1) токи(напряжения) снимаемые с делителя были выше токов(напряжений) наводок на провода.
2) напряжение максимума измерений (15в) было ближе к 1.1в(1024 по "попугаях АЦП").
3) помнить что Атмега 8-и битная и внимание удилять "атомарным операциям" и своевременности снимаемости данных.

реношник

Цитата: UstAlexei от 24 Март 2017 в 13:49
Я бы на вашем месте применил опорное напряжение 1,1 В, и соответственно выбрал другой делитель. Поясню почему.
Нам нужна большая точность, если вы выбираете делитель 1 / 5, то точность измерения напряжения будет хуже 20-25 мВ на один квант АЦП.
При выборе делителя 1/2 точность станет выше и будет около 15 мВ на один квант АЦП, но вы имеете риск повредить контроллер, если случайно превысите напряжение 15 В на клеммах АКБ.
Напротив, изменив делитель до 1/12 и применив опорное напряжение 1,1 В, вы получаете высокую точность с нулевым риском выхода контролера из строя.

Всмотревшись в даташит и увидев что контроллер будет врать в 1-3 кванта, точность у устройства имеет важное значение...


Внешний источник опорного напряжения является наиболее точным, но требует дополнительного оборудования.

Внутренний reference стабилен, но имеет погрешность +/- 10%.

Голый Vcc полностью ненадежен в большинстве случаев.

Яков93

Цитата: Alex_Soroka от 24 Март 2017 в 15:19
Цитата: Яков93 от 24 Март 2017 в 14:59
В чем тогда разница?
в применении в Атмеге математики с плавающей точкой  :hello:
памяти хватит ? скорости вычислений "с точкой" хватит?
А от величины опорного напряжения меняется математика с плавающей точкой? Прибавляется память если сделать опорным 1,1В вместо 5В? И наверное увеличивается скорость вычислений.
Вопрос был в том меняется ли точность вычислений АЦП при измерении 12В разным опорным напряжением (5В или внутренним 1,1В).
Цитировать
Вообще надо рассчитывать делитель для АЦП так, чтобы:
1) токи(напряжения) снимаемые с делителя были выше токов(напряжений) наводок на провода.
2) напряжение максимума измерений (15в) было ближе к 1.1в(1024 по "попугаях АЦП").
3) помнить что Атмега 8-и битная и внимание удилять "атомарным операциям" и своевременности снимаемости данных.
Конкретные номиналы резисторов здесь пока не обсуждали, речь только об их соотношении друг к другу. А так-то да, желательно применять резисторы с номиналом поменьше чтоб ток на вход МК шел побольше.

реношник

Кому интересно могут поэкспериментировать  http://blog.unlimite.net/?p=25

UstAlexei

#102
Еще раз поясняю. Человек хотел сделать делитель с коэффициентом 1 / 4 - 1 / 5. Разумеется что при таком делителе напряжение на контроллере будет от 60% и менее от напряжения питания. Которое он применяет в качестве опорного. Т.е. 1 квант = 25 мВ. Пока согласны?
Я предложил изменить делитель 1 / 2, но предостерег от превышения напряжения на входе контроллера. Поэтому предложил сменить опорное напряжение и перестроить делитель до 1 / 14. Не будете возражать что теперь 1 квант = 15 мВ.
Точность стала выше? 25мВ >15 мВ?

Яков93

[user]UstAlexei[/user], я не против, просто не прочитал всю страницу, увидел только последнее Ваше сообщение про то, что опорное напряжение 1,1В лучше напряжения 5В.
А так-то да, делитель 1/2 (или может лучше 2/1 - R1 все-таки больше R2) гораздо лучше делителей 1/4-1/5  для 15В и 5В опорного.
А делитель 1/14 при опорном 1,1В еще и безопаснее.

Dkin

#104
Я что-то не совсем понимаю, подскажите в моем случае. Напряжение питания ардуино (через ее встроенный стабилизатор) - АКБ. Напряжение питания меняется, меняется на входе А0. При 14,4В они всегда будут одинаковыми или нет? Мне нужно только значение этого напряжения зафиксировать. Или оно от температуры зависит например? Допустим опытным путем поймал я цифру 745 ( при напр. 14,4В), от чего она поменяется, если напряжение питания ардуино 14,4В в этот момент и на делитель А0 подается тоже значение, при котором я его первый раз поймал.

Яков93

Цитата: Dkin от 24 Март 2017 в 18:37
Я что-то не совсем понимаю, подскажите в моем случае. Напряжение питания ардуино (через ее встроенный стабилизатор) - АКБ. Напряжение питания меняется, меняется на входе. При 14,4В они всегда будут одинаковыми или нет? Мне нужно только значение этого напряжения зафиксировать. Или оно от температуры зависит например? Допустим опытным путем поймал я цифру 745 ( при напр. 14,4В), [b-b]от чего она поменяется[/b-b], если напряжение питания ардуино 14,4В в этот момент и на делитель подается тоже значение, при котором я его первый раз поймал.
Теоретически ни от чего она не поменяется.
Подаете Вы на вход питания ардуины 14,4В или 12В или 11 вольт все равно это напряжение преобразуется в опорное 5В и с этими 5-ю вольтами уже сравнивается то напряжение, которое поступает на вход A0 (или другой Ах) от делителя. Если от делителя попадает на А0 5В, значит имеем цифру 1023. Если попадает например 4 вольта будет цифра 819, попадет 3 вольта, будет 745 (к примеру).

Dkin

#106
Также, если мерить скорость снижения напряжения, там вообще на значение важно, а разница этих значений? Это я к тому, что например мы получили значение скорости напряжения 7мВ/с на 13,2В. А на самом деле там было 13,0В. Но скорость определена правильно.

UstAlexei

[user]Dkin[/user], Что то Ваш вопрос не совсем понятен.
Т.е. вы сделали делитель при котором у вас контроллер измеряет напряжение на входе А0 = 745 квантам. Но оно колеблется? Как вы это определили, и на какую величину?
Возможно у вас плавает опорное напряжение, про него уже тут почти страница написана.
Возможно Ваш делитель ловит много помех, поскольку:
1. сопротивления слишком большие и ток который через них протекает сравним с влиянием наводок.
2. возможно сигнальные провода проходят в сильных ЭМ полях.
Поясните.