İçindekiler:
- Aşama 1:
- Adım 2: Yapılandırma Kaydı
- 3. Adım: Veri Kaydı
- Adım 4: Tek uçlu ADC Modu
- Adım 5:
- Adım 6: Diferansiyel ADC Modu
Video: Arduino ve TI ADS1110 16-bit ADC: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu eğitimde, inanılmaz derecede küçük ama kullanışlı bir 16-bit analog-dijital dönüştürücü IC olan Texas Instruments ADS1110 ile çalışmak için Arduino'yu kullanmayı inceliyoruz.
2,7 ile 5,5 V arasında çalışabilir, bu nedenle Arduino Due ve diğer düşük voltajlı geliştirme kartları için de uygundur. Daha fazla devam etmeden önce, faydalı olacağı ve bu eğitim sırasında atıfta bulunulacağı için lütfen veri sayfasını (pdf) indirin. ADS1110, Arduino'nun 10-bit ADC'leri tarafından sunulandan daha doğru bir ADC seçeneği sunar ve kullanımı nispeten kolaydır. Ancak SOT23-6'da yalnızca çıplak parça olarak mevcuttur.
Aşama 1:
İyi haber şu ki, ADS1110'u çok uygun bir devre kartına monte edilmiş olarak sipariş edebilirsiniz. ADS1110, iletişim için I2C veri yolunu kullanır. Ve sadece altı pin olduğu için bus adresini ayarlayamazsınız - bunun yerine, her biri kendi adresine sahip altı ADS1110 varyantı arasından seçim yapabilirsiniz (veri sayfasının ikinci sayfasına bakın).
Yukarıdaki fotoğrafta da görebileceğiniz gibi, bizimki 1001000 veya 0x48h otobüs adresine uyan “EDO” olarak işaretlenmiştir. Ve örnek devrelerde I2C veriyolunda 10kΩ pull-up dirençleri kullandık.
ADS1110'u tek uçlu veya diferansiyel ADC olarak kullanabilirsiniz - Ama önce çeşitli öznitelikleri kontrol etmek için kullanılan konfigürasyon kaydını ve veri kaydını incelememiz gerekiyor.
Adım 2: Yapılandırma Kaydı
Veri sayfasının on birinci sayfasına dönün. Yapılandırma kaydı bir bayt boyutundadır ve ADS1110 bir güç döngüsünde sıfırlandığından, ihtiyaçlarınız varsayılanlardan farklıysa kaydı sıfırlamanız gerekir. Veri sayfası oldukça düzgün bir şekilde açıklıyor… bit 0 ve 1, PGA (programlanabilir kazanç amplifikatörü) için kazanç ayarını belirler.
Sadece voltajları ölçüyor veya deney yapıyorsanız, 1V/V kazanç için bunları sıfır olarak bırakın. Ardından, ADS1110 için veri hızı bit 2 ve 3 ile kontrol edilir. Sürekli örnekleme açıksa, bu, ADC tarafından saniyede alınan örnek sayısını belirler.
Arduino Uno ile yapılan bazı deneylerden sonra, en hızlı hızı kullanırken ADC'den döndürülen değerlerin biraz kapalı olduğunu gördük, bu nedenle aksi gerekmedikçe 15 SPS olarak bırakın. Bit 4, sürekli örnekleme (0) veya bir kerelik örnekleme (1) ayarlar. Bit 5 ve 6'yı yoksayın, ancak bunlar her zaman 0 olarak ayarlanır.
Son olarak bit 7 – tek seferlik örnekleme modundaysanız, 1 olarak ayarlamak bir örnek ister – ve onu okumak, döndürülen verilerin yeni (0) veya eski (1) olup olmadığını size söyleyecektir. Ölçülen değerin yeni bir değer olup olmadığını kontrol edebilirsiniz – veriden sonra gelen konfigürasyon baytının ilk biti 0 ise, bu yenidir. 1 döndürürse, ADC dönüşümü bitmemiştir.
3. Adım: Veri Kaydı
ADS1110 16 bitlik bir ADC olduğundan, verileri iki bayt üzerinden döndürür ve ardından yapılandırma kaydının değeriyle devam eder. Yani üç bayt talep ederseniz, tüm parti geri gelir. Veriler, ikili ile imzalı sayıları kullanma yöntemi olan “ikinin tümleyeni” biçimindedir.
Bu iki baytı dönüştürmek bazı basit matematik işlemleriyle yapılır. 15 SPS'de örnekleme yapılırken, ADS1110 tarafından döndürülen değer (voltaj değil) -32768 ile 32767 arasında düşer. Değerin yüksek baytı 256 ile çarpılır, ardından daha düşük bayta eklenir - bu daha sonra 2.048 ile çarpılır ve son olarak 32768'e bölünür. Panik yapmayın, bunu bir sonraki örnek çizimde yapıyoruz.
Adım 4: Tek uçlu ADC Modu
Bu modda, sıfır ile 2.048 V arasında düşen bir voltajı okuyabilirsiniz (bu, ADS1110 için dahili referans voltajıdır). Örnek devre basittir (veri sayfasından).
I2C veriyolundaki 10kΩ pull-up dirençlerini unutmayın. Aşağıdaki çizim, varsayılan modda ADS1110'u kullanır ve basitçe ölçülen voltajı döndürür:
// Örnek 53.1 - ADS1110 tek taraflı voltmetre (0~2.048VDC) #include "Wire.h" #define ads1110 0x48 kayan voltaj, veri; bayt yüksek bayt, düşük bayt, configRegister; geçersiz kurulum() { Serial.begin(9600); Wire.begin(); } void loop() { Wire.requestFrom(ads1110, 3); while(Wire.available()) // tüm verilerin { highbyte = Wire.read(); // yüksek bayt * B11111111 lowbyte = Wire.read(); // düşük bayt configRegister = Wire.read(); }
veri = yüksek bayt * 256;
veri = veri + düşük bayt; Serial.print("Veri >> "); Seri.println(veri, Aralık); Serial.print("Voltaj >> "); voltaj = veri * 2.048; voltaj = voltaj / 32768.0; Serial.print(voltaj, DEC); Serial.println("V"); gecikme(1000); }
Adım 5:
Yüklendikten sonra, seri monitörü ölçmek ve açmak için sinyali bağlayın - bu adımda gösterilen seri monitör görüntüsüne benzer bir şeyle karşılaşacaksınız.
ADC'nin dahili programlanabilir kazanç yükselticisinin kazancını değiştirmeniz gerekirse, aşağıdakileri kullanarak yapılandırma kaydına yeni bir bayt yazmanız gerekir:
Wire.beginTransmission(ads1110);Wire.write(yapılandırma baytı); Wire.endTransmission();
ADC verilerini istemeden önce. Bu, sırasıyla 2, 4 ve 8 kazanç değerleri için 0x8D, 0x8E veya 0x8F olacaktır - ve ADS1110'u varsayılana sıfırlamak için 0x8C kullanın.
Adım 6: Diferansiyel ADC Modu
Bu modda, her biri sıfır ile 5 V arasında olan iki voltaj arasındaki farkı okuyabilirsiniz. Örnek devre basittir (veri sayfasından).
Burada (ve veri sayfasında) ADS1110'un girişlerden herhangi birinde negatif voltaj kabul edemeyeceğini belirtmeliyiz. Aynı sonuçlar için önceki taslağı kullanabilirsiniz - ve ortaya çıkan voltaj, Vin+'dan çıkarılan Vin- değeri olacaktır. Örneğin, Vin+'da 2 V ve Vin-'de 1 V olsaydı, elde edilen voltaj 1 V olurdu (kazanç 1'e ayarlanmış olarak).
Bir kez daha umarız bunu ilginizi çekmiş ve muhtemelen faydalı bulmuşsunuzdur. Bu gönderi size pmdway.com tarafından getirildi - dünya çapında ücretsiz teslimat ile üreticiler ve elektronik meraklıları için her şey.
Önerilen:
ADC Current Sense Nasıl Yapılır: 5 Adım
ADC Akım Anlamı Nasıl Yapılır: Bu Eğitilebilir Tabloda, SLG46855V'de yük akımını algılayabilen ve I2C aracılığıyla bir MCU ile arayüz oluşturabilen 8 bitlik bir analogdan dijitale dönüştürücünün (ADC) nasıl uygulanacağını açıklayacağız. Bu tasarım, çeşitli akım algılama uygulamaları için kullanılabilir, örneğin
ADC #Arduino Değerlerini Görüntülemek için 7 Segment, #Arduino: 4 Adım
7-Segment ADC #Arduino Değerlerini Görüntülemek için, #Arduino: Bu yazımda yine bir önceki yazı ile alakalı olan bir proje yapacağım. Yani ADC verileri işleniyor. Böylece adc verilerinin değerini görmek için bir seri monitöre ihtiyacınız yok. Bu yazıda bir ADC Değer görüntüleyici ekranı yapacağım. yani yapmıyorsun
Potansiyometrelerden ADC Değerlerini Okuyun: 4 Adım
Potansiyometrelerden ADC Değerlerini Okuyun: Bu yazımda size potansiyometreden ADC değerlerinin nasıl okunacağını göstereceğim.Arduino programlamanın temeli budur. Arduino tarafından sağlanan Analog pini kullanarak analog değerleri okuyor. Potansiyoyu kullanmanın yanı sıra, birkaç sensör var
Arduino ve PCF8591 ADC DAC IC: 7 Adım
Arduino ve PCF8591 ADC DAC IC: Arduino projenizde daha fazla analog giriş pini istediniz, ancak bir Mega için ayrılmak istemediniz mi? Yoksa analog sinyaller mi üretmek istiyorsunuz? Ardından eğitimimizin konusuna göz atın – NXP PCF8591 IC. Bu iki sorunu da çözüyor
Flyback Transformer veya Hoparlörde ADC - PWM Kullanarak Arduino İle Şarkı Çalın: 4 Adım
Flyback Transformer veya Hoparlörde ADC to PWM Kullanarak Arduino İle Şarkı Çalın: Merhaba Arkadaşlar, Bu benim başka bir talimatımın ikinci kısmı (bu çok zordu), Temel olarak, Bu Projede, Arduino'mdaki ADC ve ZAMANLAYICILARI kullandım. Ses Sinyalini bir PWM Sinyaline dönüştürün. Bu, önceki Talimatlarımdan çok daha kolay