avatar_mustafa

12 bit adc

Başlatan mustafa, 30 Ağustos 2012, 23:52:22

mustafa

merhaba arkadaşlar ; yapmam gereken bir proje var . bu projeye göre loadcell den bir bilgiyi alıp ağırlığı ölçmem gerekiyor. Bu bağlamda gerekli olan hassasiyet değerine ulaşabilmem için 12 bit adc kullanmam gerekiyor.loadcell 2 tonluk ve 2mv/v çıkış veriyor. Ve ben bu loadcell i 5 v ile besleyeceğim için bana 2 ton da 10 mv , ağırlık yok iken ise 0 v verecek. 12 bit adc kullanacağım için devrenin hassasiyeti 500 gr civarında olacak ki bu da benim için yeterli bir değerdir. Ben de bu loadcell i okuyup ağırlığı okuyacağım ve gerektiğinde röle ile çıkış vereceğim. Devrenin bir kısmını tasarladım yazılım kısmına geçmedim ancak aklımda sorular var ve bu soruları çözmeden de devre tasarımını bitirip yazılım aşamasına geçemem. İnternette araştırma yaptım ancak harici adc kullanımı hakkında doğru düzgün bir kaynak bulamadım. Bu konuda sorularım şunlardır. Adc olarak mcp3201 , max 187 gibi entegreler düşünüyorum ki sizin kullanıp ta çalışmasını tecrübe ettiğiniz herhangi bir adc varsa eğer seve seve kullanmaya hazırım.Ekte şu ana kadar hazırladığım devreyi ve datasheet leri koyuyorum arkadaşlar.  Bu konuda aklımdaki sorular şunlardır.

1-) loadcell den elde edilen gerilimi harici adc entegresine girerken opamp kullanıp 0-5 v çıkış vermesi için yükseltmeli miyim  yoksa harici adc ler bu 0-10 mv gerilim değerini okuyup işlem yapabilirler mi ?

2-) harici adc den değer kullanırken shin komutunu kullanmalıyım.Buraya kadar tamam ama bu komut bana nasıl bir çıkış verir yani SHIn SDI, SCK, 4, [ veri.Byte1\8, veri.Byte0\8] komutu ile aynı formatta okuma yaparsam çıkışta veri değeri normal adc ler gibi mi olur , yani 12 bit adc için veri değişkeni 0-4096 arası bir değermi alır ? Yoksa adc hexedecimal olarak mı değer gönderir ?

3-) Örneğin mcp3201 için ki asıl sorunum burada nasıl bir shin komutu göndermeliyim . Datasheet i okudum ancak datasheet ten bu konu ile alakalı birşey anlamadım.

4-) adc okuma için kullanacağım pic in sck , scı çıkışlarını kullanıp define ile tanımlama mı yapmalıyım yoksa istediğim pin i kullanabilir miyim?

5-)  Proton veya picbasic pro  ile program yazıyorum dolayısı ile eğer elinizde örnekler var ise bu dilde yazılmış olursa sevinirim.

hepinize iyi geceler dilerim...





F®T

Eger opamp ile yukseltirsen ve cozunurlugu yuksek harici adc ile okursan guzel olur.tabi maliyet sorun degil ise.
Ornek kodlar nette bolca var arastirirsan bulursun.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

mustafa

teşekkür ederim ve gerçekten çok arastırdım yerli ve yabancı siteleri ancak kafamdaki sorulara cevap olabilecek nitelikte bir kaynak bulamadım malesef

mustafa

Yok mu arkadaşlar bi cevap verebilecek olan...

Maxim

bu loadcell in datasheeti varmıdır ?

Mucit23

#5
Loadcell dedikleri şey weston köprüsünden ibaret. Bilgisayarımda birtane kitapçık olacaktı. Akşama onu vereyim sana. İşine yarayacak bilgiler var..
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

mustafa

loadcell hakında bilgi sahibiyim ancak yeterince bilgi sahibi olmadığım konu bunu tam lineer olarak hangi opam pı kullanarak yükseltebilirim ve opamp cıkısını harici adc entegreye vererek nasıl okuma yapabilirim .Buralarda takılmış durumdayım... Cevap için ise teşekkür ederim

umitco

Bu konuda gerçekten çok az bilgi var, bende daha önce denemek istedim ama loadcell temin edemediğim için hiç başlamadım. Aşağıda vereceğim linkte Antrak sitesinde bir çalışma var , 2 opampla loadcell sinyalini yükseltmiş ve sinyali işlemcinin ADC si ile almış. Kalibrasyon içinde tuş takımı kullanmış. Sen önce sinyali yükselterek 10bit ADC ile sinyali kiloya çevirip (işlemci ile) , daha sonra çözünürlülüğü artırmak için 12 Bit  veya daha üstü ADC entegre kullansan nasıl olur ?

http://antrak.org.tr/index.php?option=com_content&task=view&id=605&Itemid=83

mustafa

benim de yapmak istediğim aslında antrag.org sitesindekine benzer ancak orada pic in içerisinde bulunan adc yi kullanmış.Çözünürlük 10 bit yani . Normal de bir çok proje için yeterli olan 10 bit çözünürlük bu proje için yetersiz kalıyor. Yani eğer 10 bit çözünürlük kullanırsam 2 kg , 12 bit de 500 gr , 16 bit de 30 gr , 24 bit de ise 1 gram ın altında bir hassasiyet elde edilebilir. Benim sistem için 500 gr yeterli olduğu için 12 bit adc kullanmam gerekli . örneğin mcp 3201 kullanmalıyım. Ancak bu entegrenin haberleşme protokolünü çözebilmiş değilim . Datasheet i inceledim ancak iletişim prosedürü ile alakalı pek bir şey anlamadım datashhet ten . İşte sorun da burda başlıyor. Opamp olarak da op77 kullanmayı düünüyorum . çünkü offset gerilimi 25 uv civarında.

ete

MCP3204 ile yapılmış bir proje örneğini vereyim. Bunu kullanabilirsin.

Ete

mustafa

Erol bey çok teşekkür ederim. Kullanım açısından çok yararlı bir örnek . Bunun yanında datasheet de de inceledim örneğe bakarak kullanımını datasheetten de öğreneyim diye ancak datasheet te ör: 25 gönderirsen ch1 cevap verir '6 gönderirsen ch2 cevap verir diye bir bilgi göremedim . Ama sonuç itibari ile çalışıyor.

F®T

sor 24 kanal 1 sor 25 kanal 2 sor 26 kanal 3 sor 27 kanal 4
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

mustafa

ferit teşekkür ederim ancak datasheet te böyle bir bilgi yer alıyormu?

Hattuşa

slm ete hocam;
elimde MCP3202 vardı bir devrede kullanmak istedim. hocam anlamadığım kısım adc kanallarının select bitleri, tarzanca bir yöntemle kanal seçimlerini yaptırdım.butonlara kanal seçim datalarını bağlayıp, giren voltaja göre çıkan adc değerini tutturma yöntemini kullandım. kısmen işim görüldü ama içim rahat değil, zira biliyorum ki ileride böylesi bir uygulamada sıkıntı çekeceğim. MCP3202 nin datasheetindeki kanal seçim kısmına ait resmi ekliyorum. bu seçimi yaparken nasıl yapmalıyız. bahsettiğim kod ektedir.


Main:
if enter =0 then SoRa =SoRa +1
If MeNu =0 Then  SoRa =SoRa -1
If uP =0 Then SoRb =SoRb +1
If DoWn =0 Then SoRb =SoRb -1

print at 1,1,dec sora
print at 2,1,dec sorb
print at 3,1,dec bilgia
print at 4,1,dec bilgib

sor =sora
gosub MCP3202
adc =bilgia
sor =sorb
gosub MCP3202
adc =bilgib
goto main

MCP3202:
Low Cs
SHOut dIn, cLk,MsbFirst, [sOr\5]
  DelayMS 2
SHIn dOuT,cLk,MsbPost,[AdC\13]
High Cs
Return


bu koda göre 1. adc kanalı =70 ,2. adc kanalı =71 çıktı doğrumdur hocam sizce;

ayrıca hocam datasheette veri okkunurken arada beklemek gerektiği belirtmekte, acaba bu süre min. ne kadar olmalı


Powered by EzPortal