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

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

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

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

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

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


 
Опции темы
Непрочитано 26.02.2016, 23:18  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

напряжение через делитель от сети меряет идеально. А тут вот так.... я думаю в коде изза того что вычисляю смещение...
как считаю со смещением так сразу фигня. Как без смещения так всё хорошо....
Реклама:

Последний раз редактировалось miwutka; 26.02.2016 в 23:30.
miwutka вне форума  
Непрочитано 26.02.2016, 23:29  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию 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 (
== 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;k20;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.
miwutka вне форума  
Непрочитано 27.02.2016, 00:03  
ALEKSEY188
Заблокирован
 
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
ALEKSEY188 на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

Fabsf – лишнее минус на минус будет плюс, пятый класс, по-моему!
Код не оптимальный, плавающая точка в прерывании, но не важно!
Нужно проверить линейность и чтобы при нуле был ноль, можно на постоянке от внешнего источника (батарейка и переменный резистор)!
ALEKSEY188 вне форума  
Непрочитано 27.02.2016, 00:16  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

если я убираю модуль то значение АЦП плывет как будто ножка АЦП в воздухе... При нуле (ну со смещением) ноль не получается. Ноль это на индикаторе 0.8. Если без смещение то и ноль на месте и значение измеренное отличное. Не могу понять как точно это смещение скомпенсировать в расчетах. я вычитаю 368. Это золотая середина.
Я знаю что при умножении минус на минус даст плюс )) Сразу так и пробовал но чегото был бред...
без смещения как постоянку так и переменку меряет идеально....
miwutka вне форума  
Непрочитано 27.02.2016, 02:20  
ALEKSEY188
Заблокирован
 
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
ALEKSEY188 на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

Выкинь из прерывания свой код, настрой ножку порта так чтобы каждое прерывание у тебя был импульс, при помощи осциллографа добейся, чтобы было 200 преобразований в секунду или сколько там нужно, а не сколько, получается, из-за кучи мусора в прерывании!
Ты уже сделал делитель, между опорным и землей или питанием и землей, подключаешь его к входу АЦП, и смотришь сколько, забираешь результат если все правильно, то должно быть 512 или очень к этому близко, вот его и нужно вычитать из результата, если число другое смотри, где ошибка!
Выкинь свой код, сделай три переменные, две u32 и одну счетчик u8 или u16, сколько тебе нужно, одна переменная u32 будет накопленная сумма квадратов, вторая темповая, каждое прерывания помещай результат из АЦП в темповую переменную, умножай сому на себя и суммируй с накопленной суммой. Как только досчитал до нужного тебе значения(200), поднимай флаг и в основном цикле извлекай корень из суммы, результат умножь на коэффициент для масштабирования результата! Коэффициент вычисляешь следующим образом: подаешь на вход, 5А (или сколько) получаешь, после извлечения корня 500, делишь 5 / 500 = 0,01. таким образом, масштабируем весь тракт минимумом операций!
ALEKSEY188 вне форума  
Сказали "Спасибо" ALEKSEY188
miwutka (27.02.2016)
Непрочитано 27.02.2016, 02:36  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,662
Сказал спасибо: 185
Сказали Спасибо 3,183 раз(а) в 2,063 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

щас мишутка еще на полгода это растянет, обмотает соплями и к осени скажет - не полчается, покажите как надо....... и так еще года три
__________________
кагмаподэ магмаподэ
индюк вне форума  
Сказали "Спасибо" индюк
ForcePoint (27.02.2016)
Непрочитано 27.02.2016, 08:17  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

Сообщение от miwutka Посмотреть сообщение
ТОК1 вывожу на индикацию. Измерение 200 раз за 10 мс
Всем привет.
Я не совсем понял. Вам нужно среднеквадратичное значение синусоиды или любая форма переменного напряжения? Если Вам нужна только синусоида, то проще измерить один раз за полупериод, а по моему мнению достаточно и за период, амплитудное напряжение и умножить его на константу 0,707
Цитата:
Без комментариев! Мне стыдно за вас земляки!
Действительно загнул. Спорить не буду. Я имел в виду не способ подключения, а то, что при росте напряжения (увеличение сопротивления ) на вторичной обмотке - изменяется пропорциональность тока и растет импеданс первичной обмотки.
Я думаю, что именно об этом писал Индюк miwutke в первой половине темы.
Миниатюры:
Нажмите на изображение для увеличения
Название: Рисунок1.jpg
Просмотров: 48
Размер:	155.2 Кб
ID:	88674  

Последний раз редактировалось МВА; 27.02.2016 в 12:01.
МВА вне форума  
Непрочитано 27.02.2016, 12:42  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

Сообщение от ALEKSEY188 Посмотреть сообщение
добейся, чтобы было 200 преобразований в секунду
этого я добился. По входу в прерывание поднимаю ножку, по выходу опускаю. Проверил все отлично.

Сообщение от ALEKSEY188 Посмотреть сообщение
сделай три переменные, две u32
попробую так...

индюк, да делал вольтметр сетевой на этом коде. Сигнал через диод и делитель заводил. Все работало отлично. А тут такая ботва )))
miwutka вне форума  
Непрочитано 27.02.2016, 12:51  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

изменил с флоат на long int и все стало на много лучше. Осталось откалибровать смещение. Идет первый делитель между минусом и питанием. Потом второй от этого делителя и минусом. Примерно 0.92 вольта.
Подал смещение на ацп. Прыгает от 345 до 385. Забыл повесить керамику на AREF. Наверно изза этого еще. На делителях стоит 0.01 мф

Последний раз редактировалось miwutka; 27.02.2016 в 12:58.
miwutka вне форума  
Непрочитано 27.02.2016, 13:49  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Защита МК от перенапряжения...

поставил керамику какую-то. Выпаял с платы cd-rom - АЦП показывает 285 +-2. Теперь понятно в чем дело было......
miwutka вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита в трамвае от высокого напряжения! narkotik322 Источники питания и свет 9 31.03.2015 16:06
Защита от перенапряжения в электросети 220 V - нужна схема!! buremot Источники питания и свет 31 19.06.2014 11:01
Защита от перенапряжения на линии sleuthy Источники питания и свет 5 24.05.2011 22:33
Защита портов от перенапряжения maxNTF Микроконтроллеры, АЦП, память и т.д 20 09.11.2010 11:50
Защита от перенапряжения Ruselektor Микроконтроллеры, АЦП, память и т.д 9 10.01.2010 11:08


Часовой пояс GMT +4, время: 21:22.


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