pic ile ac voltaj ölçümü

Başlatan Mucit23, 28 Temmuz 2010, 11:57:55

Mucit23

Merhaba arkadaşlar sizlere sormak istediğim bi konu var.Pic'in ADC kanalları ile ac voltaj ölçmem gerekiyor 3 fazlı sistemlerde  her fazın gelirimini ayrı ayrı ölçüp ekrana  R=230V  S=225V  T=240V gibi yansıtmam gerekiyor ama aklımı karıştıran şey bu kadar yüksek bir gelirimi picin anlayacağı gelirime (0-5volt) nasıl dönüştüreceğim bu konuda hiç bir fikrim yok ayrıca pic içerisinde nasıl bi hesaplama yapmam gerekir bilmiyorum bu konuda bana yardımcı olursanız sevinirim

Erol YILMAZ

Yüksek gerilimi doğrultup, 5-6 direnç ile gerilimi bölebilirsin...
okuduuğun gerilimin de RMS ini ölçersin, Hoş olur.

Mucit23

Cevabınız için teşekkür ederim gelirim bölücü olarak nasıl bi direnç kullanmalıyım değerleri ne olmalıdır.Bu konuda fazla bi bilgim yok çünkü daha önce hiç ac voltaj ölçmedim.Yardımcı olursanız sevinirim

caliskan

Giriş gerilimini gerilim bölücü dirençlerle düşürdükten sonra bu katın çıkışına op-amp lı doğrultucu devre yapman gerekiyor.
İnsanların ne kadar kötü olduğunu görmek beni şaşırtmıyor; fakat bu yüzden hiç utanmadıklarını görünce hayrete düşüyorum....

Mucit23

dirençlerle böyle bir şema yaptım tabi potla kalibre edilmesi gerekiyor sizce bu opmamp öncesi için uygunmudur yani gelirim bölücü olarak ve opamp katında nasıl bi şema kurmalıyım opamp olarak en uygunu hangisidir
[IMG]http://img44.imageshack.us/img44/7035/adszrq.jpg[/img]

Uploaded with ImageShack.us

Klein

Eğer ölçeceğin şebekenin sinüsü bozulmamış ise , yani armonik yoksa ve tüm yükler rezistif ise, doğrultup  ölçmek işe yarar. Ancak hatta yüksek harmonik varsa , şebekede sinüsü bozan  kapasitif veya endüktif yük varsa, ölçüm sonuçları doğru olmaz.
Bunun için true-RMS  yöntemi ile ölçmeniz gerekir. 

Mucit23

Hattın temiz olduğu söylenemez yani saf aktif değil harmonik yaratacak bir sürü şey var.Bu yüzden sizin dediğiniz yöntemi kullanmalıyım fakat dediğiniz yöntemle ilgi hiçbir bilgim yok nasıl yapmam gerekiyor dediğiniz yöntemi biraz açıklarmısınız

Mucit23

arkadaşlar bu sistemle ilgili pek kaynak bulamadım sizden ricam bilgisi olan arkadaşlar bu sistemi birazcık açıklarlarsa hem benim için hemde başkaları için çok faydalı olur

Klein

hatırladığım kadarıyla 
belirli aralıklarla aldığımız örneklerin karelerinin ortalaması şeklinde hesaplıyoruz.  Yanlış hatırlıyor da olabilirim. Bilgileri taze olan mühendis arkadaşlar daha kesin bilgi verebilirler.
Ama bunu hesaplamaya çalışmak yerine doğrudan true-RMS ölçüm yapan  çipler var çok pahalı da değiller. bunları kullanabilirsin. Bu sayede hem Akım , hem gerilim ,  , cos-fi ,  VA , W gibi bilgileri hesaplamaya uğraşmadan tek çiple halledebilirsin. 
Analog Device , LT , Microchip ve daha birçok firmanın bu tip çipleri var. energy-meter diye ararsanız daha fazla sonuca ulaşabilirsiniz.

http://www.analog.com/en/analog-to-digital-converters/energy-measurement/products/index.html
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=11029&mid=11&lang=en&pageId=79
http://www.linear.com/pc/viewCategory.jsp?navId=H0,C1,C1154,C1086

Erol YILMAZ

True RMS son çalıştığım konulardan birisi,
http://www.zilog.com/docs/z8encorexp/appnotes/an0216.pdf

Kısacası her aldığın örneğin karesini alıyor ve RMS_SAMPLE adedine bölüyorsun,,,
Bunları sürekli toplayıp örnek sayısı RMS_SAMPLE'a geldiğinde toplanmış değerin,
karekökünü alıyorsun...
Fikir vermesi açısından Uygulama Notunu ve aşağıdaki kodu inceleyebilirsin...

Kodları çalışır hale getirip,
Sn de kaç örnek almak istiyorsan o kadar defa çağırıyorsun.

   Count++;
   if(Count == RMS_SAMPLE)  // kaç RMS örneği alacaksak...
   {
      Count             = 0;
      Voltage           = sqrt16(RMS_Total);
      RMS_Total         = 0;
      RMS_Completed     = 1;
   }
   
   ADC_In = AdcReadLL(0);
   RMS_Total += (ADC_In*ADC_In) / RMS_SAMPLE;

tmcone

Daha önce bir arkadaşımla beraber böyle bir proje yapmıştık. Projemizde gerilim bölücü devre dışında herhangi bir devre kullanmaksızın sadece 8 bitlik bir mikroişlemciyle (atmega32) bir faz için frekansı ölçmüş ve Vrms, Irms, P, Q, S ve FFT alarak THD hesaplamıştık. Tüm sonuçlar saniyede 4 kez yenileniyordu. 


(Simülasyonda Vrms = 3.535 V ve Irms = 2 A )

Sadece üç faz için gerilim ölçümü yapacaksan işin kolay. Vrms formülü:


Bu formülden yararlanarak @Allegro nun verdiği koddakine benzer şekilde en az 2 periyot boyunca eşit aralıklarla çok sayıda örneklem alıp bunların karelerini bir akümülatör değişkeninde toplayacaksın.  Bu işlemi kesme içerisinde yapabilirsin. Yalnız bölme işlemini kesme içerisinde ve her örneklemden sonra yapmamalısın; kod optimize olmaz. Örneklem alma işlemi tamamlanınca ana program içerisinde akümülatör değerini örneklem sayısına bölüp daha sonra karekökü alırsın. En son olarak da gerilim bölme oranına göre ölçeklendirme yaparsın. Donanım tarafında dikkat etmen gereken sinüsodial kaynağı DC ile kaydırarak 0-5 V arasına ya da 0-2.56 V gibi bir değer arasına yükseltmendir. Başka bir yöntem de kullanılabilir burada. Ayrıca kaynağın DC ofsetinden dolayı oluşan hatayı yazılımsal bir filtre tasarlayarak en aza indirebilirsin.

Eğer gerilimin yanında akım da ölçeceksen iki kanaldan (V, I) aynı anda örneklem alamayacağından (bazı mikroişlemciler hariç) sırayla her bir kanaldan örneklem alıp şebeke frekansının 50 Hz olduğunu göz önünde bulundurarak ara değerleri lineer interpolasyonla yüksek bir doğrululukla elde edebilirsin. Yükün resistif olmaması durumunda akım sinüsodial olmayacaktır, bu yüzden örneklem hızı çok yüksek olmalıdır. Eğer pic kullanacaksan dsPic kullanmanı tavsiye ederim. Ya da en azından 40 MHZ (10 MIPS) de çalışan bir PIC18F serisi bir mikroişlemci kullanılabilir.

Mucit23

arkadaşlar verdiğiniz bilgiler için teşekkür ederim.Bu bilgiler benim için çok faydalı olacak :)

Erol YILMAZ

True RMS ölçüm için karekök alman gerekiyor,
Bunun için verimli bir C kodunu LIBRARY bölümünde paylaştık.
Haberin olsun...