Taula de continguts:
- Pas 1:
- Pas 2: registre de configuració
- Pas 3: registre de dades
- Pas 4: mode ADC d'un sol extrem
- Pas 5:
- Pas 6: mode diferencial ADC
Vídeo: Arduino i el TI ADS1110 ADC de 16 bits: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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:
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
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:
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
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:
Arduino Nano - MMA8452Q Tutorial d’acceleròmetre digital de 3 eixos de 12 i 8 bits: 4 passos
Arduino Nano: MMA8452Q Tutorial d’acceleròmetre digital de 12 eixos i 8 bits de 3 eixos: l’MMA8452Q és un acceleròmetre capacitari i micromecanitzat intel·ligent, de poca potència, de tres eixos, amb 12 bits de resolució. S'ofereixen opcions programables per a l'usuari amb l'ajut de funcions incrustades a l'acceleròmetre, configurables per a dues interrupcions
Nano Pixels de 26 bits mitjançant Arduino: 4 passos
Nano Pixels de 26 bits amb Arduino: en el meu article anterior, vaig fer un tutorial sobre com utilitzar el LED WS2812 Nano Pixel. En aquest article, vaig utilitzar el 16 bits Nano Pixel WS2812. I en aquest article, us mostraré com utilitzar l'anell de 26 bits Nano Pixels WS2812. A la secció de maquinari
Comptador binari Arduino de 8 bits: 6 passos
Comptador binari Arduino de 8 bits: recompte de furgonetes de comptador binari Arduino de 8 bits de 0 a 255. Aquest projecte és un comptador amb 8 LED per connectar-se al pin Arduino 5, 3, 4, 7, 10, 11, 12 i amp; 13 perquè compti de dreta a esquerra generant codis de zero a 255
Generador de so de 8 bits controlat per MIDI / Arduino (AY-3-8910): 5 passos
Generador de so de 8 bits controlat MIDI / Arduino (AY-3-8910): creeu un generador de so de 8 bits de so retro i controleu-lo mitjançant MIDI. Aquest disseny està inspirat en part pels entusiastes de Chiptune que construeixen circuits Arduino per reproduir fitxers Chiptune i alguns les meves pròpies idees per integrar el so dels primers inconvenients de videojocs
Jocs Arduino de 8 bits: 4 passos
Arduino Gaming de 8 bits: hola, aquest serà un senzill tutorial sobre com construir una configuració de jocs de 8 bits mitjançant un arduino