Pic İle Frekans Okuma

Başlatan toprak, 23 Kasım 2012, 22:00:50

trilian

Alıntı yapılan: ete - 23 Ocak 2018, 22:41:39
Sinyali 1K dirençten geçir ve öyle Pic'e gir. Pic pinine ayrıca 5V luk bir zener diyot bağla. Hatta zener diyotu 4,7V kullanırsan daha uygun olur.
Böylece kaynaktan gelen sinyal kaç volt olursa olsun pic pinine daima 5V veya 4,7V girer buda senin ölçüm yapman için yeterlidir.
Direnç değeri sorun olursa 470 Ohm kullanabilirsin.
Ete

hocam 10k direnç üzerinden geçiriyorum 12v pulsı şaseden 390k ve 100nf kapacitor ile baglıyorum ama genede ani frekans yükselmelerini okuyamıyorum yada hızlı artıyor işlemci yatişemiyormu 4mhz

ete

390K ve 100nf bağladığın yerebirde skop bağla bakalım sinyal seviyen nerelerde geziniyor. Ucun pic tarafında yük olmadığı için yalnızca 390K dan geçirmen sinyalin voltaj seviyesini düşürmez ve o sinyal 5V ların çok üzerlerinde geziniyor ise pic ya bozulur yada sinyal seviyesni ayırd edemediği için orayı hep HIGH olarak görebilir ve frkansı saymaz.
Ete

trilian

390kdan geçirmiyorum hocam devre şöyle puls sinyale şaseden 390k direnç baglıyorum yanına şaseden 100n kondansatör baglıyorum paralel 390k ile sonra 10k üzerinden pice veriyorum. normal frekansı yavaş yükselttiğimde sorun yok hesaplıyor ama hızlı yükselttiğimde hatalı deger verip düzeliyor o anda pic hızlı davranıp ara değerleri görmeyip dediğiniz gibi uzun bir high görüyor ama benzeri bir cihaz bunu deger deger hızlandırıyor görüyorum

ete

Bir nevi gerilim bölücü gibi bir şey yapmışsın ama kullandığın değerler hem çok büyük hemde sistemin hatalı bana kalırsa. Aşağıdaki tarifi bir dene istersen

- Sinyal kaynağından gelen ucu 3K9 dirençten geçir.
- direncin diğer ucunu 2K7 direnç (2,7K) ile GND ye bağla ve buna gerekirse paralel bir 100 nF kondansatör bağla.
- iki direncin birleştiği noktayı alıp pic'e gir.
Bu şekilde 12V luk bir sinyalde girsen iki direncin birleştiği noktada 4,9 V luk bir gerilim görürsün buda pic tarafından okuma için iyi bir sinyaldir bence.

Sorunu tam olarak anlayamadım. Anlatmana bakılırsa okuma hızı ile ilgili bir problem gibi gözüküyor. 4Mhz aslında frekans okumak için çok düşük bir değer. Mümkünse 20 Mhz lere çık hatta yeni nesil piclerde direk 32Mhz dahili OSC ler mevcut birini kullanuıp bu hızda çalışmaya gayret etmelisin bence.

Ete

MC_Skywalker

frekans kayanağını schmitt trigger opto ile pic'e gireseniz daga iyi sonuç alacağınızı düşünüyorum.

trilian

pic için entegre modeli ve baglantısını çizip paylaşabilirmisiniz birkaç entegre baktım ama 1-15v yazıyor bunlarda

trilian


trilian

hocam onuda çözdüm fakat

basla:
PULSIN portC.1,1,W0
PULSIN portC.1,0,DUS
if w0>0 then
pulstot=w0+dus
pulstot=pulstot/100
olcum=30000/pulstot
olcum=olcum/3
olcum=olcum*12

HSEROUT ["DEGER ",dec olcum ,10,13]
goto basla
end

bu şekilde istediğim sonucu aldım fakat 3 saniyede bir döngü tamamlanıyor
bana anlık lazım 4mhz kristal kullanıyorum 20mhz kristal kullandıgımda düşük frekansları ölçmüyor

trilian

Alıntı yapılan: trilian - 27 Ocak 2018, 12:14:23
pic için entegre modeli ve baglantısını çizip paylaşabilirmisiniz birkaç entegre baktım ama 1-15v yazıyor bunlarda

örnek varmı proteus üzerinde

trilian

Alıntı yapılan: ete - 24 Ocak 2018, 17:33:18
Bir nevi gerilim bölücü gibi bir şey yapmışsın ama kullandığın değerler hem çok büyük hemde sistemin hatalı bana kalırsa. Aşağıdaki tarifi bir dene istersen

- Sinyal kaynağından gelen ucu 3K9 dirençten geçir.
- direncin diğer ucunu 2K7 direnç (2,7K) ile GND ye bağla ve buna gerekirse paralel bir 100 nF kondansatör bağla.
- iki direncin birleştiği noktayı alıp pic'e gir.
Bu şekilde 12V luk bir sinyalde girsen iki direncin birleştiği noktada 4,9 V luk bir gerilim görürsün buda pic tarafından okuma için iyi bir sinyaldir bence.

Sorunu tam olarak anlayamadım. Anlatmana bakılırsa okuma hızı ile ilgili bir problem gibi gözüküyor. 4Mhz aslında frekans okumak için çok düşük bir değer. Mümkünse 20 Mhz lere çık hatta yeni nesil piclerde direk 32Mhz dahili OSC ler mevcut birini kullanuıp bu hızda çalışmaya gayret etmelisin bence.

Ete


hocam onuda çözdüm fakat

basla:
PULSIN portC.1,1,W0
PULSIN portC.1,0,DUS
if w0>0 then
pulstot=w0+dus
pulstot=pulstot/100
olcum=30000/pulstot
olcum=olcum/3
olcum=olcum*12

HSEROUT ["DEGER ",dec olcum ,10,13]
goto basla
end

bu şekilde istediğim sonucu aldım fakat 3 saniyede bir döngü tamamlanıyor
bana anlık lazım 4mhz kristal kullanıyorum 20mhz kristal kullandıgımda düşük frekansları ölçmüyor

trilian

3 saniyede döngü olayı megerse Hserout komutundanmış serout2 kullandım saniyede döngü tamamlandı. hserout yavaşlatıyor bilgi olsun

Powered by EzPortal