Sisällysluettelo:
- Vaihe 1:
- Vaihe 2: Määritysrekisteri
- Vaihe 3: Tietorekisteri
- Vaihe 4: Yksipäinen ADC-tila
- Vaihe 5:
- Vaihe 6: Differentiaalinen ADC -tila
Video: Arduino ja TI ADS1110 16-bittinen ADC: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tässä opetusohjelmassa tarkastelemme Arduinon käyttämistä Texas Instruments ADS1110: n kanssa-uskomattoman pieni mutta hyödyllinen 16-bittinen analogia-digitaalimuunnin IC.
Se voi toimia 2,7 ja 5,5 V välillä, joten se sopii myös Arduino Due -laitteille ja muille pienjännitteisille kehityskorteille. Ennen kuin jatkat, lataa tietolomake (pdf), koska siitä on hyötyä ja johon viitataan tämän opetusohjelman aikana. ADS1110 tarjoaa sinulle tarkemman ADC-vaihtoehdon kuin Arduinon 10-bittiset ADC: t-ja se on suhteellisen helppokäyttöinen. Se on kuitenkin saatavana vain paljaana osana SOT23-6: ssa.
Vaihe 1:
Hyvä uutinen on, että voit tilata ADS1110 -laitteen asennettuna erittäin kätevälle katkaisulaudalle. ADS1110 käyttää I2C -väylää viestintään. Ja koska on vain kuusi nastaa, et voi asettaa väyläosoitetta - sen sijaan voit valita kuudesta ADS1110 -variantista - jokaisella on oma osoite (katso tietolomakkeen sivu 2).
Kuten yllä olevasta kuvasta näkyy, omamme on merkitty”EDO”, joka vastaa väylän osoitetta 1001000 tai 0x48h. Ja esimerkkipiireissä olemme käyttäneet 10 kΩ: n vetovastusvastuksia I2C-väylässä.
Voit käyttää ADS1110: tä joko yksipäisenä tai differentiaalisena ADC: nä-Mutta ensin meidän on tutkittava kokoonpanorekisteri, jota käytetään eri määritteiden hallintaan, ja tietorekisteri.
Vaihe 2: Määritysrekisteri
Siirry tietolomakkeen yhdelletoista sivulle. Määritysrekisteri on yhden tavun kokoinen, ja koska ADS1110 nollautuu käynnistyksen aikana-sinun on nollattava rekisteri, jos tarpeesi poikkeavat oletusarvoista. Tietolomake selittää sen melko siististi… bitit 0 ja 1 määrittävät PGA: n (ohjelmoitava vahvistin) vahvistuksen.
Jos mittaat vain jännitteitä tai kokeilet, jätä nämä nollaksi 1V/V vahvistukselle. Seuraavaksi ADS1110: n tiedonsiirtonopeutta ohjataan biteillä 2 ja 3. Jos olet ottanut jatkuvan näytteenoton käyttöön, tämä määrittää ADC: n ottamien näytteiden lukumäärän sekunnissa.
Arduino Uno -kokeilun jälkeen havaitsimme, että ADC: stä palautetut arvot olivat hieman pois käytöstä nopeinta nopeutta käytettäessä, joten jätä se 15 SPS: ksi, ellei toisin vaadita. Bitti 4 asettaa joko jatkuvan näytteenoton (0) tai kertaluonteisen näytteenoton (1). Ohita bitit 5 ja 6, mutta ne on aina asetettu 0: ksi.
Lopuksi bitti 7-jos olet kertaluonteisessa näytteenottotilassa, sen asettaminen arvoon 1 pyytää näytettä-ja sen lukeminen kertoo, ovatko palautetut tiedot uusia (0) vai vanhoja (1). Voit tarkistaa, että mitattu arvo on uusi arvo - jos tietojen jälkeen tuleva kokoonpanotavu ensimmäinen bitti on 0, se on uusi. Jos se palauttaa arvon 1, ADC -muunnos ei ole päättynyt.
Vaihe 3: Tietorekisteri
Koska ADS1110 on 16-bittinen ADC, se palauttaa tiedot kahden tavun yli-ja seuraa sitten määritysrekisterin arvoa. Joten jos pyydät kolme tavua, koko erä tulee takaisin. Tiedot ovat "kahden komplementti" -muodossa, joka on menetelmä allekirjoitettujen numeroiden käyttämiseksi binaarijärjestelmän kanssa.
Näiden kahden tavun muuntaminen tapahtuu yksinkertaisella matematiikalla. Näytteenotossa 15 SPS: ssä ADS1110: n palauttama arvo (ei jännite) on välillä -32768 ja 32767. Arvon ylempi tavu kerrotaan 256: lla, lisätään sitten alempaan tavuun -joka sitten kerrotaan 2,048: lla ja lopuksi jaettuna 32768. Älä panikoi, koska teemme tämän seuraavassa esimerkkiluonnoksessa.
Vaihe 4: Yksipäinen ADC-tila
Tässä tilassa voit lukea jännitteen, joka on nollan ja 2,048 V välillä (joka on myös sisäänrakennettu viitejännite ADS1110: lle). Esimerkkipiiri on yksinkertainen (tietolomakkeesta).
Älä unohda I2C-väylän 10 kΩ: n vetovastuksia. Seuraava luonnos käyttää ADS1110: tä oletustilassa ja palauttaa vain mitatun jännitteen:
// Esimerkki 53.1 - ADS1110 yksipuolinen voltimittari (0 ~ 2,048 VDC) #sisältää "Wire.h" #define ads1110 0x48 kelluva jännite, data; tavu korkea tavu, pieni tavu, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // varmista, että kaikki tiedot tulevat {highbyte = Wire.read (); // korkea tavu * B11111111 lowbyte = Wire.read (); // matala tavu configRegister = Wire.read (); }
data = highbyte * 256;
data = data + lowbyte; Serial.print ("Data >>"); Serial.println (data, DEC); Serial.print ("Jännite >>"); jännite = data * 2.048; jännite = jännite / 32768.0; Sarjajälki (jännite, DEC); Serial.println ("V"); viive (1000); }
Vaihe 5:
Kun olet ladannut, liitä signaali mittaamaan ja avaa sarjamonitori - sinulle näytetään jotain samanlaista kuin tässä vaiheessa näytetty sarjamonitorikuva.
Jos sinun on muutettava ADC: n sisäisen ohjelmoitavan vahvistimen vahvistusta, sinun on kirjoitettava uusi tavu määritysrekisteriin käyttämällä:
Wire.beginTransmission (ads1110); Wire.write (kokoonpanotavu); Wire.endTransmission ();
ennen ADC -tietojen pyytämistä. Tämä olisi 0x8D, 0x8E tai 0x8F vahvistusarvoille 2, 4 ja 8 - ja käytä 0x8C palauttaaksesi ADS1110 takaisin oletusasetuksiin.
Vaihe 6: Differentiaalinen ADC -tila
Tässä tilassa voit lukea kahden jännitteen välisen eron, joka kukin on nollan ja 5 V välillä. Esimerkkipiiri on yksinkertainen (tietolomakkeesta).
Meidän on huomioitava tässä (ja tietolomakkeessa), että ADS1110 ei voi hyväksyä negatiivisia jännitteitä kumpaankaan tuloon. Voit käyttää edellistä luonnosta samoihin tuloksiin- ja tuloksena oleva jännite on Vin-arvo, joka on vähennetty Vin+: sta. Esimerkiksi, jos sinulla oli 2 V Vin+: lla ja 1 V Vinillä, tuloksena oleva jännite olisi 1 V (vahvistuksen ollessa 1).
Toivomme jälleen, että löysit tämän aiheen kiinnostavaksi ja mahdollisesti hyödylliseksi. Tämän viestin toi sinulle pmdway.com - kaikki valmistajille ja elektroniikan harrastajille, ilmainen toimitus maailmanlaajuisesti.
Suositeltava:
Kuinka tehdä ADC: n nykyinen tunne: 5 vaihetta
Kuinka tehdä ADC: n nykyinen järki: Tässä opastettavassa kuvataan, miten SLG46855V: ssä voidaan ottaa käyttöön 8-bittinen analogia-digitaalimuunnin (ADC), joka voi havaita kuormitusvirran ja rajapinnan MCU: n kanssa I2C: n kautta. Tätä mallia voidaan käyttää erilaisiin virranmittaussovelluksiin, kuten
7-segmentti näyttää ADC #Arduino-arvot, #Arduino: 4 vaihetta
7-segmentti näyttää ADC #Arduino Arvot, #Arduino: Tässä artikkelissa teen projektin, joka liittyy edelleen edelliseen artikkeliin. Nimittäin ADC -tietojen käsittely. Joten et tarvitse sarjamonitoria nähdäksesi ADC -tietojen arvon. Tässä artikkelissa teen ADC -arvon katseluohjelman. niin et
Lue ADC -arvot potentiometreistä: 4 vaihetta
Lue ADC -arvot potentiometreiltä: Tässä artikkelissa näytän sinulle, miten voit lukea ADC -arvot potentiometristä. Tämä on Arduino -ohjelmoinnin perusta. joka lukee analogisia arvoja käyttämällä Arduinon tarjoamaa analogista nasta. potention käytön lisäksi on olemassa useita antureita, jotka
Arduino ja PCF8591 ADC DAC IC: 7 vaihetta
Arduino ja PCF8591 ADC DAC IC: Oletko koskaan halunnut enemmän analogisia tulonappeja Arduino -projektillesi, mutta et halunnut hakea Megaa? Tai haluatko luoda analogisia signaaleja? Tutustu sitten opetusohjelman aiheeseen - NXP PCF8591 IC, joka ratkaisee molemmat ongelmat
Tiedätkö ESP32 ADC -säädöstä?: 29 vaihetta
Tiedätkö ESP32 ADC-säätö? Pidän tätä tärkeänä, koska kun teet " mittauksen " esp