INHOUDSOPGAWE:

Arduino en die TI ADS1110 16-bis ADC: 6 stappe
Arduino en die TI ADS1110 16-bis ADC: 6 stappe

Video: Arduino en die TI ADS1110 16-bis ADC: 6 stappe

Video: Arduino en die TI ADS1110 16-bis ADC: 6 stappe
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, November
Anonim
Arduino en die TI ADS1110 16-bis ADC
Arduino en die TI ADS1110 16-bis ADC

In hierdie handleiding kyk ons na die gebruik van Arduino om saam met die Texas Instruments ADS1110 te werk-'n ongelooflike klein, maar bruikbare 16-bis analoog-na-digitale omskakelaar IC.

Dit kan tussen 2,7 en 5,5 V werk, dus dit is ook goed vir Arduino Due en ander ontwikkelingsborde met laer spanning. Laai die gegewensblad (pdf) af voordat u verder gaan, aangesien dit tydens hierdie tutoriaal nuttig sal wees en daarna verwys sal word. Die ADS1110 gee u die opsie van 'n meer akkurate ADC as wat aangebied word deur die 10-bis ADC's van die Arduino-en dit is relatief maklik om te gebruik. Dit is egter slegs beskikbaar as 'n blote deel in SOT23-6.

Stap 1:

Beeld
Beeld

Die goeie nuus is dat u die ADS1110 kan bestel wat op 'n baie gerieflike uitbreekbord gemonteer is. Die ADS1110 gebruik die I2C -bus vir kommunikasie. En omdat daar slegs ses penne is, kan u nie die busadres instel nie - u kan in plaas daarvan uit ses variante van die ADS1110 kies - elk met hul eie adres (sien bladsy twee van die gegewensblad).

Soos u op die foto hierbo kan sien, is ons 'EDO' gemerk wat pas by die busadres 1001000 of 0x48h. En met die voorbeeldbane het ons 10kΩ optrekweerstands op die I2C-bus gebruik.

U kan die ADS1110 as 'n enkelvoudige of differensiële ADC gebruik-maar eers moet ons die konfigurasieregister ondersoek wat gebruik word om verskillende eienskappe en die dataregister te beheer.

Stap 2: Konfigurasie -register

Blaai na bladsy elf van die gegewensblad. Die konfigurasieregister is een greep groot, en namate die ADS1110 herstel word tydens 'n kragsiklus, moet u die register herstel as u behoeftes verskil van die standaard. Die gegewensblad spel dit baie netjies uit … stukkies 0 en 1 bepaal die versterkingsinstelling vir die PGA (programmeerbare versterkingsversterker).

As u net spannings meet of eksperimenteer, laat dit as nul staan vir 'n wins van 1V/V. Vervolgens word die datatempo vir die ADS1110 beheer met bisse 2 en 3. As u deurlopende monsterneming aangeskakel het, bepaal dit die aantal monsters per sekonde wat die ADC neem.

Na 'n bietjie eksperimenteer met 'n Arduino Uno, het ons gevind dat die waardes wat van die ADC teruggekeer is, effens laer was as u die vinnigste koers gebruik, dus laat dit as 15 SPS, tensy anders vereis. Bit 4 stel óf deurlopende monsterneming (0) óf eenmalige monsterneming (1) in. Ignoreer stukkies 5 en 6, maar hulle is altyd as 0 gestel.

Uiteindelik bietjie 7-as u in 'n eenmalige monsternemingsmodus is, stel dit op 1 om 'n voorbeeld-en deur dit te lees, sal u weet of die teruggestuurde data nuut (0) of oud (1) is. U kan seker maak dat die gemeet waarde 'n nuwe waarde is - as die eerste bietjie van die opsetbyte wat na die data kom 0 is, is dit nuut. As dit 1 terugbring, is die ADC -omskakeling nog nie voltooi nie.

Stap 3: Dataregister

Aangesien die ADS1110 'n 16-bis ADC is, gee die data oor twee grepe terug-en volg dan met die waarde van die konfigurasieregister. As u drie grepe versoek, kom die hele lot terug. Die data is in die vorm van 'twee se komplement', wat 'n metode is om getekende getalle met binêre te gebruik.

Die omskakeling van die twee grepe word gedoen deur 'n paar eenvoudige wiskunde. By monsterneming by 15 SPS val die waarde wat deur die ADS1110 teruggegee word (nie die spanning nie) tussen -32768 en 32767. Die hoër byte van die waarde word vermenigvuldig met 256, dan bygevoeg tot die onderste byte -wat dan vermenigvuldig word met 2.048 en uiteindelik gedeel deur 32768. Moenie skrik nie, want ons doen dit in die komende voorbeeldskets.

Stap 4: Enkele ADC-modus

Enkele ADC-modus
Enkele ADC-modus

In hierdie modus kan u 'n spanning lees wat tussen nul en 2,048 V val (wat ook toevallig die ingeboude verwysingspanning vir die ADS1110 is). Die voorbeeldkring is eenvoudig (uit die gegewensblad).

Moenie die 10kΩ optrekweerstands op die I2C-bus vergeet nie. Die volgende skets gebruik die ADS1110 in die standaardmodus en gee eenvoudig die gemete spanning terug:

// Voorbeeld 53.1 - ADS1110 enkelsydige voltmeter (0 ~ 2.048VDC) #sluit "Wire.h" in #definieer advertensies1110 0x48 dryfspanning, data; byte highbyte, lowbyte, configRegister; ongeldige opstelling () {Serial.begin (9600); Wire.begin (); } leemte -lus () {Wire.requestFrom (ads1110, 3); terwyl (Wire.available ()) // verseker dat alle data in {highbyte = Wire.read () verskyn; // hoë byte * B11111111 lowbyte = Draad.lees (); // lae byte configRegister = Wire.read (); }

data = hoëbyte * 256;

data = data + lowbyte; Serial.print ("Data >>"); Serial.println (data, DEC); Serial.print ("Spanning >>"); spanning = data * 2.048; spanning = spanning / 32768.0; Serial.print (spanning, DEC); Serial.println ("V"); vertraging (1000); }

Stap 5:

Beeld
Beeld

Sodra dit opgelaai is, koppel die sein om te meet en maak die seriële monitor oop - u kry iets soortgelyk aan die beeld van die seriële monitor wat in hierdie stap getoon word.

As u die versterking van die interne programmeerbare versterkingsversterker van die ADC moet verander - moet u 'n nuwe byte in die konfigurasieregister skryf deur gebruik te maak van:

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

voordat u die ADC -data versoek. Dit is 0x8D, 0x8E of 0x8F vir versterkingswaardes van onderskeidelik 2, 4 en 8 - en gebruik 0x8C om die ADS1110 terug te stel na standaard.

Stap 6: Differensiële ADC -modus

Differensiële ADC -modus
Differensiële ADC -modus

In hierdie modus kan u die verskil tussen twee spannings wat elk tussen nul en 5 V. val, lees. Die voorbeeldkring is eenvoudig (uit die gegewensblad).

Ons moet hier (en in die gegewensblad) daarop let dat die ADS1110 nie negatiewe spannings op enige van die insette kan aanvaar nie. U kan die vorige skets vir dieselfde resultate gebruik- en die gevolglike spanning is die waarde van Vin- afgetrek van Vin+. As u byvoorbeeld 2 V op Vin+ en 1 V op Vin gehad het, sou die resulterende spanning 1 V wees (met die versterking op 1).

Weereens hoop ons dat u dit interessant en moontlik nuttig gevind het. Hierdie pos word deur pmdway.com aan u gebring - alles vir vervaardigers en elektronika -entoesiaste, met gratis aflewering wêreldwyd.

Aanbeveel: