Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Как с помощью АЦП измерить напряжение

Непрочитано 17.01.2008, 03:31  
Sollus
Частый гость
 
Регистрация: 10.01.2008
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Sollus на пути к лучшему
По умолчанию Как с помощью АЦП измерить напряжение

Нужно с помощью МК со встроенным АЦП измерить напряжение между этими точками, чем точнее тем лучше, не знаю как подключится к АЦП

-- Прилагается рисунок: --
Реклама:
Sollus вне форума  
Непрочитано 17.01.2008, 11:31  
day177
Прописка
 
Регистрация: 12.11.2006
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
day177 на пути к лучшему
По умолчанию

а какое максимальное значение напряжения будет в этих точках?

Я вот тоже начал изучать ADC. Господа! Кто подскажет как максимально точно считать результат?

Поясню о чем я. Имеем АЦП с делителем на входе, параметры которого естественно будут отличаться. Так вот, интересует нормирование и начальная подстройка результата. Встречал такую формулу adc_data=ADCW*k, где adc_data - финальный результат преобразования, ACDW (кстати что это за регистр, в даташите такого не нашел???) - результат АЦП, k - корректировочный коэффициент. Может есть какие еще формулы, подходы... Поделитесь если не трудно
day177 вне форума  
Непрочитано 17.01.2008, 20:06  
vikpol
Частый гость
 
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
vikpol на пути к лучшему
По умолчанию

Цитата:
Встречал такую формулу adc_data=ADCW*k, где adc_data - финальный результат преобразования, ACDW (кстати что это за регистр, в даташите такого не нашел???)
Регистр ADCW - это виртуальный регистр компилятора CodeVisionAVR. В нем хранится 16-битный результат АЦП преобразования (т.е. ADCH+ADCL).
Подробно про этот регистр и про многое другое (фильтрация и нормирование измеряемого сигнала перед
подачей на АЦП) описано на сайте http://avr123.nm.ru
если не ошибаюсь - урок №9
__________________
Нет слов "не могу" - есть "не хочу"
vikpol вне форума  
Непрочитано 17.01.2008, 21:16  
zelanez
Вид на жительство
 
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
zelanez на пути к лучшему
По умолчанию

Готово:
U = 3V x ((0,123+1+1+1+1+1)/(0,123+1+1+1+1+1+0,123))= 2,9130946773433820065944418276024
По теме: выбери МК, почитай ДШ. Что непонятно - спрашивай.
Для более точного измерения нужно производить подключение АЦП к одной заданной точке (ты их не обозначил на схеме) и опорному напряжению. Опорное напряжение можно задать в том же МК, например в PIC16F628
zelanez вне форума  
Непрочитано 18.01.2008, 00:26  
Sollus
Частый гость
 
Регистрация: 10.01.2008
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Sollus на пути к лучшему
По умолчанию

Сообщение от zelanez
Готово:
U = 3V x ((0,123+1+1+1+1+1)/(0,123+1+1+1+1+1+0,123))= 2,9130946773433820065944418276024
По теме: выбери МК, почитай ДШ. Что непонятно - спрашивай.
Для более точного измерения нужно производить подключение АЦП к одной заданной точке (ты их не обозначил на схеме) и опорному напряжению. Опорное напряжение можно задать в том же МК, например в PIC16F628
Оказалось, что если измерять относительно земли, то получается, то же напряжение, как я понимаю АЦП подключаю к "А" и меряю напряжение относительно земли. А формулу я знаю, я ищу сопротивление 0,123, для этого и нужно мерять U. Напряжение будет меняться в процессе измерений где-то от 2 до 3 вольт

-- Прилагается рисунок: --
Sollus вне форума  
Непрочитано 18.01.2008, 02:12  
MAXvaLL
Временная регистрация
 
Регистрация: 12.01.2008
Сообщений: 96
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
MAXvaLL на пути к лучшему
По умолчанию

Уважаемые, а в чем собственно проблема?!
Я либо что-то не понял, либо....

Заводим на АЦП измеряемое напряжение и опорное (которое заведомо больше измеряемого) - на выходи АЦП получим код. Для AVR это будет ADCW (в CV)
далее считаем
Ux=ADCW*Uопорное/ADCmax
ADCmax это максимальное значение результата АЦП
1024 - для 10 битного АЦП
256 для 8 битного

Конкретика:
для вашей задачи - берем U опорное 3В
Допустим искомое напряжение равно Ux=2.9В (заранее не известно)

Тогда в идеале получим для 10б АЦП ADXW=~990

Считаем Ux=3*990/1024=2.90039...
Если Ux float или double (на Си)

PS Все напряжения относительно замли!
MAXvaLL вне форума  
Непрочитано 21.01.2008, 01:56  
day177
Прописка
 
Регистрация: 12.11.2006
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
day177 на пути к лучшему
По умолчанию

есть делитель на входе (соотношение не суть важно), т.к. параметры резисторов не идеальны вводим поправочный коэффициент k типа float, который можно менять в процессе. Получаем ADCW*k или int*float. Как привести результат к типу int?
day177 вне форума  
Непрочитано 21.01.2008, 02:11  
MAXvaLL
Временная регистрация
 
Регистрация: 12.01.2008
Сообщений: 96
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
MAXvaLL на пути к лучшему
По умолчанию

Цитата:
Получаем ADCW*k или int*float. Как привести результат к типу int?
Если я правильно понял вопрос, то так (на Си):
Код:
float k;
int U;
....
U = (int)(ADCW*k);
PS А не лучше подобрать резисторы более "похожие"?
MAXvaLL вне форума  
Непрочитано 21.01.2008, 11:39  
day177
Прописка
 
Регистрация: 12.11.2006
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
day177 на пути к лучшему
По умолчанию

Цитата:
PS А не лучше подобрать резисторы более "похожие"?
с одной стороны лучше, с другой - не очень. Иногда надо подстроить точность программно.

Цитата:
Если я правильно понял вопрос, то так (на Си):
да правильно. Спасибо!!!

Цитата:
Код:
float k; 
int U; 
.... 
U = (int)(ADCW*k);
еще вопрос - как в таком случае будет происходить округление до целых? дробная часть просто отбрасывается?[/code]
day177 вне форума  
Непрочитано 21.01.2008, 11:54  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Вопросы такие... Ну, при вычислении умножьте на 10 и потом поставьте запятую.
urry вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно измерить переменное напряжение ? nerozero Микроконтроллеры, АЦП, память и т.д 4 12.05.2008 19:18
Как с помощью АЦП микроконтроллера можно замерять ток в авто DAS_WEYDER Микроконтроллеры, АЦП, память и т.д 18 17.04.2007 16:09
Как измерить емкость с помощью микроконтроллера? TimeOut Измерительное оборудование 3 11.03.2007 13:59
Как измерить импульс? ankab Микроконтроллеры, АЦП, память и т.д 56 15.11.2006 22:33
Как измерить ток? Prime Источники питания и свет 2 06.06.2006 05:30


Часовой пояс GMT +4, время: 09:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.