Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: Proteus - 28 Kasım 2020, 21:59:23

Başlık: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 28 Kasım 2020, 21:59:23
Arkadaşlar kolay gelsin,

Aşağıdaki devre ile akım ölçmeye çalışıyorum ama tam olarak başaramadım.Bu işin mantalitesi nedir tam olarak

(https://i.ibb.co/2twZjJb/Ads-z1.png) (https://ibb.co/2twZjJb)

Skopta opamp çıkış voltajının düştüğünü gözlemliyorum trafonun primerinden geçen akıma göre değişim var.
Sarı opamp çıkışı, mavi akım trafosu sekonder voltajı

(https://i.ibb.co/7rQKkHL/skop.jpg) (https://ibb.co/7rQKkHL)


Kodum da bu şekilde okuma kısmı :
void current_READ(void)
                                            {
    max=0;
    v=0;
    for (i=0; i<=20;i++){
   
    t[i]=0;
    }

   /*memset(txt, 0x00, 1);*/
ADCON0.ADON=1;
delay_us(100);
for(i=0; i<=20; i++)
                      {
v= ADC_Read(1);
v =v*(10.0/1023.0);
v=(v-5.0);
 t[i]=(v*100);
                      }

ADCON0.ADON=0;
max=t[0];
for(i=0; i<=20; i++)    {

      if(max<t[i])
          max=t[i];
         
                        }
max=max*.707106781;            // convert peak into RMS



/*IntToStr(max, txt);*/         // convert integer value into string

FloatToStr_FixLen(max, txt, 5);

Lcd_out(2,1,txt);            // displays measured current on LCD
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Erol YILMAZ - 28 Kasım 2020, 22:14:41
Merhaba,

Diferensiyel amplifier uygulaması doğru fakat 2 nokta dikkatimi çekiyor.
1. Amplifier yapın 2k2/22k  oranında bir güçlendirme yapıyor. yani 0.1 ile çarparak zayıflatıyor.
10x kazanç için 22k ile 2k2 lerin yerini değiştirmek lazım.

2. Giriş AC olduğu için kuvvetlendirdiğimiz sinyale offset vererek yukarı taşımalıyız.
PIC'in ADC REF i olarak 5V kullanıyor isen bunun yarısı kadar olan 2.5V REF olarak uygundur.
Uygulamanda dif amp'a REF olarak 5V vermişsin.

Precision bir uygulama olmayacağını varsayarsak 5V a 2 adet 150 ohm u seri bağlayarak,
ortadaki 2.5V u ref olarak kullanabilirsiniz.
Sonucu merak ediyorum.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 28 Kasım 2020, 22:37:05
Merhaba,

Normal devrem üzerinde direnç değerleri 10x kazanç olacak şekilde ama simülasyonda farklıymış gözümden kaçmış :(

VREF 5V vermekte nasıl bir sakınca olabilir ? Önceden 2.5V idi ama ben tekrar 5V çıkardım böylelikle girişe göre çıkışta sinyalim düşüyor.

Açıkcası devreyi başka bir yerden buldum orjinalinde 5V referans ile 12V opamp beslemesi var çıkıştada 10k 10k vout/2 elde ediliyor.

Kod sanırım ona göre yazılmış

v=(v-5.0); //5.0 vref
 t=(v*110.10); // tam emin değilim ama 110ohm üzerinden akım geçiriyor voltaj hesabı için
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: M.Salim GÜLLÜCE - 29 Kasım 2020, 23:53:22
Verdiğin devre şemasında opamp beslemesi 5V görünüyor.
Ref gerilimini ayrı beslemeyi ayrı yapmazsan sinyalde distorisyon oluşur.
Ayrıca sadece negatif alternansları görürsün. Pozitifler Skoptaki gibi kırpılır. (Distorisyon=Orjinalinden bozulma, kırpılma)
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 30 Kasım 2020, 08:50:37
Arkadaşlar kolay gelsin,

Devrede bazı değişiklikler yaptım 2,5 Tl431 ile Vref verdim besleme gerilimim de +5V bipolar LMV324M

Railto rail opamp kullanıyorum.Direncleri hepsini eşdeğer olarak ölçerek seçmeye çalıştım.

Ayrıca tasarruflu lamba bağladım başta sinüsü bozduğu için feedback direncine paralel 1nf kapasite ilave ettim böylelikle baya düzeltme oldu.

Sonra 100W rezistif Lamba bağladım geçen akım 0.46mA trafo dönüştürme oranım 1/1000 oldugundantrafo sekonderinden 460uA okudum

17 ohm burden direnci bağladım böylece 460x17=7,8mV 7,8mv*1,41=11,2mV

10X kazancım oldugundan 111mv çıkışta almam gerekiyor.

(https://i.ibb.co/S7xHNxS/skop1.jpg) (https://ibb.co/S7xHNxS)

320mvPP/2=160/1,41=113mV 2mV hata payı ile difference amp kısmını sağlıklı bir şekilde çalıştırdım.

Kafamda bir kaç soru var meşgul eden.Burden direnci seçimi neye göre yapılır.
Bir sitede şöyle bir ibare gördüm mcu çözünürlüğüne ve trafo oranına göre bir direnç için formülasyon
PIC16 serisi bir denetleyici ile okumak istiyorum uygun değer sizce bu formülle bulunabilir mi ?
(https://i.ibb.co/SJrHBn1/cd526965-cc6d-40e3-baa6-488614491dc3.jpg) (https://ibb.co/SJrHBn1)
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 30 Kasım 2020, 08:54:31
Alıntı yapılan: Mehmet Salim GÜLLÜCE - 29 Kasım 2020, 23:53:22Verdiğin devre şemasında opamp beslemesi 5V görünüyor.
Ref gerilimini ayrı beslemeyi ayrı yapmazsan sinyalde distorisyon oluşur.
Ayrıca sadece negatif alternansları görürsün. Pozitifler Skoptaki gibi kırpılır. (Distorisyon=Orjinalinden bozulma, kırpılma)

Tasarruflu lamba distorsiyona neden oluyordu normalde alttaki mavi sinyal gibi distorsiyonlu 1nf ekleyince biraz düzeldi VREF = VCC/2 seçmenin faydası nedir ?
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Erol YILMAZ - 30 Kasım 2020, 09:07:23
1nF ekleyince düzelmedi aslında.
1nF ekleyince orjinal sinyali bozmuş oldun.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: e-zeki - 30 Kasım 2020, 11:38:44
Alıntı yapılan: Proteus - 30 Kasım 2020, 08:54:31Tasarruflu lamba distorsiyona neden oluyordu normalde alttaki mavi sinyal gibi distorsiyonlu 1nf ekleyince biraz düzeldi VREF = VCC/2 seçmenin faydası nedir ?
sıfır geçişlerde adc tam orta değerde kalır böylelikle pozitif ve negatif alternans için adc max ve min aralığını en verimli şekilde kullanabilirsin. VCC/2 haricinde sinyali adc max min aralığında tutmak için trafoyu körlemek zorunda kalabilirsin.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: M.Salim GÜLLÜCE - 30 Kasım 2020, 14:10:13
Alıntı yapılan: e-zeki - 30 Kasım 2020, 11:38:44sıfır geçişlerde adc tam orta değerde kalır böylelikle pozitif ve negatif alternans için adc max ve min aralığını en verimli şekilde kullanabilirsin. VCC/2 haricinde sinyali adc max min aralığında tutmak için trafoyu körlemek zorunda kalabilirsin.
Alıntı yapılan: Proteus - 30 Kasım 2020, 08:54:31Tasarruflu lamba distorsiyona neden oluyordu normalde alttaki mavi sinyal gibi distorsiyonlu 1nf ekleyince biraz düzeldi VREF = VCC/2 seçmenin faydası nedir ?
VREF=VCC/2 yapmazsan PP=VCC olan yüksek genlikli çıkış sinyallerinde kırpılmalar görürsün.
Bunun başka bir çözümü ise Duual besleme kullanmaktır. Ancak MCU ile negatif sinyalleri okuyamayacağınız için ya yine pozitife çevireceksiniz yada yarım dalga okuma yapacaksınız.
Şu devre bu amaçla yapılmıştır.
C Opampinin çıkışına İntegral devresi ekiyle de RMS okuma şansınız wardır. Girişteki MegaOhmluk dirençleri kaldırmanız şartıya.
(https://i.ibb.co/F3N5VhK/resim.png)
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 01 Aralık 2020, 17:01:48
Alıntı yapılan: Mehmet Salim GÜLLÜCE - 30 Kasım 2020, 14:10:13VREF=VCC/2 yapmazsan PP=VCC olan yüksek genlikli çıkış sinyallerinde kırpılmalar görürsün.
Bunun başka bir çözümü ise Duual besleme kullanmaktır. Ancak MCU ile negatif sinyalleri okuyamayacağınız için ya yine pozitife çevireceksiniz yada yarım dalga okuma yapacaksınız.
Şu devre bu amaçla yapılmıştır.
C Opampinin çıkışına İntegral devresi ekiyle de RMS okuma şansınız wardır. Girişteki MegaOhmluk dirençleri kaldırmanız şartıya.
(https://i.ibb.co/F3N5VhK/resim.png)

Üstad devre için eline sağlık teşekkür ederim.Bu method rogowski coillerde kullanılıyor.Tam ismi rogowski signal integrator.
Pals sayıyor idik sanırım bununla değil mi ?
Birde negatif supply var sanırım ADC ile takla atmak daha iyi olucak maliyet bakımından.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 01 Aralık 2020, 17:15:25
Birde işlemci değiştirmeyi düşünüyorum STM32F0 serisi bir denetleyici ile okuyayım diyorum,

ADC max 3,6V bu sebepten dolayı opamp beslemem 3,3V VREF=VCC/2=1,65V olarak güncellemeyi düşünüyorum.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: M.Salim GÜLLÜCE - 02 Aralık 2020, 14:34:28
Alıntı yapılan: Proteus - 01 Aralık 2020, 17:15:25Birde işlemci değiştirmeyi düşünüyorum STM32F0 serisi bir denetleyici ile okuyayım diyorum,

ADC max 3,6V bu sebepten dolayı opamp beslemem 3,3V VREF=VCC/2=1,65V olarak güncellemeyi düşünüyorum.
MCP600x serisi opampler 1.8 6.0 volt rail to rail.
Dual 3.3V ilede aynı sonucu elde edebilirsin.
maliyet de çok fazla değil zaten.
Dual beslemede Offset probleminde kalkar.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: M.Salim GÜLLÜCE - 02 Aralık 2020, 14:35:58
Alıntı yapılan: Proteus - 01 Aralık 2020, 17:01:48Üstad devre için eline sağlık teşekkür ederim.Bu method rogowski coillerde kullanılıyor.Tam ismi rogowski signal integrator.
Pals sayıyor idik sanırım bununla değil mi ?
Birde negatif supply var sanırım ADC ile takla atmak daha iyi olucak maliyet bakımından.
Aslında yüksek voltaj ölçme amaçlı fark amplifikatöründen başka birşey değil.
Tabii birde Tam dalga Doğrultma ilavesiyle.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 02 Aralık 2020, 15:20:25
VREF=2,5V Kazancımı 5x olarak güncelledim böylelikle hesaplarıma göre max 5A yükte ADC'ye 3,38V düşecek.
Devreyi değiştirmek istemedim.Böyle olması daha güzel oldu sanırım.

                                           
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 02 Aralık 2020, 22:37:02
O.46A Primer akım 50 ohm burden direncim ile skop görüntüm.

0.46/100*50=23mV
Çıkışım ise 5x
Sanırım doğru ama  yaptığım hesaplarla bı türlü ispat edemedim kendimce skop görüntümdeki sarı olan 480mv çıkış mavi ise trafo sekonderi 480/2=240*0.707=169\5=33mv çıkıyor ama giriş 23mv anlayamadim bu işi :(
(https://i.ibb.co/7CrQ9Vc/IMG-20201202-174917.jpg) (https://ibb.co/H4GCJYv)
(https://i.ibb.co/VQyNSv6/IMG-20201202-223835.jpg) (https://ibb.co/Hxv2zrZ)
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Erol YILMAZ - 03 Aralık 2020, 10:04:22
Birşeyleri yanlış yapıyorsun.  Dif amp yapısı belli.
100mVp-p giriş sinyali, 2.5V offset ve 5x kazanç ile çıkan sonuç aşağıdaki gibi...
lehimsiz bir direncin var gibi :)

(https://i.ibb.co/WxtQw0N/Whats-App-Image-2020-12-02-at-23-43-01.jpg) (https://ibb.co/1v635MY)

Dave de aynı hesaplarla anlatıyor konuyu...  33. dk

https://www.youtube.com/watch?v=7FYHt5XviKc

(https://i.ibb.co/HPrCPhb/dave-diff-amp.jpg) (https://ibb.co/6t48tXT)

Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: z - 03 Aralık 2020, 13:37:37
Mavi ve sari olcumleri ayni zamanda yapmissiniz.

Sekonderdeki olcumleri nasil yaptiniz scopu sekondere nasil bagladiniz?
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 03 Aralık 2020, 19:22:03
Herkese çok teşekkür ederim çözdüm sorunları skop kalibrasyon ile ilgili bir sorun vardı ayrıca ac coupled ile okududum sinyali.

Mavi çıkış sarı giriş kazanç 4.54
Vref 1.65 olarak guncelledim
Opamp beslemesini de 5V bıraktım daha iyi aralıklar görmek için

(https://i.ibb.co/cxyQNP7/IMG-20201203-181106.jpg) (https://ibb.co/QXJM6Z1)
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 03 Aralık 2020, 19:23:47
Alıntı yapılan: z - 03 Aralık 2020, 13:37:37Mavi ve sari olcumleri ayni zamanda yapmissiniz.

Sekonderdeki olcumleri nasil yaptiniz scopu sekondere nasil bagladiniz?


Sekonder de 50 ohm burden direncim var 0.46/1000*50=23mv RMS çıkıyor giriş sinyalim yani
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 07 Aralık 2020, 15:56:43
Arkadaşlar Kolay gelsin,
STM Studio'da aldığım değerler bu şekilde,

(https://i.ibb.co/Q6tV07s/stmstud-o.png) (https://ibb.co/sFz47pL)

Timerim 200 us kurulu eğer aşığıdaki 1ms delay aktif edince grafik stabilleşiyor.Yük bağlı değilken 1.65V iken tam çıkış 200-250 arasında değerler alıyorum.Karta sürekli reset atarak.1ms delay sanırım timerimin çalışmasını engelliyor.Yük bağlayınca  ve tekrar reset işlemi uygulayarak değerleri okumaya calısıyorum değerler + - olarak  değişiyor.

RMS olarak değerleri alıyorum.Hesapda yapabiliyorum sorun yok , sorun ADC'nin dalgalanması bir videoda izledim 1ms delay koydu eleman sorunu çözdü ama benim diğer tarafı patlatıyor çözüm olarak ne yapabilirim.

https://www.youtube.com/watch?v=UzvIXeRCZw0&ab_channel=Weblearning
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  /* Prevent unused argument(s) compilation warning */

HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);

HAL_ADC_Start(&hadc1);
if (HAL_ADC_PollForConversion(&hadc1,5)==HAL_OK)



for( count = 0 ; count < 100 ; count++ )

{
adc_raw_data[count] = HAL_ADC_GetValue(&hadc1);
  rawrms += adc_raw_data[count] * adc_raw_data[count];
}
   if (count >=100){
count =0;
rms = sqrt(rawrms / 100);
rms=rms-2047;
// HAL_ADC_Stop(&hadc1);
// HAL_Delay(1);
 }
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: JOKERAS - 07 Aralık 2020, 16:37:32
for( count = 0 ; count < 100 ; count++ ) {
  adc_raw_data[count] = HAL_ADC_GetValue(&hadc1);
  rawrms += adc_raw_data[count] * adc_raw_data[count];
}
if (count >=100){
    count =0;
    rms = sqrt(rawrms / 100);
    rms = rms-2047;
}

Yukarıdaki İf Bloğunun hiç bir anlamı yok!
Ayrıca, rawrms değişkenini for döngü bloğuna girmeden önce rawrms = 0; sıfırla.

Alttaki gibi deneyin bir.

  rawrms = 0;

for( count = 0 ; count < 100 ; count++ ) {
  adc_raw_data[count] = HAL_ADC_GetValue(&hadc1);
  rawrms += adc_raw_data[count] * adc_raw_data[count];
}
  rms = sqrt(rawrms / count);
  rms = rms-2047;

Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 07 Aralık 2020, 18:10:51
Alıntı yapılan: JOKERAS - 07 Aralık 2020, 16:37:32for( count = 0 ; count < 100 ; count++ ) {
  adc_raw_data[count] = HAL_ADC_GetValue(&hadc1);
  rawrms += adc_raw_data[count] * adc_raw_data[count];
}
if (count >=100){
    count =0;
    rms = sqrt(rawrms / 100);
    rms = rms-2047;
}

Yukarıdaki İf Bloğunun hiç bir anlamı yok!
Ayrıca, rawrms değişkenini for döngü bloğuna girmeden önce rawrms = 0; sıfırla.

Alttaki gibi deneyin bir.

  rawrms = 0;

for( count = 0 ; count < 100 ; count++ ) {
  adc_raw_data[count] = HAL_ADC_GetValue(&hadc1);
  rawrms += adc_raw_data[count] * adc_raw_data[count];
}
  rms = sqrt(rawrms / count);
  rms = rms-2047;


Teşekkürler değişkeni sıfırlamak gözden kaçmış :(
Değerler çok hızlı değişiyor offset gerilimi sayısal olarak çıkardım.0-500 arası değişiyor.
Aslında şuan tam okuyorum başka bir timer daha kurup değerleri belli peryotlarda  ekrana mı yazdırsam.
Nasıl bir yol izleyebilirim fikir olarak ?
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: mehmet - 07 Aralık 2020, 18:29:01
Alçak geçiren filtre olabilir
bir sonraki adım...
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 07 Aralık 2020, 21:55:30
Alıntı yapılan: mehmet - 07 Aralık 2020, 18:29:01Alçak geçiren filtre olabilir
bir sonraki adım...

Donanımsal filtre sen bahsediyorsunuz dimi hocam RC ?

Kesim frekansı 50 Hz  olmalıdır değil mi?

Ayrıca yazılım ve algoritma olarak da tavsiyeleriniz benim için çok iyi olacaktır.


Kafamda olan klasik DMA ile okumak var
Ayrıca ADC kalibrasyonu hakkında neler yapabilirim?

ADC ölçümlerinde trickleri merak ediyorum çok hassas ölçümler için.

Kolay gelsin


Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: mehmet - 08 Aralık 2020, 00:48:22
Alıntı yapılan: Proteus - 07 Aralık 2020, 21:55:30Donanımsal filtre sen bahsediyorsunuz dimi hocam RC ?
::op
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: z - 08 Aralık 2020, 01:20:37
Filitrelemede kesim frekansı için alliasing etkisini giderecek köşe frekansının altına inmek tehlikelidir.

Eğer bir tam periyodda (20ms) 100 örnek alırsan her bir örnek 0.2 ms eder. Bu da 5000 Hz demektir. Bununla da 2500Hz sinyal örneklenebilir. Yani 50 harmoniğe kadar sağlık örnekleyebilirsin.

Bu durumda kacinci harmonigi degerlendireceksen o harmonigin yukarisinda bir frekansta filitreleme yapabilirsin. Bu yuzden 50 Hz filitreleme yapilmamali.

RMS değer ölçmek istendiğine göre harmoniklerin voltaja olan etkisi öğrenilmek isteniyor demektir. Filitre yapıldığında harmoniklerin genliği tehlikeye girer ölçüm değerleri sapmaya başlar.

Yazdığın kütüphaneden anlamıyorum ama bu işlerde timer ile zamanı kesin anlarda sample toplaman lazım.
ADC ile ölç kaydet ölç kaydet sonra da ölçüm değerleri üzerinde işlem yap değil.

ADC ile ölç ve Sakla. T kadar bekle, ADC ile ölç ve Sakla. T kadar bekle şeklinde ölçümler yapmak gerekir.
Buradaki T değerleri oldukça sabit olmalı ki örnekleme peryodun şaşmasın.

Üstelik bu işlemi de her bir periyod boyunca yapmalısın.

Bazıları uzunca bir zaman diliminde (pek çok periyod üzerinden) RMS hesaplamaya kalkıyorlar hata yapıyorlar.


Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 08 Aralık 2020, 10:24:27
Alıntı yapılan: z - 08 Aralık 2020, 01:20:37Yazdığın kütüphaneden anlamıyorum ama bu işlerde timer ile zamanı kesin anlarda sample toplaman lazım.
ADC ile ölç kaydet ölç kaydet sonra da ölçüm değerleri üzerinde işlem yap değil.

ADC ile ölç ve Sakla. T kadar bekle, ADC ile ölç ve Sakla. T kadar bekle şeklinde ölçümler yapmak gerekir.
Buradaki T değerleri oldukça sabit olmalı ki örnekleme peryodun şaşmasın.

Üstelik bu işlemi de her bir periyod boyunca yapmalısın.

Bazıları uzunca bir zaman diliminde (pek çok periyod üzerinden) RMS hesaplamaya kalkıyorlar hata yapıyorlar.


Peryodun başlangıç önemi var mı ?

ZCD Tetiklenince timer başlatırım 200 us boyunca örnek alırım ADC dizisine kaydederim.

Ana programda RMS hesabını yapıp sonucu alırım.

Tam anlayamadım T kadar bekle derken neyi kastettiniz bir peryot es geçmeyi mi birde RMS hesabını tam nerde yapmalıyım ?
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 09 Aralık 2020, 18:10:07
Ölçüm Disco kartın üzerinde olan 3V üstünden yapılmıştır.3mv bir fark var.
VREF kalibrasyonu 100 us örnek alma kayıt etme 1s'de bir kayıtlı değerleri hesaplayacak kesmelerde ekledim.
DC ölçümde başarılı oldum.
AC olarak henüz tam olarak keskin bir ölçüm sağlayamadım vadc değerleri 1,35V ila 1,90V oynuyor.
Ofsetten çıkardığımızda +- 300mv eder kazancımda 4,5x oldugu için 66mv input var demektir.
Ama benim input değerim 23vrms
Tam olarak çözemedim bu işi.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{

if (htim==&htim3){

for( count = 0 ; count < 100 ; count++ ){

rawrms += adc_raw_data[count] * adc_raw_data[count];

}

rms = sqrt(rawrms / count);
rawrms = 0;
vdda = 3.3000 * (*VREFIN_CAL) / vref;
//vadc = (vdda * (rms-2300)/4095);
vadc = (vdda*rms/4095);
//volt = (vadc-1.65);
//rms = rms-2047;
// HAL_GPIO_TogglePin(LED_GPIO_Port,LED2_Pin);

}
 
 if (htim==&htim2){

HAL_ADC_Start(&hadc2);

  if (HAL_ADC_PollForConversion(&hadc2,5)==HAL_OK)

for( count = 0 ; count < 100 ; count++ ) {

  adc_raw_data[count] = HAL_ADC_GetValue(&hadc2);

}
HAL_ADC_Stop(&hadc2);
HAL_ADC_Start(&hadc1);



if (HAL_ADC_PollForConversion(&hadc1,5)==HAL_OK)

  vref =  HAL_ADC_GetValue(&hadc1);
// HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
 
}

HAL_ADC_Stop(&hadc1);



}
(https://i.ibb.co/WxCxgB1/skop3.jpg) (https://ibb.co/Pmkmw18)
(https://i.ibb.co/mvc8K0k/metre.jpg) (https://ibb.co/SQ3rgcb)
(https://i.ibb.co/GJQcdJk/stmstud-o1.jpg) (https://ibb.co/KGxF5G7)
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: z - 10 Aralık 2020, 01:44:43
Alıntı yapılan: Proteus - 08 Aralık 2020, 10:24:27Peryodun başlangıç önemi var mı ?

ZCD Tetiklenince timer başlatırım 200 us boyunca örnek alırım ADC dizisine kaydederim.

Ana programda RMS hesabını yapıp sonucu alırım.

Tam anlayamadım T kadar bekle derken neyi kastettiniz bir peryot es geçmeyi mi birde RMS hesabını tam nerde yapmalıyım ?

Eğer ölçümü tam bir peryod aralığında yapabiliyorsan nerden başladığının önemi yok.

Diyelim ki periyodu  20ms olan  gerilimden 100 örnek alacaksın. Bu durumda her bir örnek 20/100 ms aralıklarla alınmak zorunda.

Yani 200 uS.

O zaman timerı 200uS de bir int üretecek şekilde kuracak ve her bir int da ADC yi başlatıp bir tane değer okuyup saklayacaksın. Dolayısı ile yukarıda T olarak bahsettiğim şey buradaki 200uS oluyor.





Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: e-zeki - 10 Aralık 2020, 17:38:17
nacizane tavsiye devrede zcd varsa zaten adc'yi dma'ya aktar timer içinde direk o anki değerleri listeleyerek git. 3-4 periyotta bir de biriktirdiğin adc datalarıyla rms hesabı yap.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 25 Mayıs 2021, 12:02:00
Kolay gelsin herkese,

Sinyal jeneratörümden 1.65VDC offsett ekleyerim 1V RMS sinüs veriyorum, görmem gereken değerlerin aralığı min:0,65V - max:2,65V olması gerekiyor ADC'de ama sapmalar  var min 0,2V ,max : 2,9 olarak görüyorum bunun sebebi tam olarak nedir ?

(https://i.ibb.co/G3h3spR/tablo.png) (https://ibb.co/YTrTDQh)

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
 
 

if (htim==&htim2){  //200uS TIMER INT

  HAL_ADC_Start(&hadc2); //ADC START

     if (HAL_ADC_PollForConversion(&hadc2,5)==HAL_OK)


         for( count = 0 ; count < 100 ; count++ ) {  //200uS * 100 SAMPLE =20mS 1 period

           adc_raw_data[count] = HAL_ADC_GetValue(&hadc2);  //STORE ADC DATAS
}

}



if (htim==&htim3){ //100mS TIMER INT

  for( count = 0 ; count < 100 ; count++ ){

       rawrms += adc_raw_data[count] * adc_raw_data[count]; //RMS CALC
}    

  HAL_ADC_Start(&hadc1);
if (HAL_ADC_PollForConversion(&hadc1,5)==HAL_OK)

{
                 vref =  HAL_ADC_GetValue(&hadc1); //VREF CAL
rms = sqrt(rawrms / count); //RMS CALC
rawrms = 0;
vdda = 3.3000 * (*VREFIN_CAL) / vref;
vadc = (vdda*rms/4095); //ADC VOLT
}
             

}
   
   HAL_ADC_Stop(&hadc2);
HAL_ADC_Stop(&hadc1);
         
}
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: zipzip - 25 Mayıs 2021, 13:02:26
1v rms sinüsoidal gerilimin tepe değerei 1.414 volt eder. Tepeden tepeye 2.828 volt eder. Pozitif alternanstaki kırpılma nedeniyle 2.7 volt ölçmüşsünüz.
Başlık: Ynt: Akım Trafosu ile 220V Akım Ölçümü
Gönderen: Proteus - 25 Mayıs 2021, 13:27:19
Alıntı yapılan: zipzip - 25 Mayıs 2021, 13:02:261v rms sinüsoidal gerilimin tepe değerei 1.414 volt eder. Tepeden tepeye 2.828 volt eder. Pozitif alternanstaki kırpılma nedeniyle 2.7 volt ölçmüşsünüz.

RMS hesaplaması yapıyorum ama kodumda