slm arkadaslar daha once adc ile loadcelll okuyan deneyimli biri varmı.adc 7730 ve bir program var onu cozmeye calısıyorum az kaldı cozucemde bazen takılıyorum birilerine danısmam gerekiyor.YARDIM EDECEK VARMI ACEP RECEP yada herkes susacakmı.belki yerdım eden cıkar :( :( :( :( :( :( :(
Düzeltme: Mesaj içeriği bu bölüme daha uygun olduğu için başlık taşınmıştır. Düzenleyen Prof.EleCTroN
derdini söylemezsen kimse yardım etmez.
cenkishan
Söylediğim gibi özelden yazmana gerek yok, arkadaşımız derdini açık söyle demiş ama konuyu burada daha da açmak yerine özelden devam ettiriyorsun.
bukadar msj trafiginin ardından işallah cozumu buluruz.arkadaslar ad7730 ile terazi programi(asm)ile yazmaya basladım.gerekli olan baglantıları yaptım.CLK unu referansını voltajlarını örnek bir adc baglantısına gore bagladım.ŞİMDİ elimdeki programda ilk önce adcye yazılmıs
MOVWF BUFF
MOVLW 08H
MOVWF BIRL
ADC_WR_LP
RLF BUFF,1
BTFSC STATUS,C
BSF PORTA,ADC_DIN
BTFSS STATUS,C
BCF PORTA,ADC_DIN
BSF PORTA,ADC_CLK
BCF PORTA,ADC_CLK
DECFSZ BIRL,1
GOTO ADC_WR_LP
; CLRWDT
RETURN
SONRA
ADC_RD
CLRF BUFF
MOVLW 08H
MOVWF BIRL
ADC_RD_LP
BSF PORTA,ADC_CLK
BTFSC PORTA,ADC_DOU
BSF STATUS,C
BTFSS PORTA,ADC_DOU
BCF STATUS,C
RLF BUFF,1
BCF PORTA,ADC_CLK
DECFSZ BIRL,1
GOTO ADC_RD_LP
; CLRWDT
RETURN
ADC okunmus sonra hassalık ayarı var sonrada goruntuleme
benim sorum;ADC yi nasıl bir programla okurum bu program 2000 satır kod cat pat birseyler anladım.birisi ornek program veya mantıgını adam akıllı anlatsa işi çözerim.bilmem bu sefer anlatabildimmi.daha once hiç adc okumadım anladıgım kadarıyla ref voltajı ile sürekli degisen voltajı karsılastırıyosun(loadcell oldugu için)ve büyükmü küçükmü mantıgı var.ve adc okudugu degeri pic degisen reg registerlerine atıyor. su bilgileri toparlayıp anlatcak biri lazım. :?: :?: :?:
Burası yardımlaşma grubu..
Piyasadaki projelere zorunlu danışmanlık yapan bir yer değil @cenkishan..
Kimse size yardım etmeye de mecbur değil..
Üslubumuza özen gösterelim..
Gelelim sorunuzla alakalı bilmeniz gerekenlere..
Nedir bu ADC? Bu başlıktan başlayın öğrenmeye..
https://www.picproje.org/index.php/topic,11983
https://www.picproje.org/main/modules.php?name=Forums&file=search
Buraya adc yazarak aratın.. Karşınıza gelecek olan 441 sonuç tüm dertlerinize derman olacaktır..
Bir öneri..
Öncelikle pic in adc pinleriyle çalışmaya başlayın.. ADC kavramını anladıktan sonra 24-Bit lik Delta Sigma ADC lere geçisi yapabilirsiniz.. Okuma aynı değil tabiki birinde direk analog değer okuyacaksınız diğerinde SPI dan bilgi alacaksınız..
http://www.piclist.com/techref/microchip/spi-ad7730-tk.htm
Ama öncelikle ADC nedir ne değildir bir bakın..
İyi Çalışmalar..
slm sevgili OG
;Burası yardımlaşma grubu..
Piyasadaki projelere zorunlu danışmanlık yapan bir yer değil @cenkishan..
Kimse size yardım etmeye de mecbur değil..
Üslubumuza özen gösterelim.;
demişsin bu bir Piyasadaki proje değil sadece kendi merakım..ogrenmek istedigim için arastırıyorum benim hiç oyle bir niyetim olmadı olmaz.ben baskasının yaptıgı seyi asla kopyalamam.kopyalarsam benim olmaz. sadece adc okuma için degisik mantıklar arastırıyorum.bu sitede herkes birbirine kardes gibi davrandıgı için biraz uslubum degismis olabilir.AFFOLA
yol gosterdigin için sagol.
Tabiki kardeşiz sadece üslubumuza dikkat edelim..
Verdiğim sadece bir örnekti..
Ana fikir üslup.. Ne demişler tatlı dil yılanı deliğinden çıkarır.
İyi Çalışmalar..
SLM arkadaslar ilk adc mesajımı yazalı uzun zaman oldu ve adc den binary sayilar okuyorum.AIN girişlerine hassas potlar taktım.(loadcell gibi düsünmek zorundayım.)şimdi registerler 8bit old gore(aslında 24bit adc oteki bitler cok geziyor ondan stabil olmuyor gezen bitleri okuyorum.)18 biti nasıl displayde gostericem.ve nasıl agırlık tartarım arkadaslar benim için zor kısım burası daha önce hiç adc okuyup kg tartmadım.benim takıldıgım yerde burasıydı aslında.YARDIM edebilecek varmı sadece nasıl yapıldıgını anlatın yeter bana.
Hassas ölçümlerde bilmen gereken..;
Wheatstone Köprüsü : Wheatstone köprüsü bir direnç köprüsüdür. Genellikle yüksek hassasiyette direnç ölçümünün gerekli olduğu cihazlarda kullanılmaktadır.
(http://www.bilimfeneri.gen.tr/kitaplik/isik_hucreleri_files/image016.jpg)
Devrenin İki girişi ve iki de çıkışı vardır. Girişler iki paralel kol uçlarından
bağlanmaktadır. Çıkış ise paralel kolların ortasından alınmaktadır.
Tüm dirençler aynı değerde olursa her direncin üzerinde aynı gerilim düşümü olur.. Buda çıkışdaki pinlerde aynı gerilim düşümü demek olur ve potansiyel bir fark olmaz.. Bir akım akmaz. Buna köprünün dengelenmesi denir. Yada rezonans anı..
Eğer bu dirençleri belli bir oranda seçersek.. Bu orana göre ufak değişimler büyük gerilim değişimlerine sebeb olacaktır..
Hassas ölçüm yapacağın zaman şekilde de gördüğün gibi loadcell (Rg) i bağlayacaksın..
Mehaba,
PIC'in ADC si Loadceller için uygun cözünürlükte değil. bu işler için genellikle 24 bit ADC kullanılıyor. Hiçbir PIC de 24 bit ADC yok. O zaman ya harici bir ADC kullanmalısın yada 24 bit ADC ye sahib başka bir firmanın miroişlemcisine gecmelisin. Örneğin Texsas MPS430 işlemcisi gibi hem 16 bit mimariye hemde 24 bit ADC sahib, fiyatıda uygun.
Ayrıca gördüğüm kadarıyla sen Asemblerde kod yaziyorsun. ASM ile böyle bir program yazmakta cok zorlanırsın. Daha yüksek seviyeli bir dile gecmeni tavsye ederim. Örneğin C gibi.
Selamlar.
arslan74 ve ground size teşekkür ederim.bunca işinizin arasında birde bana yardım ediyosunuz.sagolun ama sorunumu pek anlatımıyorum herhalde.sizide sıkmak istemiyorum.
ground dedigi
loadcell iç yapısını en ince ayrıntısını ve opamplarla sinyali nasıl yukseltebilecegimi biliyorum.arslan74 dedigi adcmide secmiştim 24bit ad7730 datashetinede baktım zaten bu adc nin countlarını okuyorum.ŞİMDİ zurnanın zırt dedigi yer burası;
ben bu 10101111000..... gibi sayıyı nasıl dönüstürücem.registerler 8 bit.nasıl bir yol izlicem.ve nasıl kg tartar hale getircem asm de
beni zorlayan burası yapanlar nasıl yapıyor hocam mantık ne nasıl bir yol izleniyor.bana bu lazım.bu okunan binary sayılar nasıl işlenecek agırlık tartar hale gelecek.düsün düsün ara ara kafayı adc ile yicem.zaten insanın basına ne gelirse ya MERAKTAN yada BUMERANKTAN gelir.
eğer c ile yazıyorsan biraz anlatmaya çalışayım.
önce low, mid ve high byte olarak 3 sefetde aldığın sayıları tek bir sayı haline getirmeliyiz. bunun için long int tipinde bir değişkene ihtiyacımız var.
örn:
unsigned long int adrawvalue;
adrawvalue= (adhival*65536)+(admidval*256)+(adloval);
not: ( çarpma kullanmak istemez isen shift komutları ile yapabilirsin. ancak eğer çarptığımız değer 2 nin katları ise compiler zaten aynı kodu üretecektir)
şimdi elimizde işlenmemiş AD değeri var.
istersek ve ADC miz biraz hızlı ise
adfilteredval= (adfilteredval+adrawvalue)/2 veya
adfilteredval= adfilteredval*0.8 + adrawvalue*0.2
gibi fonksiyonlarla filtre edebiliriz.
bu aşamadan sonra ,öncelikle offset değerimizi bulmalıyız. Loadcell de hiç yük yokken ADC den okuduğumuz değer offset değeridir. daha sonra çarpan değerini bulmalıyız. Loadcell'i maximum yük ile yükleyip ADC den okuduğumuz değeri de biryere kaydettikten sonra çarpanımızı hesaplayabiliriz
örn max yükümüz 40Kg 40000gr.
çarpan=maxyük/(adcmaxval-adcoffset);
son olarak da filtre edilmiş ADC değerimizin kaç kilogram gösterdiğini hesaplayabiliriz.
kgvalue=(adfilterval-adoffset)*çarpan; gibi basitçe hesaplayabilirsin.
tabi buradaki değişkenler float olur ise daha doğru sonuçlar alırsın.
EYVALLAH klein kardesim sagol ama C dilinden cok az anlıyorum.İLGİNİZ için cok teşekkür ederim.daha yeni yeni ogreniyorum.(led yakıp sondurme gibi) bana assembler dilinde yazmam lazım ornegi olan yoksa bir kac hafta tırmalıcam gibi.yaptıgım zamanda foruma hemen koyucam.baslkası zorluk cekmesin diye.EYVALLAH kardesler sagolun.KLEİN kardes sen hangi C derleyiciyi kullanıyorsun.c18 saddece (18 ailesi için)studentmi.CCS mplab 7.40da sorunlar cıkıyo.hep hata hep hata varmı bunun sorunsuz sürümü.
Picproje de CCS ile ilgili birçok anlatım (anasayfa makaleler) ve program ile ilgilide birçok download bulabilirsin..
Picproje Arama
https://www.picproje.org/main/modules.php?name=Forums&file=search
Burada CCS le yapılmış bir kod örneği bulunuyor.
http://www.ccsinfo.com/forum/viewtopic.php?t=28801&highlight=ad7730
Böyle bir işi ASM ye bırakma :) Direk assemblera Delta sigma adc ile başladın sanırım ;)
İyi Çalışmalar.
Delta-sigma ADC demişken,AD7738 kullanan oldu mu acaba?
Yok galiba?