Измерительное оборудование Осциллографы, мультиметры, анализаторы и другая измерительная техника необходимая каждому разработчику. |
05.03.2010, 21:30
|
|
Прописка
Регистрация: 20.01.2009
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 27 раз(а) в 11 сообщении(ях)
|
Re: Амперметр переменного тока
Сообщение от YURALL72
|
Привет!Хочу попробывать сделать амперметр переменного тока на меге8. Трансформатор тока нагружен на шунт, потом выпрямление, нормирование и на АЦП меги8.
|
Очень хороший пример того, как НЕ надо делать. Выпрямлять НЕЛЬЗЯ ни до шунта, ни после оного. Всё выпрямление делать только в цифре посредством возведения в квадрат. Поэтому по примеру штирлица подаём напругу с шунта на вход АЦП, но не через резистор, а через конденсатор (впрочем, последовательный резистор в 3 кОм тоже можно оставить, с ним будет только лучше), а от входа АЦП к Aref и к общему проводу вешаем одинаковые резисторы (килоом этак по 10...100, я сейчас не могу точно сказать, сколько можно вешать на Aref), чтобы выставить там половину референса. И всё!!! Больше в аппаратной части ничего городить не надо! Остальное делать программно, например, минимальный вариант: завести одну переменную для хранения среднего значения напряжения (оно, как известно, у переменного напряжения равно нулю), а другую для хранения среднеквадратичного значения напряжения (не забывая обнулять их перед измерением!) и далее на протяжении 20 мс циклически брать очередной отсчёт с АЦП, прибавлять его к первой переменной, а его квадрат - ко второй. Если первая переменная по окончании цикла не равна нулю (а она при нашей сети естественно никогда не будет равна нулю!), то её значение и будет значением асимметрии, шума и дрейфа АЦП, а также прочего мусора. Значение же второй после умножения на коэффициент масштабирования и будет истинным значением напряжения, причём гораздо более точным, чем у дешёвых цифровых тестеров.
По максимуму же надо просто собрать, скажем, 1024 отсчёта (брать только 8 разрядов из 10, иначе в память не поместятся, либо собирать только производные от 10-разрядных значений), позаботившись о том, чтобы делать это не слишком быстро - не быстрее, чем 1024 отсчёта за те же 20 мс (это 51.2КГц, атмега8 столько и не даст!), но и не слишком медленно - не медленнее, чем 10 мс на один отсчёт (это 100 Гц), и затем сделать преобразование Фурье. Оно покажет и уровень первой гармоники, и её частоту (50, 60, или 400 Гц или что ещё) и всё остальное, включая постоянную составляющую. Впрочем, чтобы ущучить 400 Гц, оцифровывать надо с минимальной частотой не 100, а 800 Гц, да и то в этом случае кроме первой гармоники и постоянки больше ничего не вычислить. Разумно, наверное, выбрать частоту дискретизации, скажем, 1024 Гц, тогда и разрешение по частоте составит 1 Гц, и время сбора данных будет 1 секунда, и реализовать сие будет не столь затруднительно. Удачи! Надеюсь, не сильно загрузил?
__________________
Всего доброго.
Евгений.
|
|
|
|
05.03.2010, 23:22
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Амперметр переменного тока
Сообщение от Eats
|
Надеюсь, не сильно загрузил?
|
Болшое спасибо!Загрузили сильно!Я не настолько умён что-бы осилить Фурье.А с первой частью попробую совладать.Насколько я понял Вы советуете снять с шунта переменное напряжение и наложить его на постоянное =Uref/2.При этом полож. полуволна не должна быть больше Uref,а отриц. меньше 0.Програмно мне нужно считать Uref/2 =0.Всё туплю!
попробую утром!
СПАСИБО!!!
|
|
|
|
06.03.2010, 18:49
|
|
Вид на жительство
Регистрация: 13.09.2009
Адрес: Украина Львовская обл.
Сообщений: 413
Сказал спасибо: 18
Сказали Спасибо 148 раз(а) в 104 сообщении(ях)
|
Re: Амперметр переменного тока
Посмотри на вот это http://www.avr.4mg.com/custom4_1.html и http://www.avr.4mg.com/images/lcd-v-ameter_AC-25.gif но автор за деньги продает прошивку.Себе хотел тоже сделать что-то похожее .Заказал датчик тока от Allegro 50A
|
|
|
Сказали "Спасибо" Andriy76
|
|
|
06.03.2010, 21:57
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Амперметр переменного тока
Сообщение от Eats
|
Если первая переменная по окончании цикла не равна нулю (а она при нашей сети естественно никогда не будет равна нулю!), то её значение и будет значением асимметрии, шума и дрейфа АЦП, а также прочего мусора.
|
ПРИВЕТ! Помогите плиз,туго лезет! Если на входе АЦП половина Uref,то и в этой переменной будет накапливаться эта половина Uref+значение асимметрии.
Так-же эта половина Uref будет фигурировать при вычислении действующего значения!Может поступить так:
1.Узнать какому значению АЦП будет соответствовать Uref/2 при Uref=5v
2.Вычитать это значение из полученного в рез-те АЦП,а уже потом складывать в переменной?
Или это бред я написал?Спасибо!
|
|
|
|
07.03.2010, 00:44
|
|
Прописка
Регистрация: 20.01.2009
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 27 раз(а) в 11 сообщении(ях)
|
Re: Амперметр переменного тока
YURALL72, ничего не надо вычитать. Двоичный (binary, ежели по аглицки) код — это последовательность нулей и единиц. Как Вы будете их переводить в десятичные числа и вообще как Вы будете их понимать — дело Ваше, но в мире наиболее известны два представления двоичных чисел: беззнаковое и со знаком. Атмега8 выдаёт как бы без знака, но если Вы будете брать 8-разрядные двоичные числа, то лучше сделать ADLAR=1, и тогда Ваша мега8 выдаст с АЦП сразу число со знаком, считая нулём именно половину референса! Правда, этот знак там будет неправильный, но для измерений переменного тока (или напряжения) оно неважно. Если уж кому хочется совсем правильного знака, то пара команд
in reg, ADCH
subi reg, 0b10000000
спасёт отца русской демократии. Вместо reg поставите свой регистр.
Несколько иначе обстоит дело с 10-разрядными числами. Однако судя по Вашим вопросам, Вам с 10-разрядными числами лучше не связываться. Хватит мороки и с 8-разрядной арифметикой. Тем более, что пара младших разрядов вполне может шуметь и дрейфовать, а после суммирования нескольких отсчётов реальная разрядность суммы будет и так больше восьми.
__________________
Всего доброго.
Евгений.
Последний раз редактировалось Eats; 07.03.2010 в 00:48.
|
|
|
|
07.03.2010, 03:01
|
|
Прописка
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
|
Re: Амперметр переменного тока
Eats СПАСИБО!Потихоньку начинаю вьежать.Если сдвигаем результат влево он оказывается в старшем регистре.Мы имеем чистое 8-ми битное преобразование.((2^n-1) · Uin )/ Uref=((256-1)*2.5)/5=127.5 или после округления =128 или 0b1000 0000.Это число мы получим после 8-ми битного АЦП преобразования,если на входе будет Uref/2=2.5v.Отрицательные числа "отмечаются" записью 1 в старший бит байта.Но в данном случае у нас "отрицательными" будут положительные полуволны (всё что больше 2.5в будет записываться с 1 в старшем бите байта) и наоборот!Поэтому Вы и назвали это значение неправильным.Но на переменном токе ,где мы считаем обе полуволны это несущественно!
Честно говоря часа два разбирался что-бы только это понять!С 10-битным завтра.
Дай Бог вам здоровья!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:03.
|
|