Bir analogu dijital dönüştürücüye (ADC) nasıl bağlayabilirim?


22

Rasbperry Pi'deki ADC seçeneklerine bakıyorum. Şu ana kadar neyin mümkün olduğunu merak ediyorum. Tabii ki kolay ve ucuz iyidir.


Bunun için neye ihtiyacın var?
Jivings

@Jivings, nispeten düşük örnekleme oranları ile yapılabilecek birkaç proje düşünüyorum.
John La Rooy,

Yanıtlar:


15

Adafruit , MCP3008 ($ 3.75) - 8 Kanallı 10-Bit ADC ile bir MP3 dosyasının ses seviyesini kontrol etmek için SPI Arayüzünü kullanma konusunda güzel bir öğreticiye sahip , ancak herhangi bir analog dijital projeye iyi bir başlangıç ​​noktası vermeli.


1
Hem Arduino hem de PICAXE burada yanlış çözümlerdir.
Alex Chamberlain,

Arduino'nun burada yanlış bir çözüm olduğuna katılmıyorum. MCP3008 SPI kullanırken Arduino USB kullanıyor. Arduino'nun tamamı montaja hazır ve kutudan çıkarılmaya hazır, MCP3008 bazı aksesuarlara ihtiyaç duyacak ve çalışmaya devam edecek. MCP3008 daha ucuzdur, ancak ihtiyacınız olan her şeyi eklediğiniz zaman (GPIO kırılır, breadboard monte edilir), maliyet farkı göründüğü kadar büyük değildir. Sonuç olarak, Arduino'yu denemek ve hızlı bir şekilde geri dönmek istiyorsanız, üstün bir seçenektir, ancak kalıcı bir kurulum arıyorsanız, MCP3008'in en iyi şekilde çalıştığını kabul ediyorum.
Dan B,

8

ADS1115

ADS1113, ADS1114 ve ADS1115 , ultra küçük, kurşunsuz QFN-10 paketinde veya bir MSOP-10 paketinde sunulan 16 bit çözünürlüğe sahip hassas analog-dijital dönüştürücülerdir (ADC'ler). ADS1113 / 4/5, hassasiyet, güç ve uygulama kolaylığı göz önünde bulundurularak tasarlanmıştır. ADS1113 / 4 / 5'de yerleşik referans ve osilatör bulunur. Veriler I²C uyumlu bir seri arayüz üzerinden aktarılır; dört I²C slave adresi seçilebilir. ADS1113 / 4/5, 2.0V ile 5.5V arasında değişen tek bir güç kaynağından çalışır.

Öncelikle I²C modüllerinin yüklendiğinden emin olmanız gerekir . Daha sonra ADS1115'i aşağıda gösterildiği gibi bağlayın. ADDR'ye bağlı olan pime bağlı olarak 4 farklı adres vardır. Bu, tek bir I²C veriyoluna toplam 16 kanal bağlayabileceğiniz anlamına gelir.

GND = 0x48, VDD = 0x49, SDA = 0x4A, SCL = 0X4B

görüntü tanımını buraya girin

Bunun gibi son dönüşümün sonucunu görebilirsiniz.

# i2cget -y 0 0x49 0 w
0x0000

Henüz hiçbir dönüşüm gerçekleştirilmediğinden, varsayılan olarak 0x0000 varsayılan değeri döndürülür. Şimdi config register'a bakalım

# i2cget -y 0 0x49 1 w
0x8385

İlk önce LSB, yani bu eşdeğerdir 0b1000010110000011

AIN0'da tek uçlu bir dönüşüm yapmak istiyorum, bu yüzden bit olarak yazmam gerekiyor [14:12] 0b100. yani0b1100010110000011

# i2cset -y 0 0x49 1 0xC385 w
# i2cget -y 0 0x49 0 w
0xa30b

İlk önce LSB, yani bu 2979 ondalık değerine eşittir.


1
pim boyutu / aralığı nedeniyle bu paket tipleri ile çalışmak biraz zor değil mi? Özellikle benim gibi artritli olanlar için (bu el beceriliğimi sınırlar.
Steve Robillard,

@SteveRobillard, evet onlar vardır çalışmak daha zor, ama onlar göründüklerinden daha kesinlikle daha kolay. MSOP için büyütme, akı, lehim fitili ve iyi bir lehimleme istasyonu elde edilmesine yardımcı olur. Konumlandırmadan memnun kalana kadar MSOP'un bir köşesini bir lehim ile çözmek için epeyce işlem yapabilirsiniz. Küçük boyut, devrede gürültüyü azaltmaya yardımcı olur, bu yüzden denemeye değer, şaşırmış olabilirsiniz.
John La Rooy

1

İstediğiniz kullanım süper yüksek bit oranları veya çözünürlük gerektirmediği sürece muhtemelen sadece bir Arduino kullanabilirsiniz. Arduinos güzel çünkü destek için çok büyük bir toplulukları var, bir süredir buralardalar ve USB üzerinden haberleşme GPIO yok!

İşte Raspberry Pi'den Python ile Arduino ile nasıl iletişim kuracağına dair talimatları içeren Simon Monk'un blog gönderisine bir link .

Ayrıca, daha önce hiç Arduino duymamış olmanız durumunda (belki de bir kayanın altında yaşıyorsunuz), Giriş sayfasına ve başlangıç ​​seviyesindeki analog girişlere bir örnek .


0

Bir Arduino kullanmaya benzer, ancak RPi UART'a bağlı bir PICAXE cihazına ne dersiniz? Bu daha küçük ve daha ucuz olurdu. Bana göre, Arduino gerçek gereksinimlerinize bağlı olarak en tepede görünüyor.


0

Bir ya da iki ay, ben wiringpi destek olan bir I2C PCF8591 tahtası almak olacak (nedeniyle Afrika'ya nakliye için) WiringPi sitesini ve (genellikle) yönetim kurulu kullandığı 3.3v ben amazon üzerinde WaveShare versiyonu var Amazon bağlantı 'I kadarıyla ve, PCF8591 oldukça hoş ama anakartın önümde olmasına kadar, iyi olup olmadığını söyleyemem.


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.