Obsah:
- Krok 1:
- Krok 2: Konfiguračný register
- Krok 3: Register údajov
- Krok 4: Jednostranný režim ADC
- Krok 5:
- Krok 6: Diferenciálny režim ADC
Video: Arduino a 16-bitový ADC TI ADS1110: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
V tomto návode sa pozrieme na použitie Arduina na prácu s Texas Instruments ADS1110-neuveriteľne malý, ale užitočný 16-bitový IC analógovo-digitálny prevodník.
Môže pracovať medzi 2,7 a 5,5 V, takže je vhodný aj pre Arduino Due a ďalšie vývojové dosky s nižším napätím. Predtým, ako budete pokračovať, stiahnite si údajový list (pdf), pretože bude užitočný a bude sa naň odkazovať počas tohto tutoriálu. ADS1110 vám ponúka možnosť presnejšieho ADC, ako ponúkajú 10-bitové ADC Arduina-a jeho použitie je relatívne jednoduché. Je však k dispozícii iba ako holá časť v SOT23-6.
Krok 1:
Dobrou správou je, že si môžete objednať ADS1110 namontovaný na veľmi praktickej odpočinkovej doske. ADS1110 používa na komunikáciu zbernicu I2C. A pretože existuje iba šesť kolíkov, nemôžete nastaviť adresu zbernice - namiesto toho si môžete vybrať zo šiestich variantov ADS1110 - každý so svojou vlastnou adresou (pozri stranu dva údajového listu).
Ako vidíte na vyššie uvedenej fotografii, náš je označený „EDO“, ktorý sa zhoduje s adresou autobusu 1001000 alebo 0x48h. A v príkladoch obvodov sme na zbernici I2C použili zdvíhacie odpory 10 kΩ.
ADS1110 môžete používať ako jednostranný alebo diferenciálny ADC-Najprv však musíme preskúmať konfiguračný register, ktorý sa používa na ovládanie rôznych atribútov, a dátový register.
Krok 2: Konfiguračný register
Prejdite na stranu jedenásť údajového listu. Konfiguračný register má veľkosť jeden bajt a pretože sa ADS1110 resetuje pri napájacom cykle-register musíte resetovať, ak sa vaše potreby líšia od predvolených hodnôt. Dátový list to vysvetľuje celkom úhľadne … bity 0 a 1 určujú nastavenie zosilnenia pre PGA (programovateľný zosilňovač zisku).
Ak práve meriate napätie alebo experimentujete, nechajte ich na nule, aby ste získali zisk 1 V/V. Ďalej je dátová rýchlosť pre ADS1110 riadená bitmi 2 a 3. Ak máte zapnuté nepretržité vzorkovanie, toto určuje počet vzoriek za sekundu odobratých ADC.
Po nejakom experimentovaní s Arduino Uno sme zistili, že hodnoty vrátené z ADC boli pri použití najrýchlejšej rýchlosti trochu mimo, takže ak nie je požadované inak, nechajte to na 15 SPS. Bit 4 nastavuje buď nepretržité vzorkovanie (0), alebo jednorazové vzorkovanie (1). Ignorujte bity 5 a 6, ale vždy sú nastavené na 0.
Nakoniec bit 7-ak ste v jednorazovom režime vzorkovania, jeho nastavenie na 1 požaduje vzorku-a jeho prečítanie vám povie, či sú vrátené údaje nové (0) alebo staré (1). Môžete skontrolovať, či je nameraná hodnota novou hodnotou - ak je prvý bit konfiguračného bajtu, ktorý nasleduje za údajmi, 0, je to nové. Ak vráti hodnotu 1, konverzia ADC sa nedokončila.
Krok 3: Register údajov
Pretože je ADS1110 16-bitový ADC, vracia údaje cez dva bajty-a potom nasleduje s hodnotou konfiguračného registra. Ak teda požadujete tri bajty, celá dávka sa vráti. Údaje sú vo forme „dvojkového doplnku“, čo je spôsob použitia podpísaných čísel s binárnymi číslami.
Konverzia týchto dvoch bajtov sa vykonáva jednoduchou matematikou. Pri vzorkovaní pri 15 SPS klesne hodnota vrátená ADS1110 (nie napätie) medzi -32768 a 32767. Vyšší bajt hodnoty sa vynásobí 256, potom sa pridá k dolnému bajtu -ktorý sa potom vynásobí 2,048 a nakoniec delené 32768. Neprepadajte panike, pretože to robíme v nadchádzajúcom ukážkovom náčrte.
Krok 4: Jednostranný režim ADC
V tomto režime môžete čítať napätie, ktoré klesá medzi nulou a 2,048 V (čo je zhodou okolností aj zabudované referenčné napätie pre ADS1110). Príklad obvodu je jednoduchý (z technického listu).
Nezabudnite na výsuvné odpory 10 kΩ na zbernici I2C. Nasledujúca skica používa ADS1110 v predvolenom režime a jednoducho vracia namerané napätie:
// Príklad 53.1 - Jednostranný voltmetr ADS1110 (0 ~ 2,048VDC) #include "Wire.h" #define ads1110 0x48 plávajúce napätie, údaje; byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // zaistí, aby všetky údaje boli v {highbyte = Wire.read (); // vysoký bajt * B11111111 nízky bajt = Wire.read (); // low byte configRegister = Wire.read (); }
údaje = vysoký bajt * 256;
data = data + lowbyte; Serial.print ("Údaje >>"); Serial.println (údaje, DEC); Serial.print ("Napätie >>"); napätie = údaje * 2,048; napätie = napätie / 32768,0; Serial.print (napätie, DEC); Serial.println ("V"); oneskorenie (1000); }
Krok 5:
Po nahraní pripojte signál k meraniu a otvorte sériový monitor - zobrazí sa vám niečo podobné obrázku sériového monitora zobrazeného v tomto kroku.
Ak potrebujete zmeniť zosilnenie interného programovateľného zosilňovača zosilnenia ADC - budete musieť zapísať nový bajt do konfiguračného registra pomocou:
Wire.beginTransmission (ads1110); Wire.write (konfiguračný bajt); Wire.endTransmission ();
pred vyžiadaním údajov ADC. To by bolo 0x8D, 0x8E alebo 0x8F pre hodnoty zisku 2, 4 a 8 - a pomocou 0x8C resetujte ADS1110 späť na predvolené hodnoty.
Krok 6: Diferenciálny režim ADC
V tomto režime môžete čítať rozdiel medzi dvoma napätiami, z ktorých každé klesá medzi nulou a 5 V. Príklad obvodu je jednoduchý (z technického listu).
Tu (a v dátovom liste) musíme poznamenať, že ADS1110 nemôže akceptovať záporné napätie na žiadnom zo vstupov. Na rovnaké výsledky môžete použiť predchádzajúcu skicu- a výsledné napätie bude hodnotou Vin- odpočítanou od Vin+. Ak by ste napríklad mali 2 V na Vin+ a 1 V na Vin-, výsledné napätie by bolo 1 V (so ziskom nastaveným na 1).
Ešte raz dúfame, že vás to zaujalo a možno bude užitočné. Tento príspevok vám prináša pmdway.com - všetko pre výrobcov a nadšencov elektroniky s bezplatným doručením do celého sveta.
Odporúča:
Ako nastaviť zmysel pre ADC: 5 krokov
Ako vytvoriť zmysel pre prúd ADC: V tomto návode popíšeme, ako implementovať 8-bitový analógovo-digitálny prevodník (ADC) do SLG46855V, ktorý dokáže snímať záťažový prúd a rozhranie s MCU cez I2C. Tento dizajn je možné použiť pre rôzne aplikácie snímania prúdu, ako
Arduino a PCF8591 ADC DAC IC: 7 krokov
Arduino a PCF8591 ADC DAC IC: Chceli ste niekedy vo svojom projekte Arduino viac pinov analógového vstupu, ale nechceli ste sa dostať k Mega? Alebo chcete generovať analógové signály? Potom si pozrite predmet nášho tutoriálu - NXP PCF8591 IC. Rieši oba tieto problémové
Viete o úprave ADC ESP32 ?: 29 krokov
Viete o úprave ADC ESP32?: Dnes budem hovoriť o technickejšom probléme, ale myslím si, že každý, kto pracuje s ESP32, by mal vedieť: Problém úpravy čítania ADC (analógovo-digitálneho prevodníka). Považujem to za dôležité, pretože pri „meraní“esp
Nabíjateľný digitálny voltmetr pomocou ICL7107 ADC: 7 krokov (s obrázkami)
Nabíjateľný digitálny voltmetr pomocou ICL7107 ADC: V tomto návode vám ukážem, ako vytvoriť super jednoduchý digitálny voltmetr, ktorý dokáže merať napätie od 20 mV do 200V. Tento projekt nebude používať žiadny mikrokontrolér ako arduino. Namiesto toho sa bude používať ADC, t. J. ICL7107, s niektorými
Úvod do ADC v mikrokontroléri AVR - pre začiatočníkov: 14 krokov
Úvod do ADC v mikrokontroléri AVR | pre začiatočníkov: V tomto návode sa dozviete všetko o ADC v mikrokontroléri AVR