Taula de continguts:

Arduino i el TI ADS1110 ADC de 16 bits: 6 passos
Arduino i el TI ADS1110 ADC de 16 bits: 6 passos

Vídeo: Arduino i el TI ADS1110 ADC de 16 bits: 6 passos

Vídeo: Arduino i el TI ADS1110 ADC de 16 bits: 6 passos
Vídeo: #340 How good are the ADCs inside Arduinos, ESP8266, and ESP32? And external ADCs (ADS1115) 2024, Desembre
Anonim
Arduino i l'ADC de 16 bits TI ADS1110
Arduino i l'ADC de 16 bits TI ADS1110

En aquest tutorial examinem l'ús d'Arduino per treballar amb el Texas Instruments ADS1110: un convertidor analògic-digital de 16 bits increïblement petit però útil.

Pot funcionar entre 2,7 i 5,5 V, de manera que també està bé per a Arduino Due i altres plaques de desenvolupament de baixa tensió. Abans de continuar, descarregueu el full de dades (pdf), ja que serà útil i es farà referència a aquest tutorial. L’ADS1110 us ofereix l’opció d’un ADC més precís que el que ofereixen els ADC de 10 bits d’Arduino i és relativament fàcil d’utilitzar. Tot i això, només està disponible com a peça al SOT23-6.

Pas 1:

Imatge
Imatge

La bona notícia és que podeu demanar l’ADS1110 muntat en un tauler d’inici molt convenient. L'ADS1110 utilitza el bus I2C per a la comunicació. I com que només hi ha sis pins, no podeu definir l'adreça del bus; en lloc d'això, podeu seleccionar entre sis variants de l'ADS1110, cadascuna amb la seva adreça (vegeu la pàgina dos del full de dades).

Com podeu veure a la foto superior, el nostre està marcat amb "EDO" que coincideix amb l'adreça del bus 1001000 o 0x48h. I amb els exemples de circuits hem utilitzat resistències de tracció de 10 kΩ al bus I2C.

Podeu utilitzar l'ADS1110 com un ADC de final únic o diferencial, però primer hem d'examinar el registre de configuració que s'utilitza per controlar diversos atributs i el registre de dades.

Pas 2: registre de configuració

Passeu a la pàgina onzena del full de dades. El registre de configuració té un byte de mida i, com que l’ADS1110 es reinicia en un cicle d’alimentació, haureu de restablir el registre si les vostres necessitats són diferents de les predeterminades. El full de dades ho explica molt bé … els bits 0 i 1 determinen la configuració del guany per al PGA (amplificador de guany programable).

Si només esteu mesurant tensions o experimentant, deixeu-les com a zero per obtenir un guany d’1 V / V. A continuació, la velocitat de dades de l'ADS1110 es controla amb els bits 2 i 3. Si teniu activat el mostreig continu, això determinarà el nombre de mostres per segon preses per l'ADC.

Després d’experimentar amb un Arduino Uno, vam trobar que els valors retornats de l’ADC estaven una mica desactivats quan s’utilitzava la velocitat més ràpida, així que deixeu-lo com a 15 SPS tret que s’exigeixi el contrari. El bit 4 defineix un mostreig continu (0) o un mostreig puntual (1). Ignoreu els bits 5 i 6, però sempre s’estableixen com a 0.

Finalment, el bit 7: si esteu en mode de mostreig puntual, establir-lo en 1 sol·licita una mostra, i llegir-lo us indicarà si les dades retornades són noves (0) o antigues (1). Podeu comprovar que el valor mesurat és un valor nou; si el primer bit del byte de configuració que apareix després de les dades és 0, és nou. Si retorna 1, la conversió ADC no ha finalitzat.

Pas 3: registre de dades

Com que l'ADS1110 és un ADC de 16 bits, retorna les dades en dos bytes, i després segueix amb el valor del registre de configuració. Així que si sol·liciteu tres bytes, tot el lot tornarà. Les dades es troben en forma de "complement de dos", que és un mètode d'ús de números signats amb binari.

La conversió d’aquests dos bytes la fan algunes matemàtiques simples. Quan es fa un mostreig a 15 SPS, el valor retornat per l'ADS1110 (no el voltatge) oscil·la entre -32768 i 32767. El byte més alt del valor es multiplica per 256 i, a continuació, s'afegeix al byte inferior, que es multiplica per 2.048 i finalment dividit per 32768. No us espanteu, ja que ho fem al següent esbós d'exemple.

Pas 4: mode ADC d'un sol extrem

Mode ADC de finalització única
Mode ADC de finalització única

En aquest mode es pot llegir una tensió que cau entre zero i 2.048 V (que també és el voltatge de referència incorporat per a l'ADS1110). L’exemple de circuit és senzill (a partir del full de dades).

No us oblideu de les resistències pull-up de 10 kΩ del bus I2C. El següent esbós utilitza l'ADS1110 en el mode per defecte i simplement retorna la tensió mesurada:

// Exemple 53.1: voltímetre ADS1110 d'una sola cara (0 ~ 2.048VDC) #include "Wire.h" #define ads1110 0x48 tensió flotant, dades; byte highbyte, lowbyte, configRegister; configuració nul·la () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // assegureu-vos que totes les dades arriben a {highbyte = Wire.read (); // high byte * B11111111 lowbyte = Wire.read (); // baix byte configRegister = Wire.read (); }

dades = highbyte * 256;

dades = dades + lowbyte; Serial.print ("Dades >>"); Serial.println (dades, DEC); Serial.print ("Voltatge >>"); voltatge = dades * 2.048; voltatge = voltatge / 32768,0; Serial.print (voltatge, DEC); Serial.println ("V"); retard (1000); }

Pas 5:

Imatge
Imatge

Un cop carregat, connecteu el senyal per mesurar i obriu el monitor de sèrie; se us mostrarà una cosa similar a la imatge del monitor de sèrie que es mostra en aquest pas.

Si heu d’alterar el guany de l’amplificador de guany programable intern de l’ADC, haureu d’escriure un byte nou al registre de configuració mitjançant:

Wire.beginTransmission (ads1110); Wire.write (byte de configuració); Wire.endTransmission ();

abans de sol·licitar les dades de l’ADC. Seria 0x8D, 0x8E o 0x8F per a valors de guany de 2, 4 i 8 respectivament, i utilitzeu 0x8C per restablir l'ADS1110 al valor predeterminat.

Pas 6: mode diferencial ADC

Mode diferencial ADC
Mode diferencial ADC

En aquest mode es pot llegir la diferència entre dues tensions que cauen entre zero i 5 V. El circuit d’exemple és senzill (a partir del full de dades).

Hem de tenir en compte aquí (i al full de dades) que l’ADS1110 no pot acceptar tensions negatives en cap de les entrades. Podeu utilitzar l'esbós anterior per obtenir els mateixos resultats, i el voltatge resultant serà el valor de Vin restat de Vin +. Per exemple, si teniu 2 V a Vin + i 1 V a Vin- la tensió resultant seria 1 V (amb el guany establert a 1).

Una vegada més esperem que us sigui d’interès i, possiblement, útil. Aquest article us el proporciona pmdway.com: tot per a fabricants i aficionats a l'electrònica, amb lliurament gratuït a tot el món.

Recomanat: