Arduino Analog In için Ölçek Gerilimi, Gerilim Bölücülerin Ötesinde


16

Son zamanlarda bazı fiber optik viraj sensörleri inşa ettim ve onlardan aldığım değerleri bir Arduino aracılığıyla bir bilgisayara okumak istiyorum. Ben ışığı ölçüyorum bu fotodiyot gelen Sanayi Fiber Optics . Şu anda, diğer tarafta LED'i ve fotodiyot 2.2V'yi veriyorum. Sorum, fotodiyot üzerinde bir çok metre ile ölçülen voltaj dalgalanmalarının doğrusal olduğu, ancak lifin deforme olduğu, oldukça radikal olsa bile oldukça küçük olduğu gerçeğiyle ilgilidir. Fiber düz olduğunda, fibere bağlı olarak (aynı şekilde puan vermek zordur), voltaj, örneğin 1.92V civarında kayar ve bükülmesiyle, 1.93-1.94V'a kadar çıkacaktır. Yazılımda ölçeklendirebildiğim için voltajları aynı hale getirmekten endişe etmiyorum.

Endişelendiğim şey, Arduino ile A / D yaparken çözünürlüğü kaybetmektir. Voltaj dalgalanmalarım 10mV düzeyindeyse, Arduino'nun 10-bit A / D voltajı bir voltaj bölücü ile 5V'a kadar artırsam bile cehennemden nicel olarak ölçülmez mi? Aradığım şey analog bir ölçekleyici. Arduino A / D'nin tüm aralığından yararlanabilmem için, 092 ila 5V arasındaki tüm aralığı kapsayacak şekilde 1.92 ve 1.94 arasındaki aralığı nasıl uzatabilirim?

Bunun elektronikte ortak bir operasyon olması gerektiğini hissediyorum, ancak resmi olarak hiç çalışmadım, bu yüzden üzerimde birçok şey kayboldu.

(Davr olduğu gibi, "neden bükülme algılaması için fiber optik kullanıyorsunuz? Fiber büküldüğünde neden bir voltaj değişikliği olmasını beklersiniz?" Diye düşünüyor olabilirsiniz. Bu, ışığın dökülmesine izin verir. Kablo çentiklerden uzağa büküldüğünde, kablodan daha da fazla ışık çıkmasına neden olur ve alıcıda voltaj düşüşüne neden olur.)


Alıcınızın şemasını gösterecek kadar nazik misiniz? 1,9 V ön gerilim sağlıyor musunuz?
Endolit

Alıcının kendisinin şemasını kastediyorsanız, yukarıdaki veri sayfasına bağladım. İşte yine: i-fiberoptics.com/pdf/IFD91.pdf Nasıl bağlandığımı kastediyorsanız, fotoğrafta görebilirsiniz. Alıcı siyah. Kırmızı telden alıcının yan tarafına turuncu nokta ile 2.2V (fotoğrafta bir li-ion pil) veriyorum ve direnç boyunca toprağa giden direnci ölçüyorum diğer taraf.
teras

Yanıtlar:


11

Eğer doğru anlarsam, 1.9V sinyalin üzerinde 10 mV'luk bir varyasyonu "okumak" istersiniz?

Eğer durum buysa, iki ayrı aşama öneririm. Birincisi bir fotodiyot amplifikatör olacaktır (sayfa 9, devrelerin en standardıdır). Bu, fotodiyotunuzdan akımın voltaja çevrilmesine yardımcı olacaktır.

İkinci aşama, Texas Instruments'tan INA ailesi gibi bir enstrümantasyon amplifikatörü olacaktır (en iyisi de pahalı olabilir). Bu, bu durumda 1,9 V olan "ortak mod" sinyalinizi kaldırmanıza yardımcı olacaktır. sinyalinizi gerekli 5 V'a kadar.

Mükemmel olacağını söylemiyorum, ama bence bu iyi bir başlangıç.

Son bir not olarak, David'in yukarıdaki kelepçeler hakkındaki fikrini seviyorum, ancak bunlar A / D dönüştürücüsünde bazı ölçüm hatalarına neden olabilir. Daha da önemli olan, eğer onu sallayabilirseniz, 741'den daha iyi bir op amp deneyin. Bunlar yaygındır, ancak özellikler korkunçtur. Giriş terminallerindeki 3 veya 4 mV ofset voltajı, ölçmeye çalıştığınız gibi gerçekten küçük bir sinyali bozabilir.

~ Chris Gammell


1
Enstrümantasyon amplifikatörüne ihtiyacınız yoktur. Basit bir fark amplifikatörü yapar. Bununla birlikte, referans olarak kullanmak için sabit bir 1,9 V besleme gerekir. Sanırım devrede zaten böyle bir şey sensörün sapması olarak var. Bir şemaya sahip olmak yardımcı olacaktır. Ayrıca, önyargıyı çıkardıktan sonra, ADC'nin 0 ve 5 V aralığı arasına almak için başka bir önyargı eklemeniz gerekir.
endolith

1
İhtiyacınız olmadığını kabul ediyorum, ama bu iyi bir fikir. Bir enstrümantasyon amplifikatörü, önündeki tamponlarla sadece bir fark amplifikatörüdür (bazen kazanç için eklenen dirençlerle). Sadece bir fark amplifikatörü kullanıyorsanız, fark amplifikatörünüzdeki dirençlerin merhametindesiniz; bazen 1K kadar düşük. Bir şeyi ölçmeye çalışıyorsa, bu yüksek empedans (bir iAmp'ın tamponlarından) gerçekten yardımcı olabilir (yani ölçüm cihazına akım akışı olmaz).
Chris Gammell

12

Bu anlamda sinyal koşullandırma son derece yaygındır. Arduino'nun tüm 0-5V aralığını (örneğin) 10mV aralığını (örneğin) yapmak için bir amplifikatör kullanmak istiyorsunuz. Bu, LM741 gibi op-amp'ler kullanılarak yapılabilir. Muhtemelen değerin 5V'yi aşmadığından emin olmak için sinyal düzenleyicinizin / ADC'ye girişinizin çıkışında bir "gerilim kelepçesi" (ör: iki zener diyot) kullanmak isteyeceksiniz. Çevrimiçi olarak op-amp veri sayfalarına ve / veya sinyal koşullandırma devrelerine bakarsanız, tam olarak aradığınızı gösteren kılavuzlar bulmalısınız.


4

Sensör çıkışı "+" girişine ve DAC "-" girişine gidiyorsa, diferansiyel PGA (programlanabilir kazanç amplifikatörü) ve DAC kombinasyonuna bakmanızı öneririz. (Veya size eşdeğer işlevsellik kazandıran entegre bir şey.) Temel olarak, düşük kazançlı sinyale bakın, ofsetinin ne olduğunu anlayın, bu voltajı DAC'a koyun ve kazancı artırın.

TI'nin PGA308'i hoş bir çözüm olabilir gibi görünüyor.

Daha ucuz bir çözüm istiyorsanız, sabit kazançlı bir diferansiyel amplifikatör (standart 4-direnç + op-amp yapardı) + kararlı, sessiz bir 8-bit DAC (doğruluktan daha önemli olan kararlılık / gürültü özellikleri) kullanın. dif ampere "+" girişindeki sensör çıkışı ve "-" girişindeki DAC çıkışı.

Okuyucu için egzersiz: DAC ile bir ikili arama tekniği kullanarak ve kazancın G1 = tam ölçekli ADC giriş voltajından daha büyük olmadığından emin olarak dif-amp çıkışını doygunluğun dışına ve doğrusal bir aralığa getirebileceğinizi gösterin, DAC'nin nominal adım büyüklüğü ve DNL (diferansiyel doğrusalsızlık) toplamına bölünür. Muhtemelen daha küçük (G1 / 2) ve G2'yi kullanacağım, burada G2 = tam ölçekli ADC giriş voltajı, önemsediğiniz sensör çıkış voltajı aralığına bölünür.


Şu anda benim için çok iddialı zaman kısıtlamaları verildi, ancak öneri için teşekkürler. Gelecekteki prototipler için analog sinyal koşullandırmasına daha fazla dalmaktan heyecan duyuyorum.
teras

Neden bir DAC'a ihtiyacınız var? Sadece onunla bir DC ofseti mi üretiyorsun? Bu oldukça abartılı görünüyor.
endolith

Evet. DAC, DC ofsetini geniş bir aralıkta değiştirmek zorunda olduğu varsayımına dayanıyordu. Voltajı sadece dar bir aralığa yayılmış bir sisteminiz varsa (tolerans analizinizi doğru yaptığınızı varsayarsak), bir direnç bölücü ve bir referans bir ofset voltajı üretmek için yeterli olabilir. Ya da biraz daha karmaşıklık için, bir direnç ağı + çoklayıcılar (bazı DAC'lerin ne olduğu budur). Ultra yüksek hıza veya ultra ince çözünürlüğe ihtiyacınız yoksa, bir DAC gerçekten karmaşık veya pahalı bir cihaz değildir.
Jason S

3

Fiber optikleri bükme sensörü olarak kullanmak kötü bir seçim olabilir, fiber optiklerin asıl noktası, minimum kayıpla köşelerin etrafındaki ışığı kolayca bükmenize izin vermek için değil mi?


2
Evet, ancak ceketi şeritlerseniz ve bir tarafı jiletle hafifçe sıyırırsanız, lifleri büktüğünüzde geçen ışık miktarı değişecektir. Güzel bir özellik, iki yönlü bir sinyal almanızdır. Puanlamadan uzaklaşırsanız, daha az ışık geçer, ona doğru bükülürseniz daha fazla ışık geçer. Bunu elde etmek için iki geleneksel viraj sensörü kullanmanız gerekir. Ayrıca havalı görünüyorlar.
teras

2

İki şeye ihtiyacınız vardır: 1.9v standardıyla (veya ona yakın) karşılaştırmak için bir diferansiyel giriş ve bu farkın çözünürlüğünü artırmak için bir amplifikatör kullanmak.

En iyi sonuçlar için harici yüksek kaliteli enstrümantasyon amplifikatörleri veya op amplifikatörleri kullanmalısınız. Ancak mikrodenetleyicide yerleşik tesisleri kullanmayı deneyebilirsiniz. Arduino Mega (ATMega2560 yongası) ve Arduino Leonardo'nun ikisi de çip üzerindeki ADC'ye diferansiyel, amplifiye girişler için seçenek içerir. (Uno'da buna sahip değil). Bir ATMega2560, çoklu sensörler için çoklu kanallar (çoğullanmış) amplifiye diferansiyel ADC yapabilir - hangi pin kombinasyonlarının mümkün olduğunu görmek için veri sayfasını okuyun. Tam 1024 adım çözünürlüğünü 25 mv'ye yerleştirecek 200x amplifikasyon seçeneğine sahiptir. Bu 25 mV penceresini ihtiyacınız olan yere yerleştirmeniz yeterli!

Bu, amaçlarınız için yeterince gürültüsüz olabilir veya olmayabilir - harici olarak daha fazla $$ için inşa edebileceğiniz kadar yüksek kalite değildir.

Daha zor olan kısım, karşılaştırmak için kararlı ve doğru bir 1.9v referans alıyor olabilir.


Bunu söylemek için buraya geldim. 1!
Nick Johnson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.