Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

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

 
Опции темы
Непрочитано 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.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 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, время: 14:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot