26.02.2016, 23:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Защита МК от перенапряжения...
напряжение через делитель от сети меряет идеально. А тут вот так.... я думаю в коде изза того что вычисляю смещение...
как считаю со смещением так сразу фигня. Как без смещения так всё хорошо....
Последний раз редактировалось miwutka; 26.02.2016 в 23:30.
|
|
|
|
26.02.2016, 23:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Защита МК от перенапряжения...
PHP код:
|
ISR (ADC_vect) { ADC_temp=ADCW; ADC_temp=fabsf(ADC_temp-368); adc_data[input_index]+=(ADC_temp*ADC_temp)*0.1; i++; if (i == 200) { start_math=1; i=0; ADMUX=(FIRST_ADC_INPUT | ADC_VREF_TYPE)+input_index; } }
в вайле: if (start_math) { ADC0=sqrt(adc_data[0]*0.005) ; adc_data[0]=0; ADC0_buf[m1]=ADC0; m1++; if (m1==20) { for (k=0;k‹20;k++) { ADC0_sr_temp+=ADC0_buf[k]; } ADC0_sr=ADC0_sr_temp*0.05; ADC0_sr_temp=0; TOK1=ADC0_sr; //TOK1=ADC0*0.11; m1=0; }; start_math=0; }
|
вот так считаю. ТОК1 вывожу на индикацию. Измерение 200 раз за 10 мс
Последний раз редактировалось miwutka; 26.02.2016 в 23:41.
|
|
|
|
27.02.2016, 00:03
|
|
Заблокирован
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
|
Re: Защита МК от перенапряжения...
Fabsf – лишнее минус на минус будет плюс, пятый класс, по-моему!
Код не оптимальный, плавающая точка в прерывании, но не важно!
Нужно проверить линейность и чтобы при нуле был ноль, можно на постоянке от внешнего источника (батарейка и переменный резистор)!
|
|
|
|
27.02.2016, 00:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Защита МК от перенапряжения...
если я убираю модуль то значение АЦП плывет как будто ножка АЦП в воздухе... При нуле (ну со смещением) ноль не получается. Ноль это на индикаторе 0.8. Если без смещение то и ноль на месте и значение измеренное отличное. Не могу понять как точно это смещение скомпенсировать в расчетах. я вычитаю 368. Это золотая середина.
Я знаю что при умножении минус на минус даст плюс )) Сразу так и пробовал но чегото был бред...
без смещения как постоянку так и переменку меряет идеально....
|
|
|
|
27.02.2016, 02:20
|
|
Заблокирован
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
|
Re: Защита МК от перенапряжения...
Выкинь из прерывания свой код, настрой ножку порта так чтобы каждое прерывание у тебя был импульс, при помощи осциллографа добейся, чтобы было 200 преобразований в секунду или сколько там нужно, а не сколько, получается, из-за кучи мусора в прерывании!
Ты уже сделал делитель, между опорным и землей или питанием и землей, подключаешь его к входу АЦП, и смотришь сколько, забираешь результат если все правильно, то должно быть 512 или очень к этому близко, вот его и нужно вычитать из результата, если число другое смотри, где ошибка!
Выкинь свой код, сделай три переменные, две u32 и одну счетчик u8 или u16, сколько тебе нужно, одна переменная u32 будет накопленная сумма квадратов, вторая темповая, каждое прерывания помещай результат из АЦП в темповую переменную, умножай сому на себя и суммируй с накопленной суммой. Как только досчитал до нужного тебе значения(200), поднимай флаг и в основном цикле извлекай корень из суммы, результат умножь на коэффициент для масштабирования результата! Коэффициент вычисляешь следующим образом: подаешь на вход, 5А (или сколько) получаешь, после извлечения корня 500, делишь 5 / 500 = 0,01. таким образом, масштабируем весь тракт минимумом операций!
|
|
|
Сказали "Спасибо" ALEKSEY188
|
|
|
27.02.2016, 02:36
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,662
Сказал спасибо: 185
Сказали Спасибо 3,183 раз(а) в 2,063 сообщении(ях)
|
Re: Защита МК от перенапряжения...
щас мишутка еще на полгода это растянет, обмотает соплями и к осени скажет - не полчается, покажите как надо....... и так еще года три
__________________
кагмаподэ магмаподэ
|
|
|
|
27.02.2016, 08:17
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Защита МК от перенапряжения...
Сообщение от miwutka
|
ТОК1 вывожу на индикацию. Измерение 200 раз за 10 мс
|
Всем привет.
Я не совсем понял. Вам нужно среднеквадратичное значение синусоиды или любая форма переменного напряжения? Если Вам нужна только синусоида, то проще измерить один раз за полупериод, а по моему мнению достаточно и за период, амплитудное напряжение и умножить его на константу 0,707
Цитата:
|
Без комментариев! Мне стыдно за вас земляки!
|
Действительно загнул. Спорить не буду. Я имел в виду не способ подключения, а то, что при росте напряжения (увеличение сопротивления ) на вторичной обмотке - изменяется пропорциональность тока и растет импеданс первичной обмотки.
Я думаю, что именно об этом писал Индюк miwutke в первой половине темы.
Последний раз редактировалось МВА; 27.02.2016 в 12:01.
|
|
|
|
27.02.2016, 12:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Защита МК от перенапряжения...
Сообщение от ALEKSEY188
|
добейся, чтобы было 200 преобразований в секунду
|
этого я добился. По входу в прерывание поднимаю ножку, по выходу опускаю. Проверил все отлично.
Сообщение от ALEKSEY188
|
сделай три переменные, две u32
|
попробую так...
индюк, да делал вольтметр сетевой на этом коде. Сигнал через диод и делитель заводил. Все работало отлично. А тут такая ботва )))
|
|
|
|
27.02.2016, 12:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Защита МК от перенапряжения...
изменил с флоат на long int и все стало на много лучше. Осталось откалибровать смещение. Идет первый делитель между минусом и питанием. Потом второй от этого делителя и минусом. Примерно 0.92 вольта.
Подал смещение на ацп. Прыгает от 345 до 385. Забыл повесить керамику на AREF. Наверно изза этого еще. На делителях стоит 0.01 мф
Последний раз редактировалось miwutka; 27.02.2016 в 12:58.
|
|
|
|
27.02.2016, 13:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Защита МК от перенапряжения...
поставил керамику какую-то. Выпаял с платы cd-rom - АЦП показывает 285 +-2. Теперь понятно в чем дело было......
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:22.
|
|