avatar_elektro77

Devir sayıcı-Rpm metre-Takometre

Başlatan elektro77, 14 Şubat 2020, 17:17:44

elektro77

Merhabalar:
500Rpm/sn ila 1000Rpm/sn dönen bir mekanızmam var.Hareket mili, optik sensöre oturtulmuş 1 cm çaplı 1 turda 1 puls veren  bir diske bağlı.
Bu mekanizmaya bir devir sayıcı yapmak istiyorum. Bu konu ile ilgili kaynakları incelediğimde işin benim gibi bir yazılım özürlüye göre oldukça hassas ayarlara dayandığını gördüm.
Bu işi  ölçüm kısmında  Lm331 veya Lm2907-2917 tarzı frequans to voltage converterler ile yapıp yazılım kısmında ise  picte adc okutsam  ekrana ise okunan adc degeri devir birimine cevirip yazdirsam ne kadar sağlıklı ölçümler yaparım bilmiyorum.
Daha önce gerçekte bu yolla yani frequans to voltage converter yolu ile rpm ölçen üstadım varsa tecrübelerinden faydalanmak isterim.
yoksa yazılım konusunda baya kafa yorduracak gibi bana.
Saygılarımla.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

#1
Pulslar frekansa dönecek ardından frekans voltaja dönecek ardından voltaj devir sayısına dönecek. Her bir işlemde %5 tolerans olsa sonuç bence hüsran olurdu. Yani net ve doğru değer yakalamak çok zor olurdu diye düşünürüm. Direk puls saymak ve bunu yaparkende zaman tutmak bence en iyi metod olur.
Ama yinede frekans voltaj çevrim sonucunuda merak ediyorum doğrusu.
Ete

elektro77

Alıntı yapılan: ete - 15 Şubat 2020, 10:00:52Pulslar frekansa dönecek ardından frekans voltaja dönecek ardından voltaj devir sayısına dönecek. Her bir işlemde %5 tolerans olsa sonuç bence hüsran olurdu. Yani net ve doğru değer yakalamak çok zor olurdu diye düşünürüm. Direk puls saymak ve bunu yaparkende zaman tutmak bence en iyi metod olur.
Ama yinede frekans voltaj çevrim sonucunuda merak ediyorum doğrusu.
Ete
Tölerans konusunda aynı fikirdeyim hocam.
Bende sonucu çok merak ederek bazı çalışmalar yapmaya başladım. Sonucu size bildiririm. Eğer tatmin edici olmazsa yazılımsal olarak birşeyler yapmaya çalışacağım inşallah.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#3
Lm331 kullanarak aşağıdaki devreyi isiste simüle ettim. Simülasyon 50Hz-1Khz arası kararlı çalışıyor. Fakat bazı elemanların değerleri çok kritik kullanılmış.Yani gerçekte eleman ve ısı töleransları çok iyi hesaplanmalı. Datasheette yazan formüllere göre devreyi  1 khz, 5 volt tepeli bir frekansta 5 volt verecek şekilde hesaplayıp yaptım. Fakat nedense simülasyonda, isis Lm331 in VCC sini değiştirmeme izin vermiyor. Yani VCC voltajını kaç yaparsam yapayım VCC yi +15 volt olarak simüle ediyor. Fakat datasheete göre Lm331 in bu karekterde kullanımında Vcc +5 volt olabiliyor.  Bu durum beni yanılttı. Fakat ben yinede VCC yi +5 volt kabul ederek formülleri hesapladım. Lm331 siparişi geldiğinde durum açığa çıkar.

Birde şu isis elemanlarının yanlarında yazan text ibarelerini nasıl kaldırabiliriz. çok sıkıntı çıkarıyorlar.
64 bite geçince proteus 8.8 kurdum. Bu text yazıları yine karşıma çıktı.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#4
kafamın almadığı bir konu var. Frekans ölçme ile periyot ölçme arasındaki farkı kafam almadı bir türlü.
1 KHZ %50 duty li bir pwm sinyalinin frekansı 1 khz dir değilmi. Peki bu duty % 20 high olursa frekans değisiyormu. Anlamadigim nokta tam burasi.
Optik okuyucu sensorun arasinda donen cemberde kac delik olursa % 50 duty olusur.
yoksa yine saçmaladım mı¿
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#5
bu mesaj tarafımdan silinmiştir.

elektro77

#6
Lm331 in datasheetine bakinca application circuits lerden biri frequance to voltage converter olarak calistirilmis. Bende tasarladigim devrenin optik sensor disinda tamamini burdan aldim zaten. Simulasyondada ayni sekilde calisti. Formulleri bile var.
Ancak yinede yazdiklarinizda haklisiniz.
Ama ben yazilim konusunda zayif ve kesmeleride hala cozememis biri olarak yine buldugum kaynaklardaki hazir kaynak kodlardan yararlanip yine ezbere iş  yapmis olacagim ve istedigim gibi olmasi icin yine ete hocamın başını agritacagim. Bunu yapmaktan cekiniyorum acikcasi. Capture kaynak kodlarini kullansam bile kod icinde nerelerde ekrana yazdirma yapmam gerektigi konusunda afallayacagim ve kullandigim ekran komutlarinin yarattigi gecikmeler yuzunden kesmeyi ve ayarlari bozacagim. Iste tam bu noktadan sonra ileriyi hesaplayamayip kilitlenecegim.sonra Ne mi olacak. ete hocaya muracat.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#7
bu mesaj tarafımdan silinmiştir.

Hattuşa

Alıntı yapılan: elektro77 - 16 Şubat 2020, 01:33:51Lm331 in datasheetine bakinca application circuits lerden biri frequance to voltage converter olarak calistirilmis. Bende tasarladigim devrenin optik sensor disinda tamamini burdan aldim zaten. Simulasyondada ayni sekilde calisti. Formulleri bile var.
Ancak yinede yazdiklarinizda haklisiniz.
Ama ben yazilim konusunda zayif ve kesmeleride hala cozememis biri olarak yine buldugum kaynaklardaki hazir kaynak kodlardan yararlanip yine ezbere iş  yapmis olacagim ve istedigim gibi olmasi icin yine ete hocamın başını agritacagim. Bunu yapmaktan cekiniyorum acikcasi. Capture kaynak kodlarini kullansam bile kod icinde nerelerde ekrana yazdirma yapmam gerektigi konusunda afallayacagim ve kullandigim ekran komutlarinin yarattigi gecikmeler yuzunden kesmeyi ve ayarlari bozacagim. Iste tam bu noktadan sonra ileriyi hesaplayamayip kilitlenecegim.sonra Ne mi olacak. ete hocaya muracat.

zorluklar mücade edilerek aşılır, kaçarak değil, bence bilmediğiniz bir konu olabilir bu gayet normal kaldı ki bilenler herşeyi zaten bilmiyor. derdiniz frekans okumak veya puls saydırmaksa bu sitenin arama kısmı var oraya T0CKI veya T1CKI yazsanız onlarca örnek çıkacak kolayınıza geleni de deneyeceksiniz. elbette ki takıldığınız yer olabilir, anlamadığınız yer olabilir bu sefer yardım alacaksınız.
şunu unutmayın yazılımı iyi bilenler dahi her işlemi ezbere bilmiyor. en azından ben öyleyim. nadir yaptığım uygulamalarda daha önceden yazdığım kodları alır kullanırım. bunun için her projenizi arşivlemeniz gerekir.
 

elektro77

Bir turda 1 puls veren bir mekanizmada deviri saymak için aşağıdaki devreyi ve yazılımı tasarladım.
Yazılımda devri saymak için "count" komutundan faydalandım.Henüz gerçekte denemedim. Acaba kararlı  çalışır mı  bakabilir misiniz?
Birde 1 turda 1 puls veren mekanizmamın puls +duty değeri yaklaşık %10 gibi bir değere denk geliyor.Bu durum simülasyonda sorun olmadı ama gerçekte  bir sorun olur mu?.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Olası en basit puls saydırma sistemi bu. Zaten komut bu amaçla yaratılmış.
Sorun olup olmayacağı sistemine bağlı. Ortam şartları (parazitler , mekanik sistem) müsaade ederse sorun olmaz. Denemeden anlayamazsın.

Ete

elektro77

bir turda 10 puls veren bir mekanizmada count komutu periyodunu 10 a mı bölmemiz gerekli. yani
count porta.0,100,PULSSAYISI mı olmalı?
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Count komutu senin belirleyeceğin sürede giriş pinine kaç puls geldiğini sayar.
Çok basit bir konu ama biraz detay vermekte yarar var sanırım.
Devir sayıları genelde devir/dakika olarak hesaplanır. Bunu yapmak için Count komutunu 1 sn lik peryotta çalıştırmak yeterli olacaktır. Böylece önce 1 sn de gelen puls sayısını sonrada onu 60 ile çarparak 1 dakikadaki puls sayısını bulmuş olursun.
Tur başına 1 puls üreten bir sistemin var ise sayılan puls adedi direk sana devir adedini verir.
Ama tur başına 10 puls üreten bir sistemin var ise her tur için 10 puls üretmiş olacaksın. O halde mantık doğrultusunda sayılan puls adedini 10 a bölerek beher devir için üretilen puls
adedini bulmuş olursun.

Ete

elektro77

#13
Alıntı yapılan: ete - 20 Şubat 2020, 11:56:00Count komutu senin belirleyeceğin sürede giriş pinine kaç puls geldiğini sayar.
Çok basit bir konu ama biraz detay vermekte yarar var sanırım.
Devir sayıları genelde devir/dakika olarak hesaplanır. Bunu yapmak için Count komutunu 1 sn lik peryotta çalıştırmak yeterli olacaktır. Böylece önce 1 sn de gelen puls sayısını sonrada onu 60 ile çarparak 1 dakikadaki puls sayısını bulmuş olursun.
Tur başına 1 puls üreten bir sistemin var ise sayılan puls adedi direk sana devir adedini verir.
Ama tur başına 10 puls üreten bir sistemin var ise her tur için 10 puls üretmiş olacaksın. O halde mantık doğrultusunda sayılan puls adedini 10 a bölerek beher devir için üretilen puls
adedini bulmuş olursun.

Ete
Hocam sonucu 10 a bölme durumunda,
büyük ihtimalle  word değerini aşmış olacaktır. Bu durumda yanlış sonuç almamzmıyız? benim dediğim gibi çalışmazmı.Yani aşağıdaki şekilde.
BASLA:
count porta.0,100,PULSSAYISI

DEVIR_DAKIKA=PULSSAYISI*60                           
                           
lcdout $fe,1
lcdout $fe,2
lcdout,        "rpm/sn:",# PULSSAYISI
lcdout $fe,$c0,"rpm/dk:",# DEVIR_DAKIKA
 

goto BASLA

end
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

pardon hocam.
bir turda 10 puls veren sistemin Word değerini aşması için saniyede 6600 devir dönmeliki aşsın değilmi. bu hızda dönen bir mekanizna değil ki zaten. Özür dilerim.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Powered by EzPortal