итак , собственно тема :
стоит задача для дипломки собрать ваттметр на МК .
измеряемый действующий ток - до 2.56А , изм. действ. напр. - до 256В . погрешность до 10% от Pmax . отображение будет четырёх величин - S , P , Q , cos(fi) .
МК - ATMega8 , ЖКИ - 16*2 . датчики тока и напруги - резисторы . по напряжению делитель , по току - шунт .
на данный момент всё почти готовой . осталась проблема с небольшими кусками программы , а именно с определением ХХ , расчётом косинуса при этом ХХ и активной или реактивной мощностью . собственно проблема в том , что при отсутствии сигналов на резисторах они висят на минусе питания , относительно которого идёт преобразования АЦП . при этом на входах АЦП наблюдаются шумы постоянно частоты . валят небольшие иголки амплитудой 0.1В . предполагается что из-за них не работает отсечка измерений на ХХ и в последствии полная мощность остаётся на нуле , но угол может установиться любым и из-за него устанавливается активная или реактивная мощность . каким образом она устанавливается - я понять не могу , потому как умножается полная на косинус .
собственно пока проблема в этом . у кого есть какие идеи по помехам ? буду очень благодарен за дельные советы .
если что-то не понятно могу уточнить любую вещь , т.к. разрабатывал сам с нуля .
планирую после сдачи дипломки оформить статью коту , если всё получится хорошо .
можете посмотреть апноут AVR465: Измеритель параметров сети http://www.e-tools.org/pdf/Atmel/app/avr/AVR465.pdf Оно конечно не то что вам нужно, но что-то можно почитать.
Шунт для измерения тока - это просто в реализации.
Может все таки лучше токовый трансформатор использовать, как в счетчиках. Плюс еще индуктивность токового транса будет служить и фильтром помех. Когда-то видел в прайсах интегральные датчики тока Honewell, они работают по принципу єффекта Холла. Может стоит попробовать.
апноут видел . довольно замудрёная реализация . по помехам посоветовали поставить на земплю кондёры по 10 нан . в скором времени проверю . по трансам отпадает сразу из-за необходимости корректировать угол сдвига фаз .
по датчикам - у Honeywell не видел нормальных на низкие токи . к тому же для напруги всёравно придётся шунты ставить резистивные .
была идея использовать Allegro'вские датчики на эффекте холла , но они отверглись руководителем дипломки . до конца не понимаю его мотиваций , но ему хочется всё по-простому .
посему всё уже продумано и готово . осталась проблема с помехами . к слову - при удержании пальца на двух входах и выводе RESET показания получаются ожидаемыми - полная мощность в несколько Вт , косинус - 1 , активная мощность - вся полная , реактивная - 0 . проблема только на ХХ , когда не проходит проверка на нулевые значения таймера из-за помехи , которая и фиксируется таймером .
Понятно, значит убрать помехи на ХХ и ваттметр готов. Может идут помехи по питанию самого МК. Хотя, надеюся что все керамические кондеры по питанию распаяны, а аналоговое питание AVCC развязано от цифрового с помощью дросселя. Говорите, на входах АЦП наблюдаются шумы постоянной частоты амплитудой 0,1В. А частота какая? Может это импульсные помехи от самого МК, или ЖКИ? В принципе кондеры на входах по 10 нФ, как вам и советовали, должны устранить эти шумы. А вообще-то странно у вас ATmega считает, любое число умноженное на 0 дает 0, а в данном случае полная мощность 0, сos(fi) какое-то число неизвестно откуда, а активная мощность еще какое-то число непонятное.
У меня когда-то были проблемы с ATtiny2313, когда делал термостат, как датчик температуры использовал DS18B20. Так вот обнаружил глюк в функции вычисления температуры с этого датчика. До 20,5°С показания нормальные, как только 20,6 то непонятно каким образом МК что на что делил, но у него получалось -(минус)19°С. Пришлось чуть изменить формулу для вычисления температуры.
Может ATmega8 тоже может неправильно считать, у меня такого не было. Кстати в протеусе вы моделировали свой ваттметр, как он там будет работать на ХХ.
по питанию всё в норме . питание аналога через дроссель 10мкГн и кондёр керамика 2.2мкФ почти на ногах меги . кондёры припаивал - незначительное улучшение . хотя косинус всёравно показывает около 0.98 . сейчас подключил без кондёров и посмотрел осцилографом - уже какие-то пачки прут по 1.5В примерно . частота вроде до 1кГц . собственно косяк стал менее заметен - после включения секунд 10-15 держались нули , потом опять неспеша начал случайно выбираться косинус и появилось небольшое значение активной мощности (обновление на ЖКИ примерно через 10мс . сделано для лучшей диагностики). завтра думаю уже испытаю с небольшой нагрузкой в виде паяльника на 12В переменки ещё думаю защитные резисторы на входы АЦП уменьшить . хотя бы по напряжению . там и так 16к + 5.1к на земплю торчит . по току лучше - просто 16к ещё один момент - предположительно помеха прёт по одному каналу , потому как только активная отображается . если касаться другого - будет реактивная отображаться . завтра и это проверю . будут хоть догадки куда копать .
по протеусу - там таких глюков не наблюдается , но из-за невозможности нормально промоделировать там наблюдается другой глюк - показания косинуса изредка меняются на определённую погрешность в пределах -4+5 ° . скорей всего из-за того что не могу отсечь половину синусоиды диодами . хотя иногда косинус улетает и на 84° вместо 60 °
прикрепил прошивку и проект протеуса
по прошивке, анализировал ваш исходник, не понял как cos(fi) вычисляется. Функция r_cos объявлена в программе, а вызова этой функции не вижу.
Блин ну не пойму, откуда пачки импульсов берутся с частотой 1 кГц. А вообще измеряемое напряжение на вход чистое подается. Откуда? Если с сети 220В через трансформатор, то может эти помехи в сети есть. Если нагрузку даете, то шум исчезает, или остается, только менее заметный на фоне нагрузки?
r_cos связана с вычислением значения косинуса по таблице .
там отдельная подпрограмма с case .
питание измерительной части - через транс с обычной фильтрацией .
на вход должно подаваться 220 из сети . на выходе нагрузка . этого пока ещё не пробовал , но когда не подключено и входного сигнала нету на АЦП (т.е. входа висят на минусе питания через резисторы) начинаются косяки с косинусом , хотя вычисления косинуса , активной и реактивной мощности должны отсекаться в обработке прерывания от таймера . когда пальцем (знаю что очень научный метод ... ) "закорачиваешь" RESET и входы АЦП появляется полная мощность до нескольких единиц , косинус определяется как 1 и активная составляет 100% от полной . реактивная равна 0 . при этом каких-либо багов не обнаружено .
предполагаю что помехи или сбои вызваны переключением каналов АЦП .
а в чем тогда прикол "закорачивания" пальцем входов АЦП с ножкой сброса. А если просто качаться пальцем входов ничего не меняется? А если закоротить плюс питания и вход АЦП? По правилам Ресет должен быть подтянут к + питания резистором 10 кОм и зашунтирован керамикой на корпус.
так так и есть . ресет - +5В через резак , затем тантал на земле .
просто он само близко к входам АЦП . а пальцем - потому как нету времени в полномасштабных экспериментах как известно учащиеся делают всё в последнюю ночь
практически ничего не почерпнул из этой статьи для своего случая . всё довольно обыденно за исключением последнего случая , но он для больших токов . в моём же случае ток не будет превышать 2.5А .
это во-первых . во-вторых у меня стоит выводной резистор 5WR68J , да и плату переразводить не собираюсь .
что касается опорного - не вижу в этом смысла , т.к. оно повлияет лишь на погрешности . использую внутренний и проблем с этим не наблюдаю . в любом случае мне нужна защита от помех , источник которых ещё не определил . в статье же говорится о точности измерений .
LINKS_234, подобная проблема, как у вас с помехами и, скорее всего наводками, наблюдается не только в вашем ваттметре. Во многих мультиметрах заводского производства, особенно с автоматическим выбором предела измерения, на пределе 200 мВ как постоянки так и переменки приборы показывают всякую чепуху до нескольких десятков миливольт. Причем, если замкнуть два щупа вместе, то так и будет 0,000 мВ как положено. Думаю это связано с наводками от сети 220В 50 Гц. Сам человек, находясь в этом электромагнитном поле, вляется антенной и прннимает эти все сетевые наводки. Та что там говорить, достаточно осциллограф включить на маленьком вольт/делении и положить щуп где-то в воздухе, будет синусоида рисоваться.
Ну это я отвлекся от темы. Если у вас еще такая проблема есть, то попробуйте просто закоротить вход АЦП на общий. Если показания будут на 0, то все понятно. Если вы нашли другой способ борьбы с помехами, то также напишите сюда, думаю всем будет интересно.
сразу извинюсь за приостановку темы с моей стороны , тем более что я её начал . дело в том , что сейчас готовлю текстовую часть дипломки и времени эксперементировать нету .
что касается наводок - возможно вы правы и стоит закоротить сопротивления на время экспериментов , но у меня остаются сомнения по этому поводу в связи с тем , что входы висят на минусе схемы , хоть и через большие сопротивления . буду надеятся что вы всётаки правы - в этом случае было бы гораздо проще бороться с причиной , чем в случае её незнания .
как только доберусь до экспериментов - сообщу о результатах .
спасибо вам за помощь .
вообщем добрался наконец до аппарата . послезавтра защита уже закоротил защитные резаки - всё гуд стало . иногда только проскакивают некорректные показания косинуса. правильность определения оценить не могу , да и некогда проверить успел только на паяльнике 12В 25Вт (перемотанном правда ). в нагретом состоянии показывает потребление 16Вт и косинус 1-3°. с дросселем из комповского БП (пассивный корректор мощности. там же ещё есть кондёр параллельно) показывает реактивку больше средней. 3 к 2 получается где-то.
после сдачи все материалы вышлю коту . также постараюсь разобраться во всех неточностях и глюках .
ещё одно смущает меня - без защитных сопротивлений есть шанс получить второй энергоблок , который обязательно рванёт , если оборвётся или сгорит токовый шунт а с защитными АЦП показания на ХХ зависят от фаз луны и приливов , потому как в его документалке уже значаться цифры входного сопротивления АЦП от 55 до 100 МОм
Это хорошо, что все стало гуд, точно иногда некорректные показания косинуса не считаю большим глюк, все таки прибор цифровой, АЦП возможно погрешности АЦП.
По поводу защитных сопротивлений, может их убрать, а поставить варистор с входа АЦП на корпус, и где-то по входу предохранитель на очень малый ток. Когда напряжение на входе АЦП превысит по какой-то причине 5В, то варистор закоротит цепь и сожжет предохранитель. Не знаю правда, существуют ли варисторы на 5В, а еще есть супрессоры (защитные диоды), правда не знаю как они работают, надо читать, никогда с ними не работал. Ну в простейшем случае я бы поставил стабилитрон на 4,7-5,1В с входа АЦП на корпус. Чтобы я не смотрел ваш исходник, скажите, у вас опорное напряжение 2,56В или оно равно 5В, т.е. равно AVCC? Если 2,56В то 5В стабилитрон не должен влиять на измеряемый параметр.
А если честно, то я разочарован ATmega8 и ее АЦП. У ATTiny26, намного шире возможности применения АЦП, у них есть режим дифференциальных входов, и усиление сигнала в 20 раз, что для токового шунта идеально подходит.
И еще, хоть вопрос не в тему, но интересно знать, почему ATmega8 иногда некорретно умножает большие числа, например напряжение на ток я не могу перемножить на МК чтобы получить мощность, надо еще разбираться с этим.
Сам делал вольтамперметр на МК ATmega8 и LED, что очень жалею в выборе этого МК, а не другого, в которого есть усилитель на входе АЦП. Думал модернизировать прошивку для вычисления потребляемой мощности, а вычисления неправильные получаются.
И почему-то наблюдается некоторая нелинейность АЦП, если на низких напряжениях можно считать что нормально, то при 50В разница в показаниях уже 1В, если 100В то целых два вольта разница.
Автор раньше прикреплял проект протеуса и прошивку c исходником на CodeVision. В исходнике комментарии есть, надеюсь он их изменил на более серьезные перед сдачей диплома. Но не в этом дело.
Настоящей схемы то он не дал, действительно не понятно что к чему.
Насколько я понял про защитные резисторы, то это те, которые на входе АЦП по измерению тока. В случае сгорания шунта, защитный резистор должен ограничить напряжение на допустимом для МК уровне.
о , блин , я оказывается по ошибке ещё и исходник прицепил со своими коментами , когда весело было вообщем господа , прошу терпения . завтра сдача и после неё выложу все материалы . т.к. дипломка уже готова , а до рынка далеко , то дорабатывать я ничего уже не буду , хотя и возникла идея поставить сапрессоры. Насколько я знаю они работают как обычные диоды , с большим порогом напряжения , т.е. у обычного 0.5В чаще всего , а у защитных - на сколько расчитан.
что касается АЦП - насколько я понял по ДШ у меги8 есть дифф входы . целых два , если не ошибаюсь . при этом усиление можно загонять до 200 , но нафига это надо ? там погрешности будут мама не горюй . проще уже интструментальный усилок поставить.
по ИОН - внутренний 2.56 .
исходник переделал немного . увеличил частоту тактового АЦП до 125кГц , поправил формулы , вывод на ЖКИ , и возможно ещё что-то .
пока это не окончательный вариант устройства, т.к. надо провести корректировки по схеме и программе .
кстати программу никто не будет смотреть - у нас я знаю только одного препода-психа , который сможет покопаться в программе . Этот псих нас учил программить совковые процессоры ниблами (или тетрадами - кому как удобней ).
Сейчас этот форум просматривают: АлександрЛ и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения