Ph Metre yazılım yardım

Başlatan elektro2009, 13 Kasım 2010, 20:53:29

elektro2009

#15
Yardım eden arkadaşlardan biri,yazılımda bir hata olduğunu ifade etti.
ds1820 yazılımında döngü olmadığını söylüyor.
Büyük bir ihtimalle yazılım baştan sona incelenip hataları düzeltmek gerekiyor.
Ben PIC basic biliyorum,
PIC Assembly bilmediğim için hataları düzeltemedim.
Yardımlar için çok teşekkürler.
Saygılarımla.

elektro2009

Sayın arkadaşlar LCD farklı bir devrede denedim çalışıyor,ayrıca
diğer iki LCD yi de tekrar tekrar denedim.
PH metre devresinde çalışmıyor başka devrelerde LCD ler çalışıyor.
PIC16f874  başka devrede çalışıyor,ph metrede çalışmıyor.
PIC16f874 yerine diğer PIC16F877A derlemesini değiştirip  kullandım
sonuç yine aynı ph metrede çalışmıyor başka devrede çalışıyor.
Büyük bir ihtimal yazılımda hata var.
En başından tekrar kontrol edilip yazılması gerekiyor.
Ben PICbasic biliyorum,
bu yüzden yazılımı kontrol edemiyorum.
Saygılarımla

neural

Yazılım İspanyolca olduğu için düzeltilmesi biraz sıkıntılı oluyor. Ancak benimde aklıma takıldı ve üzerinde biraz uğraştım. [1] adresinde devrenin simülasyon ve biraz düzeltilmiş hali bulunuyor. Ancak daha çok işi var, mesela yazılımda menü özelliği çalışmıyor. Bu işi yapan program modulleri verilen kodlar içerisinde yok.

Ayrıca simülasyonunu yaptığımda çok fazla stack overflow ( yığın taşması ) oluşuyor. Program yazılırken goto komutunun dallandığı yerler düşünülmemiş. O yüzden goto komutu ile dallandığı sırada farklı bir program bloğuna dallanıyor.

Programda mikrodenetleyicinin eeprom belleğinden çeşitli adreslerinde veriler okunuyor ve yazılıyor. Ancak sizin yollamış olduğunuz şematik çizimde 16F877 yerine 16F874 kullanılmış. 16F877 256 byte, 16F874 128 byte eeprom belleğe sahıp. Bu durum bayağı bir sıkıntı doğurdu. DS1820 sensörünü okumak için program bekliyor. Yani sisteme bir sıcaklık sensörü takılı olmadığında program kilitleniyor. Bu tip işler için bekleme yapmaya gerek yok, kesme kullanmak en iyisidir. İyi bir zamanlama ile program kilitlenmeden bir şeyleri beklemeden çalıştırılabilir.

Siz tam olarak ne yapmak istiyorsunuz? Elinizde şu an pH sensörü bulunuyor mu? Sıcaklığı ölçecek misiniz? Bunlardan farklı sensörler bağlayacak mısınız? Harici cihaz kontrolü için çıkışlarınız olacak mı? Bu sorular önemli, bu projeyi yapmak için pic basic kullanabilirsiniz. Siz yolladığım çalışmayı bir deneyin isterseniz. Gerekli yerler eklenir, çıkarılır.

Kolay gelsin. Sonuçlarını bekliyorum.

[1] http://hotfile.com/dl/84077549/cfae98a/Ph_Metre.zip.html

SpeedyX

@neural, Merhaba, kesme kullanarak ds1820 nasil okunur? Daha onceden bir calismaniz oldu mu acaba?

neural

Evet daha önce bir çalışmam oldu. Okul zamanlarında bitirme projemde kullandım. Birden fazla işlem vardı. Basit bir EKG cihazı projesiydi.  Grafik ekranın 1 saniyede taranması (ADC ve TMR2) , sıcaklık ölçümü (DS1820 ve TMR0), nabız ölçümü ( comparator ve TMR1 ), bütün işlemler kesme ile yapıldı. Ana program sadece sonsuz döngüydü.

DS1820 ile yaptığım işlem genel olarak sensörün sıcaklık dönüşümüne başlaması ve dönüşüm süresi için zamanlayıcı kesmesini kullanmak. 1 sn olacak şekilde tmr0 'ı ayarlanır. Program başında DS1820 sıcaklık dönüşümü başla komutu verilir. Kesme olduğunda DS1820 okunur. Kesme alt programından çıkarken bir kez daha sıcaklık dönüşüm başla komutu verilir. Bu sayede DS1820 boşu boşuna 750ms beklenmemiş olur.

SpeedyX

Yani kesme alt programinda one wire rutinlerini kullanarak olcumu baslattiniz ve ayni zamanda 750ms lik timer kurup sure sonunda olusan timer kesme alt programinda one wire rutinlerini kullanarak okumayi gerceklestirip, kesme programindan cikmadan bir sonraki islem icin tekrar start verip timer kurdunuz. Dogru mu?

neural

Evet doğrudur. Ayrıca DS1820 bilindiği üzere dönüşüm işlemi bitince hattı 1 'e çekiyor. Burdanda TMR0 kesme alt programına girdiğinde kontrol edilerek yine gereksiz bekleme yapılmamış olur.

SpeedyX

Tesekurler, konu disi muhabbeti uzatmak istemiyorum, full kesme kontrollu okuma yapildigini sanarak bunlari sormustum. Kesme alt programinda one wire protokolundeki beklemeleri yapmak pek hosuma gitmez, tercih meselesi. 750ms konusunda hemfikiriz.

elektro2009

#23
Sayın yasin ergene arkadaşım, yardımlarınız için çok teşekkürler.
Size çok zahmet
verdim kusura bakmayın.Değerli vaktinizi alıyorum.Eğer mümkünse
yazılımı baştan yazabilirmisiniz.

PIC16F877A kullanılırsa çok iyi olacak zannedersem.
Devremde Ph sensör bağlı, DS1820 bağlı,bağlantılarım doğru,LCD
sorunsuz,başka devrede çalışıyor.PIC ler sağlam,874 yerine derlemesini
değiştirip 877A kullandım,yine çalışmadı.PIC ler başka devrede çalışıyor.

Benim yapmak istediklerim.
1- Ph ölçümü yapmak.Tuş takımı ile istediğim değerleri girdiğimde, girilen
değerler arasında çalışsın, kurulan değerlerin dışına çıktığında
röleyi aktif etsin.
Ph Düşük ise röle 1 aktif 
Ph Yüksek ise röle 2 aktif
Kurulan değerler arasında röleler kapalı olsun

2- EC ölçümü yapmak.Tuş takımı ile istediğim değerleri girdiğimde, girilen
değerler arasında çalışsın, kurulan değerlerin dışına çıktığında
röleyi aktif etsin.
EC Düşük ise röle 3 aktif 
EC Yüksek ise röle 4 aktif
Kurulan değerler arasında röleler kapalı olsun
Biliyorum EC ölçümü devrede yok,eklenebilirse sevinirim.
EC ölçümü ile ilgili bilgiler bu adreste, yazılım örneği var.
http://blea.ch/wiki/index.php/PPM_Meter

Türkçesi :
http://translate.google.com.tr/translate?hl=tr&ie=UTF-8&sl=en&tl=tr&u=http://blea.ch/wiki/index.php/PPM_Meter%23Measuring_PPM.2FEC.2FTDS&prev=_t

3- Ph -  EC ölçümlerini RS232 ile PC ye 5 dakika arayla göndermek

Bundan sonraki maddeler olmasada olur.
4- Sıvı seviye ölçümü yapmak.Tuş takımı ile istediğim değerleri girdiğimde,
girilen değerler arasında çalışsın, kurulan değerlerin dışına çıktığında
röleyi aktif etsin.
Sıvı seviye Düşük ise röle 5 aktif 
Sıvı seviye Yüksek ise röle 6 aktif
Kurulan değerler arasında röleler kapalı olsun.


5- Sıcaklık ölçümü yapmak.Tuş takımı ile istediğim değerleri girdiğimde,
girilen değerler arasında çalışsın, kurulan değerlerin dışına çıktığında
röleyi aktif etsin.
Sıcaklık Düşük ise röle 7 aktif 
Sıcaklık Yüksek ise röle 8 aktif
Kurulan değerler arasında röleler kapalı olsun.

Saygılarımla.


RcALTIN

Alıntı yapılan: elektro2009 - 25 Kasım 2010, 00:55:50
Bu devrenin çalışan pIC olmadan yapılmış adresi
http://213.97.130.124/phm/phmeter.htm
Türkçe
http://translate.google.com.tr/translate?hl=tr&sl=es&tl=tr&u=http%3A%2F%2F213.97.130.124%2Fphm%2Fphmeter.htm%23introduccion

Ne diyeyim sizi çözemedim ben, yardımcı olmaya çalışıyoruz ama önerileri pek takmıyor, hatta kendi bildiğini okuyor gibisin... Bu arada hiçbir "hayır sever"in yukarıda özelliklerini verdiğin yazılımı yapıp önüne koyacağını sanmam, çünkü proteusta simule edemeyeceği için devreleri kurup denemeler yapması gerecek; kaldı ki ph, ısı, su seviyesi neyse de ec nasıl ölçülür deyip de bunun peşinden koşturup değerli günlerini kim ayırır size?
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !