Tartalomjegyzék:

Arduino és a TI ADS1110 16 bites ADC: 6 lépés
Arduino és a TI ADS1110 16 bites ADC: 6 lépés

Videó: Arduino és a TI ADS1110 16 bites ADC: 6 lépés

Videó: Arduino és a TI ADS1110 16 bites ADC: 6 lépés
Videó: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Július
Anonim
Az Arduino és a TI ADS1110 16 bites ADC
Az Arduino és a TI ADS1110 16 bites ADC

Ebben az oktatóanyagban megvizsgáljuk az Arduino használatát a Texas Instruments ADS1110 használatához-egy hihetetlenül apró, de hasznos 16 bites analóg-digitális átalakító IC-t.

2,7 és 5,5 V között tud működni, így az Arduino Due és más alacsony feszültségű fejlesztőlapok számára is megfelelő. Mielőtt tovább folytatná, kérjük, töltse le az adatlapot (pdf), mert hasznos lesz, és az oktatóanyagban hivatkozni fog rá. Az ADS1110 lehetővé teszi az Arduino 10 bites ADC-jeinél pontosabb ADC lehetőségét-és viszonylag könnyen használható. Ez azonban csak csupasz alkatrészként érhető el a SOT23-6-ban.

1. lépés:

Kép
Kép

A jó hír az, hogy megrendelheti az ADS1110 -et egy nagyon kényelmes törőlapra szerelve. Az ADS1110 az I2C buszt használja a kommunikációhoz. És mivel csak hat érintkező van, nem lehet beállítani a buszcímet - ehelyett az ADS1110 hat változata közül választhat - mindegyik saját címmel (lásd az adatlap második oldalát).

Amint az a fenti képen látható, a miénk „EDO” jelzéssel van ellátva, amely megfelel a 1001000 vagy 0x48h buszcímnek. A példaáramkörökkel 10 kΩ-os felhúzó ellenállásokat használtunk az I2C buszon.

Használhatja az ADS1110-t egyvégű vagy differenciális ADC-ként is-Először azonban meg kell vizsgálnunk a konfigurációs regisztert, amely a különböző attribútumok vezérlésére szolgál, és az adatregisztert.

2. lépés: Konfigurációs regiszter

Lapozzon az adatlap tizenegyedik oldalára. A konfigurációs regiszter mérete egy bájt, és mivel az ADS1110 újraindul egy bekapcsolási ciklus során-vissza kell állítania a regisztert, ha az igényei eltérnek az alapértelmezett értékektől. Az adatlap nagyon szépen leírja … a 0 és 1 bit határozza meg a PGA (programozható erősítés) erősítés beállítását.

Ha csak feszültséget mér vagy kísérletezik, hagyja ezeket nullán 1V/V erősítés érdekében. Ezután az ADS1110 adatátviteli sebességét a 2. és 3. bit vezérli. Ha be van kapcsolva a folyamatos mintavétel, ez határozza meg az ADC által felvett minták számát másodpercenként.

Néhány kísérlet után egy Arduino Uno -val azt találtuk, hogy az ADC -ből visszaadott értékek kissé rosszak voltak a leggyorsabb sebesség használatakor, ezért hagyja 15 SPS -ként, hacsak másképp nem írják elő. A 4. bit vagy folyamatos mintavételt (0), vagy egyszeri mintavételt (1) állít be. Figyelmen kívül hagyja az 5 -ös és a 6 -os biteket, de ezek mindig 0 -ra vannak állítva.

Végül a 7. bit-ha egyszeri mintavételi módban van, ha 1-re állítja, mintát kér-, és elolvasva megmondja, hogy a visszaadott adatok új (0) vagy régi (1). Ellenőrizheti, hogy a mért érték új érték -e - ha a konfigurációs bájt első bitje, amely az adatok után 0, akkor új. Ha 1 -et ad vissza, az ADC konverzió nem fejeződött be.

3. lépés: Adatregiszter

Mivel az ADS1110 egy 16 bites ADC, két bájton keresztül adja vissza az adatokat, majd ezt követi a konfigurációs regiszter értéke. Tehát ha három bájtot kér, az egész tétel visszatér. Az adatok „kettes kiegészítő” formában vannak, ami egy módszer az aláírt számok bináris használatával történő használatára.

A két bájt konvertálása néhány egyszerű matek segítségével történik. 15 SPS -nél történő mintavételkor az ADS1110 által visszaadott érték (nem a feszültség) -32768 és 32767 közé esik. Az érték magasabb bájtját megszorozzuk 256 -tal, majd hozzáadjuk az alsó bájthoz -amelyet ezután megszorozunk 2,048 -tal és végül osztva 32768. Ne essen pánikba, hiszen ezt a következő példa vázlatában tesszük.

4. lépés: Egyvégű ADC mód

Egyvégű ADC mód
Egyvégű ADC mód

Ebben az üzemmódban leolvashat egy feszültséget, amely nulla és 2,048 V közé esik (ami történetesen az ADS1110 beépített referenciafeszültsége is). A példaáramkör egyszerű (az adatlapról).

Ne felejtse el a 10 kΩ-os felhúzó ellenállásokat az I2C buszon. A következő vázlat az ADS1110 -et használja alapértelmezett módban, és egyszerűen visszaadja a mért feszültséget:

// 53.1. Példa - ADS1110 egyoldalas voltmérő (0 ~ 2,048 VDC) #magában foglalja a "Wire.h" #define ads1110 0x48 úszófeszültséget, adatokat; byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // győződjön meg arról, hogy az összes adat {highbyte = Wire.read (); // magas byte * B11111111 lowbyte = Wire.read (); // alacsony bájt configRegister = Wire.read (); }

adatok = highbyte * 256;

adat = adat + alacsony bájt; Serial.print ("Adatok >>"); Serial.println (adatok, DEC); Serial.print ("Feszültség >>"); feszültség = adatok * 2,048; feszültség = feszültség / 32768.0; Soros.nyomat (feszültség, DEC); Serial.println ("V"); késleltetés (1000); }

5. lépés:

Kép
Kép

Feltöltés után csatlakoztassa a jelet a soros monitor méréséhez és nyitásához - valami hasonló lesz a soros monitor képéhez, amely ebben a lépésben látható.

Ha módosítania kell az ADC belső programozható erősítőjének erősítését - új bájtot kell írnia a konfigurációs regiszterbe a következők használatával:

Wire.beginTransmission (ads1110); Wire.write (konfigurációs bájt); Wire.endTransmission ();

mielőtt az ADC adatokat kéri. Ez 0x8D, 0x8E vagy 0x8F lenne a 2, 4 és 8 erősítési értékekhez - és 0x8C használatával állítsa vissza az ADS1110 alapértelmezett értékét.

6. lépés: Differenciál ADC mód

Differenciál ADC mód
Differenciál ADC mód

Ebben a módban leolvashatja a két feszültség közötti különbséget, amelyek mindegyike nulla és 5 V közé esik. A példaáramkör egyszerű (az adatlapról).

Meg kell jegyeznünk itt (és az adatlapon), hogy az ADS1110 nem tudja elfogadni a negatív feszültséget egyik bemeneten sem. Ugyanezekhez az eredményekhez használhatja az előző vázlatot- és a kapott feszültség a Vin+értéke lesz, amelyet kivonnak a Vin+-ból. Például, ha 2 V volt a Vin+ -on és 1 V a Vin-en, a kapott feszültség 1 V (az erősítés 1-re van állítva).

Még egyszer reméljük, hogy érdekesnek és hasznosnak találta ezt. Ezt a bejegyzést a pmdway.com hozta neked - mindent a gyártóknak és az elektronika rajongóinak, ingyenes szállítással világszerte.

Ajánlott: