B

Rüzgar Ölçer

Başlatan Bülent, 13 Ağustos 2013, 17:31:51

Bülent

Yazın denizde teknesi ile gezdiğimiz bir abimize, direk tepesine monte edilmek üzere, aşağıda resmini gördüğünüz bir "Rüzgar Ölçer" yapmaya karar verdim.



Bunun için bir "dual voltmetre" ye ihtiyaç duyarak, internette bulduğum, Proton Basic kodları ile 12F675 kullanılarak yapılmış bir devreyi modifiye etmeye karar verdim. Alt kısımda dönen hızı ölçmek için mini bir dc motor yerleştirdim. Ancak mini dc motor, en fazla 100 mili Volt civarı bir gerilim üretiyor. Dolayısı ile ekte kodlarını verdiğim programda 1. Voltmetrenin ölçüm aralığını 0-99 mV olarak değiştirmek üzere yardıma ihtiyacım oldu.




Bülent

Proton Basic' te pek tecrübem olmadığı için aşağıdaki noktalarda takıldım.
1-Programda verilen " Declare Adin_Res 8" satırını, "Declare Adin_Res 10" yapabiliriz herhalde, böylece çözünürlük 1024 olur, 5 V/1024= yaklaşık 5 mV yapılabilir mi?
2-Dışarıdan bir ADC entegresi eklenip, 1 mV çözünürlük yakalanabilir mi ?
3-veya Vref=1 V dışarıdan verilebilir mi ?
4-Başka bir çözüm DC motordan alınan 0-99 mV sinyali, bir Op-Amp yardımıyla kuvvetlendirip, 12F675' e versek daha mı iyi olur ?
5-Birde Kodlarda verilen ölçüm hanelerini tanımlayan değişkenleri anlayamadım.

tempolc=ADIn 0
DelayMS 10

ascia=tempolc/100   
tempa=tempolc/10     
tempb=tempa/10       
tempc=tempb*10       
ascib=tempa-tempc   
tempa=tempa*10       
ascic=tempolc-tempa 

Burada 3 tane ölçüm hanesi tanımlanmış, 4. nasıl yazılır?

Not. Program bu hali ile 25 V' a kadar gayet normal çalışıyor.


ete

Alıntı Yap1-Programda verilen " Declare Adin_Res 8" satırını, "Declare Adin_Res 10" yapabiliriz herhalde, böylece çözünürlük 1024 olur, 5 V/1024= yaklaşık 5 mV yapılabilir mi?
ADC okuma işini 10 Bit üzerinden yapabilirsin. Sanırım verdiğin Declare satırı bu işi yapıyor. Böylelikle çözünürlüğün 10 bit olur. Birim ADC okuma başına 5000mv/1024 =4,88 mv luk bir çözünürlük elde etmiş olursun.

Elbette harici bir ADC entegresi kullanarak 16 bit ve üzeri çözünürlüklerde çalışman mümkündür.

Pic lerin ADC sistemi harici ref voltajı girişlerinede müsaade eder. Örneğin 1V ref girişi kullanırsan 1000/1024= 0,976 ma luk bir çözünürlük sağlarsın. Ancak çok stabil bir ref voltajı elde etmen gerekiyor. Bu işlem için kullanacağın işlemcinin Data sheet'ini incelemen gerekiyor. Genelde ADCON1 registeri bu işleri yapar. Register bitlerini incelemeni öneririm.

Motordan gelen DC sinyalin kuvvetlendirilmesi ile 0-99mv luk sinyali 0-5V değerine yükseltmen 4,88 mv luk çözünürlüğü (veya 0-1V değerine yükseltmende olabilir) 0,976 ma luk çözünürlük)

Hane meselesine gelince yapılan işlemler olayın bütününe bakmayınca bir anlam vermek zor gerçekten. Orjinal tanımlama ile sistem 8 bit ADC okuduğuna göre okunan maksimum değer 255 olacaktır. O halde işlemleri yapalım bakalım neler oluyor.
ascia=255/100=2
tempa=255/10=25     
tempb=tempa/10 =2     
tempc=tempb*10 =20     
ascib=tempa-tempc=2-20=-18 (ınteger matematiğine göre bu değer 238 olarak hesaplanır   
tempa=tempa*10 =25*10=250     
ascic=tempolc-tempa=255-250=5
Bütün bunlar ne anlama geliyor pek anlamadım. Bu hesaplanan değerlerin ölçüm hanesi ile ne bağlantısı var onuda anlamadım.
Normalde Basic de  TEMPOLC DIG 0 birler hanesinin değerini verir. TEMPOLC DIG 1 onlar hanesini, TEMPOLC DIG 2 Yüzler hanesini verir. İstediğin nedir. Dördüncü haneden neyi kast ediyorsun. Elbette 10 bit okuma yapınca otomatikman dördüncü hane devreye girecektir zaten.

Ete
                               

Bülent

Erol Hocam tşkler. Bu ADC konusunu tekrar baştan sona üzerinden geçip çalışmaya karar verip ve sizin 5. Dersten başladım.
Bu dersin ekinde verdiğiniz;
1-ADC.BAS dosyasını derleyemiyorum. Bol miktarda "Undefined Symbol 'ADCON', 'GO_DON', 'ADRESH', 'ADRESL', 'trisc' gibi hatalar veriyor.
2-Ayrıca, verdiğiniz ADC.hex dosyasını, Proteusta 877' ye yükleyip, RV1 ile oynadığımda, LCD ekranda ;

HAM=209     VOLT=0,1
HAM=313     VOLT=25,3
HAM=417     VOLT=24,9
HAM=939     VOLT=23,7
HAM=1023   VOLT=13,6

gibi değerler okunuyor.

ete

Derleme yaparken, ekranın üst tarafında yer alan pic numarası ne gözüküyor. Belliki adc si olan bir pic olmak zorunda. Derslerde bu muhtemelen 16f877 seçilmiş olsa gerek. Sende farklı bir işlemci gözüküyor ise bu hatalr ortaya çıkar. Orada 16F877 seçili olmasını sağla ve yeniden derle.

Ekranda gördüğün ham değer okunan voltajın ham adc karşılığıdır. Pot değerine bağlı olrak 0-1023 arasında değer alır. Bu 10 bitlik adc okumaya karşılık gelmektedir. Volt değeri ise okunan adc değerinin voltaja dönüştürülmüş halidir.
Ete

Mucit23

Bence adc ile gelirim ölçme ile felan uğraşma.  Pek verimli olmaz. Bunun yerine pervaneye yüksek çözünürlüklü bir encoder bağla direk pervanenin hızını ölç. Daha net ve kesin bir sonuç alırsın ;)
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Bülent

@ETE : Hocam tşk.ler, derleme tamamdır. Ancak Proteus' ta  ki ekranda görünen değerleri hala anlayamadım, yani ders ekinde hazır verilen hex dosyasını 877' ye yükleyerek LCD ekranına çıkan aşağıdaki sonuçlar;

HAM=209     VOLT=0,1
HAM=313     VOLT=25,3
HAM=417     VOLT=24,9
HAM=939     VOLT=23,7
HAM=1023   VOLT=13,6

Ancak, bir deneme daha yaptım, pdf dosyası içinde anlatılan ders notlarında verilmiş kodları,  kopyalayıp ayrıca yeni bir *.bas dosyası oluşturdum ve derleyip *.hex dosyasını 877' ye yükledim sonuç aşağıdaki gibi oldukça normal göründü.

HAM=209     VOLT=1,0
HAM=313     VOLT=1,5
HAM=417     VOLT=2,0
HAM=939     VOLT=4,5
HAM=1023   VOLT=5,0

@Mucit : Gerilim ölçümü yolu ile rüzgar hızı değişiminin, mükemmel bir lineer grafik oluşturmayacağının ben de farkındayım. Ancak bu, yarısı elektronik+diğer yarısı mekanik bir proje. Encoder kullanıldığında bunun milinin küçük esintilerde dönmesi çok zor. Burada amaç; kolay, çabuk ve ucuz bir mekanik tasarım eşliğinde daha önce üzerinde ter dökülmüş ve çalışan bir dual LCD voltmetre yazılımını buna uyarlamak ve işi bitirmek. Diğer Voltmetre ise üste monte ediliyor, etrafında dönen rüzgar gülünden tetiklenerek problemsiz çalışıyor. Eğer yardımcı olmak istiyorsan ve Proton Basic' ten anlıyorsan yazılım içinde yer alan aşağıdaki kilit satırları değiştirerek 5 mV (5V/1023) adım ile,   0-100 mV aralıkta ölçümü gerçekleştirelim. (Elbette; "Declare Adin_Res 10" kullanarak)

tempolc=ADIn 0
DelayMS 10
ascia=tempolc/100   
tempa=tempolc/10     
tempb=tempa/10       
tempc=tempb*10       
ascib=tempa-tempc   
tempa=tempa*10       
ascic=tempolc-tempa 


Mucit23

Alıntı YapEncoder kullanıldığında bunun milinin küçük esintilerde dönmesi çok zor.

Aksine pervane motor veya dinamo gibi bağlantılar pervanenin dönmesini zorlaştıracaktır.  Encoder de pervane milinin dönmesini engelleyecek hicbir mekanik parça yoktur. İş yapacak bir rüzgar ölçer yapacaksan encoder kullanmalısın.

Proton konusunda yardımcı olamam maalesef. .
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Hattuşa

s.a.
protonda 0-100mV arası ölçüm kolay ama neden illa 0-100mV arası ölçüm?

Hattuşa

usta az önce 1 rar dosyasını indirdim, amacım bu akşam boş boş gezinmektense bir kişiye yardımcı olayım dedim. 0-100mV arası ölçümü direk PIC e okutmaktansa araya bir opamp ekleyerek ölçüm aralığını genişletelim diye düşündüm ve yeni bir şema oluşturup işlemciyide lcd sürebilecek, adc okuyabilecek 16f88 gibi basit bir işlemci olarak değiştirdim, kodu yazacaktım ama senin şemada ki RV3 potunu yani 360 derecelik yön bilgisini anlayamadım, o konuya açıklık getirirseniz basit bir kod yazıp buraya eklerim. amaç işin görülsün

F®T

yön ve hız için en uygun çözüm sadece encoder kullanmak.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

ekte yazmış olduğum basit kod ve şema mevcut, uygulama yapacaksanız hemen belirteyim. işlemci için 4Mhz kristal +22pF cond. leri eklemelisiniz, ayrıca lcd de 1. pin =+5v, 2. pin =gnd, 3. pin ede 10k trimpot (contras için) un orta ucunu bağlayacaksınız trimpotun bir kenar ucuna +5, diğer ucu GND ye bağlanmalı, ayrıca arka aydınlatma için lcd ye göre değişen (15-16 pinler) beslemelerini de eklemeyi unutmayın.
aklınıza takılan veya değişiklik gerekli olan yerleri buraya yazın bildiğim kadarıyla yardımcı olmaya çalışırız

Bülent

paylaşım için çok teşekkürler

estudio

Böyle bir uygulama yapmştın hız m/s yönde adc den ve seri portta bilgi gönderiyor işyerindeki pc de bulup göndereyim kolaygelsin

Powered by EzPortal