Tepe değeri 5v olan bir sinüs dalgasını opamplarla doğrulttum. Ancak bu sinyal dc değil, sadece negatiften kurtardım, dalga pozitif alternansta yani. Şimdi bu sinyali 16f877a nin adc sinden okutup lcd ye yazdirmam gerekiyor. Anlık olarak, rms değeri ve tepe değerini yazdırmak istiyorum. Epey bi uğraş verdim ama yapamadım. Yardım edebilirseniz çok sevinirim.
Opamplı işareti pozitife çekme devrenizin çıkışı, girişte işaret yoksa 2,5V çıkışmı veriyor? Diğer bir ifade şekli ile Vpp=3V ise opamp çıkışı, alt tepe noktasında 1V, üst tepe noktasında 4V üretecek şekildemi çıkış üretiyor? (İşaretin sıfır noktasının ofsetini 2.5V a mı çektiniz?)
Diğer bir soru, işaretin frekansı sabitmi değişkenmi? Yoksa sadece genlikmi değişiyor?
Hocam resim ekledim. Offset vermedim. +5v -5v arasında olan sinüs sinyalin +5v una dokunmadım, -5v unu tersledim. Bu şekilde sürekli 0 dan başlayıp +5v ta yükselip tekrar sıfıra inen dalgalar elde ettim. Frekans sabit. Dalganın genliği değişiyor.
Problem çözümüne yaklaşım tarzı olarak şu şekilde tavsiyede bulunabilirim.
Sinüs işaretin frekansı : 50Hz olduğunu kabul edelim. Doğrultulmuş işaret 100Hz Doğrultulmuş işaret peryot T = 1/100 = 10ms
Burada 10 milisaniye boyunca peryodik zaman aralıkları ile bir dizi ölçüm yapmamız ve en yüksek değeri tespit etmemiz gerekiyor. Ölçümler arasındaki delta zaman aralıklarının eşit olması ölçüm sonucunun doğruluğu ve tekrarlanabilirliği açısından çok önemli.
İşlemcimizin hızı ve diğer donanım parametrelerine göre belirli bir sayıda ölçüm için şu şekilde bir tanımlama yapınız.
#define BIR_PERYOT_OLCUM_ADET 100 // 10milisaniye boyunca her 100microsaniyede bir ölçüm yap #define _FREKANS 100 // Çalışılan frekans 50Hz*2 doğrultulduğu için #define _PERYOT_US 1000000 / _FREKANS #define ORNEKLEME_GECIKME _PERYOT_US / BIR_PERYOT_OLCUM_ADET
Aşağıdaki kod örneğinde işaretin tepe değerini bulup, işaretin sinüs olduğunu bildiğimiz için rms değerini bu tepe değeri kullanarak hesaplıyoruz.
< Bu ileti mobil sürüm kullanılarak atıldı >