Innehållsförteckning:

Arduino och TI ADS1110 16-bitars ADC: 6 steg
Arduino och TI ADS1110 16-bitars ADC: 6 steg

Video: Arduino och TI ADS1110 16-bitars ADC: 6 steg

Video: Arduino och TI ADS1110 16-bitars ADC: 6 steg
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Juli
Anonim
Arduino och TI ADS1110 16-bitars ADC
Arduino och TI ADS1110 16-bitars ADC

I denna handledning undersöker vi hur du använder Arduino för att arbeta med Texas Instruments ADS1110-en otroligt liten men användbar 16-bitars analog-till-digital-omvandlare IC.

Den kan fungera mellan 2,7 och 5,5 V så det är också bra för Arduino Due och andra utvecklingsbrädor med lägre spänning. Innan du fortsätter, ladda ner databladet (pdf) eftersom det kommer att vara användbart och hänvisas till under denna handledning. ADS1110 ger dig möjlighet att få en mer exakt ADC än som erbjuds av Arduinos 10-bitars ADC-och den är relativt enkel att använda. Det är dock bara tillgängligt som en ren del i SOT23-6.

Steg 1:

Bild
Bild

Den goda nyheten är att du kan beställa ADS1110 monterad på ett mycket bekvämt brytbord. ADS1110 använder I2C -bussen för kommunikation. Och eftersom det bara finns sex stift kan du inte ställa in bussadressen - istället kan du välja mellan sex varianter av ADS1110 - var och en med sin egen adress (se sida två i databladet).

Som du kan se på bilden ovan är vårt märkt “EDO” som matchar bussadressen 1001000 eller 0x48h. Och med exempelkretsarna har vi använt 10kΩ uppdragningsmotstånd på I2C-bussen.

Du kan använda ADS1110 som antingen en enda eller differentiell ADC-Men först måste vi undersöka konfigurationsregistret som används för att styra olika attribut och dataregistret.

Steg 2: Konfigurationsregister

Bläddra till sidan elva i databladet. Konfigurationsregistret är en byte stort, och eftersom ADS1110 återställs vid en strömcykel-måste du återställa registret om dina behov skiljer sig från standardvärdena. Databladet stavar det ganska snyggt … bitarna 0 och 1 bestämmer förstärkningsinställningen för PGA (programmerbar förstärkningsförstärkare).

Om du bara mäter spänningar eller experimenterar, lämna dessa som noll för en förstärkning på 1V/V. Därefter styrs datahastigheten för ADS1110 med bitarna 2 och 3. Om du har kontinuerlig sampling påslagen bestämmer detta antalet samplar per sekund som tas av ADC.

Efter lite experimenterande med en Arduino Uno fann vi att värdena som returnerades från ADC var lite av när vi använde den snabbaste hastigheten, så lämna den som 15 SPS om inte annat krävs. Bit 4 ställer in antingen kontinuerlig sampling (0) eller engångsprovtagning (1). Ignorera bit 5 och 6, men de är alltid inställda på 0.

Slutligen bit 7-om du är i enstaka samplingsläge, ställer du in det till 1 begär ett prov-och läser det kommer att berätta om den returnerade data är ny (0) eller gammal (1). Du kan kontrollera att det uppmätta värdet är ett nytt värde - om den första biten i konfigurationsbyten som kommer efter data är 0 är den ny. Om den returnerar 1 har ADC -konverteringen inte slutförts.

Steg 3: Dataregister

Eftersom ADS1110 är en 16-bitars ADC, returnerar den data över två byte-och följer sedan med värdet på konfigurationsregistret. Så om du begär tre byte kommer hela partiet tillbaka. Data finns i "tvåkomplement" -form, vilket är en metod för att använda signerade nummer med binärt.

Att konvertera dessa två byte görs med några enkla matematiker. Vid provtagning vid 15 SPS faller värdet som returneras av ADS1110 (inte spänningen) mellan -32768 och 32767. Den högre byten av värdet multipliceras med 256, läggs sedan till den lägre byten -som sedan multipliceras med 2.048 och slutligen dividerat med 32768. Få inte panik, eftersom vi gör detta i den kommande exempelskissen.

Steg 4: ADC-läge med enda ända

Enkelt ADC-läge
Enkelt ADC-läge

I det här läget kan du läsa en spänning som faller mellan noll och 2,048 V (som också råkar vara den inbyggda referensspänningen för ADS1110). Exempelkretsen är enkel (från databladet).

Glöm inte 10kΩ uppdragningsmotstånd på I2C-bussen. Följande skiss använder ADS1110 i standardläget och returnerar helt enkelt den uppmätta spänningen:

// Exempel 53.1 - ADS1110 enkelsidig voltmeter (0 ~ 2.048VDC) #inkludera "Wire.h" #define ads1110 0x48 flottörspänning, data; byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); medan (Wire.available ()) // se till att all data kommer i {highbyte = Wire.read (); // hög byte * B11111111 lågbyte = Wire.read (); // low byte configRegister = Wire.read (); }

data = highbyte * 256;

data = data + lågbyte; Serial.print ("Data >>"); Serial.println (data, DEC); Serial.print ("Spänning >>"); spänning = data * 2,048; spänning = spänning / 32768,0; Serial.print (spänning, DEC); Serial.println ("V"); fördröjning (1000); }

Steg 5:

Bild
Bild

När den har laddats upp ansluter du signalen för att mäta och öppnar den seriella bildskärmen - du kommer att presenteras med något som liknar den seriella bildskärmen som visas i detta steg.

Om du behöver ändra förstärkningen för den interna programmerbara förstärkaren för ADC - måste du skriva en ny byte i konfigurationsregistret med:

Wire.beginTransmission (ads1110); Wire.write (konfigurationsbyte); Wire.endTransmission ();

innan du begär ADC -data. Detta skulle vara 0x8D, 0x8E eller 0x8F för förstärkningsvärden på 2, 4 respektive 8 - och använd 0x8C för att återställa ADS1110 till standard.

Steg 6: Differential ADC -läge

Differential ADC -läge
Differential ADC -läge

I det här läget kan du läsa skillnaden mellan två spänningar som var och en faller mellan noll och 5 V. Exempelkretsen är enkel (från databladet).

Vi måste notera här (och i databladet) att ADS1110 inte kan acceptera negativa spänningar på någon av ingångarna. Du kan använda föregående skiss för samma resultat- och den resulterande spänningen kommer att vara värdet av Vin subtraherat från Vin+. Om du till exempel hade 2 V på Vin+ och 1 V på Vin- skulle den resulterande spänningen vara 1 V (med förstärkningen inställd på 1).

Återigen hoppas vi att du tyckte att detta var intressant och möjligen användbart. Det här inlägget kommer till dig av pmdway.com - allt för tillverkare och elektronikentusiaster, med gratis leverans över hela världen.

Rekommenderad: