Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Измерение напряжения с помощью ADC в ATMega16

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   Измерение напряжения с помощью ADC в ATMega16
MatrixST
Junior Member

Сообщений: 13
Откуда: Lugansk, Ukraine
Регистрация: Март 2005

написано 25 Марта 2005 17:34ИнфоПравкаОтветитьIP

Есть вот такое пульсирующее напряжение

максимальное напряжение получается 2В (примерно), минимальное 1.6В (примерно), частота пульсаций 1 кГц, так вот если такой сигнал подать на ADC в ATMega16, что он выдаст ? Среднее напряжение или то куда попадет момент преобразования (26-230 мкС)?
И если он выдаст не среднее значение, то как мне мерять среднее значение ? Сглаживать эти пульсации нет времени , нужно получить не меньше 1000-1500 выборок в секунду, при достаточно частых скачках напряжения.
А если АЦП все таки выдает среднее значение, то могу ли я подавать ему на вход прямоугольные импульсы? С такой частотой...

И еще вопрос, что будет если на вход данного АЦП подать напряжение около 6В, ничего страшного с ним не будет ? И что он выдаст ? Максимальное значение или чтото другое ? (максимальное имеется ввиду к примеру для 10 бит АЦП 1024 деления для 5В)...

Dikoy
Member

Сообщений: 773
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 26 Марта 2005 00:14ИнфоПравкаОтветитьIP

так вот если такой сигнал подать на ADC в ATMega16, что он выдаст ?
Ступеньку он выдаст. То есть таблицу мгновенных значений амплитуд через время Т, которое время выборки. Т.к. у АЦП меги 15000 выборок/с, получишь 15 точек на период сигнала. Маловато, имхо, хотя, смотря для чего надо.
Кстати! Если ты будешь килогерцовый сигнал цифровать тышу раз/с, то на выходе получится фигня. По теореме Шеннона-Котельникова, для получения информации о сигнале нужно 2 выборки на период МИНИМУМ. А у тебя получается одна. Учитывая смещение во времени сигнала/выборки ты получишь некую огибающую, которая к тому же будет меняться со временем.

И если он выдаст не среднее значение, то как мне мерять среднее значение ?
Смотря зачем это надо. И что ты понимаешь под "средним значением"?

А если АЦП все таки выдает среднее значение, то могу ли я подавать ему на вход прямоугольные импульсы?
Да хоть многоугольные! Он же АЦП, он тебе выдаст что-то типа
0 0 0 0 0 1 1 1 1 1 1 1 0 0 0...
Где 0 - нижний порог, а 1 - верхний порог входного напряжения. То есть 1.6В и 2В в твоём случае. Есно, вольты будут в двоичном коде.

И еще вопрос, что будет если на вход данного АЦП подать напряжение около 6В, ничего страшного с ним не будет ?
Каждый пин атмелки защищём парой встроенных НЕотключаемых защитных диодов. При условии ОГРАНИЧЕНИЯ ТОКА они защитят порт от перенапряжения. А вот если ток не ограничен, получишь КЗ через этот самый диод с быстрым испарением собственно атмелки

И что он выдаст ?
Свыше 5В будет "переполнение", то есть код 1024. Хотя правильнее сказать, свыше Uref, т.к. именно величина опорного напряжения определяет максимальный входной диапазон АЦП.

Кстати, если ты свой диапазон (0.4В) будешь мерить при Uref 5 вольт, разрешение будет всего 5/1024=~5mV То есть порядка 80 точек по высоте на твой сигнал. Ступенька будет та ещё. А вот если АЦП атмела включить по диф. схеме, то получишь все 1024 точки, то есть разрешение порядка 0.4 mV, но в диапазоне 1.6 - 2 вольта.

ЗЫ: А зачем сразу Мега16? Я вот тут осцил ваяю, дык Меги48 хватило с её 4 кубами то... Да и АЦП в ней получше, и стОит всего $1.5

MatrixST
Junior Member

Сообщений: 14
Откуда: Lugansk, Ukraine
Регистрация: Март 2005

написано 26 Марта 2005 01:03ИнфоПравкаОтветитьIP

Так щас опишу для чего мне это все надо , будет понятно в каком направлении мне ползти надо !

Есть двигатель (все тот же несчастный ), управляется ШИМ, вот и мне нужно мерять напржение на двигателе и ток... А график в моем предыдущем посте получается так, скважность импульсов в данном случае 35% и частота 1 кГц, и на входе АЦП стоит конденсатор на 1000 пФ, для кое-какого сглаживания... Вот и получается такая гармошка %), теперь мне надо померять это все .

Проблема осложняется тем что у меня всего 6 цепей которые я должен измерять ! + связь с СОМ портом компа, и вывод на LCD всякой всячины + обработка клавы... Вот и получится у меня 1000, а то и меньше выборок в секунду...

Поэтому мне надо как то усреднять измеренный результат... (мах+мин)/2 Все бы было хорошо еси бы этот сигнал резко не менялся...

Каждый пин атмелки защищём парой встроенных НЕотключаемых защитных диодов. При условии ОГРАНИЧЕНИЯ ТОКА они защитят порт от перенапряжения. А вот если ток не ограничен, получишь КЗ через этот самый диод с быстрым испарением собственно атмелки
ОК

Кстати, если ты свой диапазон (0.4В) будешь мерить при Uref 5 вольт, разрешение будет всего 5/1024=~5mV То есть порядка 80 точек по высоте на твой сигнал. Ступенька будет та ещё. А вот если АЦП атмела включить по диф. схеме, то получишь все 1024 точки, то есть разрешение порядка 0.4 mV, но в диапазоне 1.6 - 2 вольта.
Отож, что мне надо не 0.4 вольта мерять а весь диапазон , а эта ступенька всю жизнь и портит ;(

ЗЫ: А зачем сразу Мега16? Я вот тут осцил ваяю, дык Меги48 хватило с её 4 кубами то... Да и АЦП в ней получше, и стОит всего $1.5
Хех А у нас 48 вообще не продают ... Самые дешевые это ATmega16 4.15$, вот такая у нас страна...

Весельчак У
Moderator

Сообщений: 6535
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 26 Марта 2005 02:20ИнфоПравкаОтветитьIP

Придётся или лучше сигнал фильтровать (хотя быстродействие измерения понизится), или брать более скоростное АЦП.
Лучшая фильтрация всё же лучше, иначе надо слишком много выборок за период делать.

Dikoy
Да и АЦП в ней получше
Чем?

AlexOr
Member

Сообщений: 465
Откуда: СПб
Регистрация: Май 2003

написано 26 Марта 2005 11:00ИнфоПравкаОтветитьIP

MatrixST
Есть вот такое пульсирующее напряжение
частота пульсаций 1 кГц
1000-1500 выборок в секунду
что он выдаст ?

Эффект наложения в чистом виде.

И если он выдаст не среднее значение, то как мне мерять среднее значение ?
Зависит от требуемой точности.

Добавление от 26 Марта 2005 11:09:

Поэтому мне надо как то усреднять измеренный результат... (мах+мин)/2
ФНЧ на RC цепочке до АЦП со срезом на 100-500 Гц. Несколько штук каскадно для достижения оптимального результата. Думаю вам лучше и не надо.

Добавление от 26 Марта 2005 11:13:

Dikoy
По теореме Шеннона-Котельникова, для получения информации о сигнале нужно 2 выборки на период МИНИМУМ
Это для синусоиды, а тут вообще-то спектр бесконечный.

Dikoy
Member

Сообщений: 774
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 26 Марта 2005 16:29ИнфоПравкаОтветитьIP

Весельчак У
Чем?
Чисто субъективно: работает чище. Старый вариант моего осцилла стабильно шумел последним разрядом, а остальными - по случаю. Новый, при той же схеме держится молодцом. Последнийразряд если и скакнёт, то редко. Да и время преобразования, судя по ДШ у неё меньше, хотя частота самплирования осталась та-же...

AlexOr
Это для синусоиды, а тут вообще-то спектр бесконечный.
Дык у него вообще одна выборка на период получалась

MatrixST
Проблема осложняется тем что у меня всего 6 цепей которые я должен измерять !
Кстати, если мне не изменяет склероз, у Мега16 (в DIP) только 4 канала АЦП 10 битные, а два остальных - восьмибитные А вот у Мега48 уже все десьтибитные.

связь с СОМ портом компа,
Я так понимаю, основной косяк в прокачке такого количества данных через СОМ? Дык это решаемо

и вывод на LCD всякой всячины + обработка клавы
Это фигня. Делается быстро.
А нафих клава то? У тебя ж комп есть, виртуальная клава чем не устраивает? Я в своём осцилле два месяца уже маюсь, чтоб управление полностью с компа сделать, а ты всё наоборот...

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

Отож, что мне надо не 0.4 вольта мерять а весь диапазон
То есть 0-5 вольта? Нафих, если сигнал меняется только в 1.6-2 вольта?

Самые дешевые это ATmega16 4.15$, вот такая у нас страна...
А почта в этой стране есть? В Туле, например, тоже Мега48 не продаётся. Я их из Москвы почтой заказал, через 2 недели приплыли Не верю, чтобы в Киеве небыло фирм, торгующих по почте.

MatrixST
Junior Member

Сообщений: 15
Откуда: Lugansk, Ukraine
Регистрация: Март 2005

написано 26 Марта 2005 17:19ИнфоПравкаОтветитьIP

Вот из всего выше сказанного я сделал вывод... что мне нужно поставить какой либо более менее сглаживающий фильтр (я поставил П-образный фильтр, из конденсатора(390 nF)-резистора(33 k)-конденсатора(220 nF)), и делать сразу несколько выборок, и усреднять данный результат... В результате у меня получилось скорость реагирования на изменение 20-30 мсек, и пульсации 20-30 мВ, что впринципе достаточно для моих целей, но быстродействие маловато Есть предложения ? (Более быстрй АЦП, и многокаскадные фильтры не подходят )...

Кстати, если мне не изменяет склероз, у Мега16 (в DIP) только 4 канала АЦП 10 битные, а два остальных - восьмибитные А вот у Мега48 уже все десьтибитные.

Ууу Склероз делает свое дело Вырезка из датащита
8-channel, 10-bit ADC
8 Single-ended Channels
7 Differential Channels in TQFP Package Only
2 Differential Channels with Programmable Gain at 1x, 10x, or 200x
...

Я так понимаю, основной косяк в прокачке такого количества данных через СОМ? Дык это решаемо
Неа , через ком порт уже будут отдаватся обработанные данные, их не очень много . Проблема в другом ! Мне просто нужно быстро отреагировать на изменение сигнала... А в отсутствии изменения сигнала спокойно заниматься LCD и другим хламом А не прыгать из-за того что есть такое пульсирующее напряжение

Это фигня. Делается быстро.
А нафих клава то? У тебя ж комп есть, виртуальная клава чем не устраивает? Я в своём осцилле два месяца уже маюсь, чтоб управление полностью с компа сделать, а ты всё наоборот...

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

Ну, можно делать пару тыщь выборок, обрабатывать программно, потом отсылать в порт, опрашивать клаву и "заряжать" дисплей... Вопрос алгоритма.
Думаешь пару тысяч возможно ? Я работаю на частоте 16 МГц, весь алгоритм прямой как я незнаю что , сняли данные с АЦП, проверили пару переменных, вывели это все на LDC, передали по ком порту, проверили кнопки... и все заново ...

То есть 0-5 вольта? Нафих, если сигнал меняется только в 1.6-2 вольта?
У меня напряжение измеряемое меняется в пределах от 0 до 5 В, а в той осцилограмме что я привел частный случай когда у меня есть прямоугольные импульсы амплитудой 2 вольта, а я их сглаживаю конденсатором, и мне нужно получить среднее напряжение, т.е. 1.8 вольта, в данном случае...

А почта в этой стране есть? В Туле, например, тоже Мега48 не продаётся. Я их из Москвы почтой заказал, через 2 недели приплыли Не верю, чтобы в Киеве небыло фирм, торгующих по почте.
Не поверишь , есть, но там такие фирмы что я бы не стал и думать о том чтобы у них что либо заказать :), очень сомнительно что заказ прийдет ... А в тех которых не сомневаюсь, пока нет такого добра на складе :(

[Это сообщение изменил MatrixST (изменение 26 Марта 2005 17:31).]

AlexOr
Member

Сообщений: 466
Откуда: СПб
Регистрация: Май 2003

написано 26 Марта 2005 17:47ИнфоПравкаОтветитьIP

MatrixST
но быстродействие маловато Есть предложения ? (
Для увеличения скорости нужно полосу пропускания ФНЧ приближать к половине частоты дискретизации (но не доводить) и делать фильтр высокого порядка.
А для измерения среднего значения повышать частоту дискретизации смысла нет т.к. придется делать все тоже самое, но в дискретной области, что в данном случае гораздо "дороже".

Dikoy
Member

Сообщений: 781
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 30 Марта 2005 13:59ИнфоПравкаОтветитьIP

Думаешь пару тысяч возможно ?
Думаю вполне. Ставишь на вход ФНЧ (ангалоговое усреднение), потом делаешь пару сотен выборок с накоплением в переменной, потом эту переменную делишь на число выборок... Вот и цифровое уреднение. Если извратиться, то всё это можно сделать 2/150 секунды

Miamar
Junior Member

Сообщений: 2
Откуда: Ukraine, Kiev
Регистрация: Апрель 2005

написано 15 Апреля 2005 17:32ИнфоПравкаОтветитьIP

В данном случае лучше собирать стробирующую систему, со смещением фазы.

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика