Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
662
Tıklama
0
Öne Çıkarma
Pic 16F877A ve CCS C ile ilgilenmiş arkadaşlar yardım eder misiniz?
M
6 yıl
Çavuş
Konu Sahibi

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.



< Bu ileti mobil sürüm kullanılarak atıldı >

R
6 yıl
Binbaşı

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?


Bu mesaja 1 cevap geldi.
M
6 yıl
Çavuş
Konu Sahibi

< Resime gitmek için tıklayın >

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @rafet32
R
6 yıl
Binbaşı

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.


void Ac_olc_Max()
{
int16 i;
float tepe_deger,rms_deger;
int16 max_deger = 0;
int16 anlik_deger;


//--------------- Bir peryot süresince örnekleme al -------------------
// max tepe değerini bul
max_deger = 0;
for (i=0; i < BIR_PERYOT_OLCUM_ADET; i++)
{
anlik_deger = read_adc();
if ( anlik_deger > max_deger ) max_deger = anlik_deger;
delay_us(ORNEKLEME_GECIKME);
}
//-------------- ölçüm sonuçları------------------
// max 5000mv giriş Adc çözünürlük 1023 ~1000 kabul ettik
// 5000/1000=5 adc değerini mV a çevirme katsayısı

tepe_deger = max_deger * 5; // işaretin Vp değeri milivolt cinsinden
rms_deger = tepe_deger / 0.7071 ; //Vrms=Vp/kök(2)


}





< Bu mesaj bu kişi tarafından değiştirildi rafet32 -- 16 Ocak 2020; 14:56:17 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @merik and sago
M
6 yıl
Çavuş
Konu Sahibi

Çok çok teşekkür ettim hocam. Sayenizde hallettim.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @rafet32
R
6 yıl
Binbaşı

Özel mesajınıza forumda gsm onayını yapmadığım için okuyup cevap yazamıyorum.

Problemi çözmenize sevindim.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @merik and sago
M
6 yıl
Çavuş
Konu Sahibi

quote:

Orijinalden alıntı: rafet32

Özel mesajınıza forumda gsm onayını yapmadığım için okuyup cevap yazamıyorum.

Problemi çözmenize sevindim.
Eyvallah hocam



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.