Orodha ya maudhui:

Arduino na TI ADS1110 16-bit ADC: 6 Hatua
Arduino na TI ADS1110 16-bit ADC: 6 Hatua

Video: Arduino na TI ADS1110 16-bit ADC: 6 Hatua

Video: Arduino na TI ADS1110 16-bit ADC: 6 Hatua
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Julai
Anonim
Arduino na TI ADS1110 16-bit ADC
Arduino na TI ADS1110 16-bit ADC

Katika mafunzo haya tunachunguza kutumia Arduino kufanya kazi na Texas Instruments ADS1110 - kibadilishaji kidogo sana lakini muhimu 16-bit analogue-to-digital converter IC.

Inaweza kufanya kazi kati ya 2.7 na 5.5 V kwa hivyo ni nzuri pia kwa Arduino Ngenxa na bodi zingine za maendeleo za voltage ya chini. Kabla ya kuendelea zaidi, tafadhali pakua karatasi ya data (pdf) kwani itakuwa muhimu na inajulikana wakati wa mafunzo haya. ADS1110 inakupa fursa ya ADC sahihi zaidi kuliko inayotolewa na ADCs 10-bit za Arduino - na ni rahisi kutumia. Walakini inapatikana tu kama sehemu tupu katika SOT23-6.

Hatua ya 1:

Picha
Picha

Habari njema ni kwamba unaweza kuagiza ADS1110 iliyowekwa kwenye bodi ya kuzuka rahisi sana. ADS1110 hutumia basi ya I2C kwa mawasiliano. Na kwa kuwa kuna pini sita tu huwezi kuweka anwani ya basi - badala yake, unaweza kuchagua kutoka kwa anuwai sita za ADS1110 - kila moja ikiwa na anwani yake (angalia ukurasa wa pili wa karatasi ya data).

Kama unavyoona kwenye picha hapo juu, yetu imewekwa alama "EDO" ambayo inalingana na anwani ya basi 1001000 au 0x48h. Na kwa mizunguko ya mfano tumetumia vizuia-vuta 10kΩ kwenye basi ya I2C.

Unaweza kutumia ADS1110 kama ADC iliyoisha moja au tofauti - Lakini kwanza tunahitaji kuchunguza rejista ya usanidi ambayo hutumiwa kudhibiti sifa anuwai, na rejista ya data.

Hatua ya 2: Usajili wa Usanidi

Fungua ukurasa wa kumi na moja wa karatasi ya data. Rejista ya usanidi ni baiti moja kwa ukubwa, na ADS1110 inapoweka upya kwenye mzunguko wa nguvu - unahitaji kuweka upya rejista ikiwa mahitaji yako ni tofauti na chaguo-msingi. Karatasi ya data inaielezea vizuri kabisa … bits 0 na 1 huamua mipangilio ya faida kwa PGA (kipangezaji cha faida kinachoweza kusanidiwa).

Ikiwa unapima tu voltages au unajaribu, acha hizi kama sifuri kwa faida ya 1V / V. Ifuatayo, kiwango cha data cha ADS1110 kinadhibitiwa na bits 2 na 3. Ikiwa umewasha sampuli endelevu, hii huamua idadi ya sampuli kwa sekunde iliyochukuliwa na ADC.

Baada ya kujaribu baadhi ya Arduino Uno tuligundua maadili yaliyorudishwa kutoka kwa ADC yalikuwa yamezimwa kidogo wakati wa kutumia kiwango cha haraka zaidi, kwa hivyo acha kama 15 SPS isipokuwa inavyotakiwa vinginevyo. Biti 4 huweka ama sampuli inayoendelea (0) au sampuli moja (1). Puuza bits 5 na 6, hata hivyo zinawekwa kama 0.

Mwishowe kidogo 7 - ikiwa uko katika hali ya sampuli moja, kuiweka kwa maombi 1 ya sampuli - na kuisoma itakuambia ikiwa data iliyorudishwa ni mpya (0) au ya zamani (1). Unaweza kuangalia kuwa kipimo kilichopimwa ni dhamana mpya - ikiwa kipengee cha kwanza cha usanidi inayokuja baada ya data ni 0, ni mpya. Ikiwa inarudi 1 ubadilishaji wa ADC haujamaliza.

Hatua ya 3: Sajili ya Takwimu

Kwa kuwa ADS1110 ni ADC ya 16-bit, inarudisha data zaidi ya ka mbili - na kisha ifuate na thamani ya rejista ya usanidi. Kwa hivyo ukiuliza ka tatu, kura nzima inarudi. Takwimu ziko katika fomu ya "mbili inayosaidia", ambayo ni njia ya kutumia nambari zilizosainiwa na binary.

Kubadilisha ka hizi mbili hufanywa na hesabu rahisi. Wakati wa kuchukua sampuli kwa 15 SPS, thamani iliyorudishwa na ADS1110 (sio voltage) iko kati ya -32768 na 32767. Baiti ya juu ya thamani huzidishwa na 256, kisha ikaongezwa kwa baiti ya chini - ambayo huzidishwa na 2.048 na mwishowe umegawanywa na 32768. Usiogope, kwani tunafanya hivyo katika mchoro wa mfano ujao.

Hatua ya 4: Njia ya ADC ya kumaliza moja

Njia ya ADC ya kumaliza moja
Njia ya ADC ya kumaliza moja

Katika hali hii unaweza kusoma voltage ambayo huanguka kati ya sifuri na 2.048 V (ambayo pia hufanyika kuwa voltage ya kumbukumbu iliyojengwa kwa ADS1110). Mzunguko wa mfano ni rahisi (kutoka kwa karatasi ya data).

Usisahau 10kΩ vipinzani vya kuvuta kwenye basi ya I2C. Mchoro ufuatao unatumia ADS1110 katika hali chaguomsingi, na inarudisha tu kipimo cha voltage:

// Mfano 53.1 - Voltmeter ya upande mmoja ya ADS1110 (0 ~ 2.048VDC) # pamoja na "Wire.h" #fafanua matangazo1110 0x48 voltage ya kuelea, data; byte highbyte, lowbyte, configJisajili; kuanzisha batili () {Serial.begin (9600); Wire.begin (); } kitanzi batili () {Wire.requestFrom (ads1110, 3); wakati (Wire.available ()) // hakikisha data zote zinakuja katika {highbyte = Wire.read (); // baiti ya juu * B11111111 lowbyte = Wire.read (); // chini byte configRegister = Wire.read (); }

data = highbyte * 256;

data = data + lowbyte; Serial.print ("Takwimu >>"); Serial.println (data, DEC); Serial.print ("Voltage >>"); voltage = data * 2.048; voltage = voltage / 32768.0; Rangi ya serial (voltage, DEC); Serial.println ("V"); kuchelewesha (1000); }

Hatua ya 5:

Picha
Picha

Mara baada ya kupakiwa, unganisha ishara ili kupima na kufungua mfuatiliaji wa serial - utawasilishwa na kitu sawa na picha ya mfuatiliaji wa serial iliyoonyeshwa katika hatua hii.

Ikiwa unahitaji kubadilisha faida ya kipaza sauti cha ndani kinachoweza kupangwa cha ADC - utahitaji kuandika baiti mpya kwenye rejista ya usanidi ukitumia:

Wire.beginTransmission (ads1110); Wire.write (usanidi baiti); Uwasilishaji wa waya ();

kabla ya kuomba data ya ADC. Hii itakuwa 0x8D, 0x8E au 0x8F kwa faida ya faida ya 2, 4 na 8 mtawaliwa - na tumia 0x8C kuweka ADS1110 tena kwenye msingi.

Hatua ya 6: Njia tofauti ya ADC

Njia tofauti ya ADC
Njia tofauti ya ADC

Katika hali hii unaweza kusoma tofauti kati ya voltages mbili ambazo kila moja huanguka kati ya sifuri na 5 V. Mzunguko wa mfano ni rahisi (kutoka kwa karatasi ya data).

Lazima tugundue hapa (na kwenye karatasi ya data) kwamba ADS1110 haiwezi kukubali voltages hasi kwenye moja ya pembejeo. Unaweza kutumia mchoro uliopita kwa matokeo yale yale - na voltage inayosababisha itakuwa thamani ya Vin - iliyoondolewa kutoka kwa Vin +. Kwa mfano, ikiwa ungekuwa na V 2 kwenye Vin + na 1 V kwenye Vin - voltage inayosababisha itakuwa 1 V (na faida imewekwa 1).

Kwa mara nyingine tena tunatumahi kuwa umepata hii ya kupendeza, na ikiwezekana inafaa. Chapisho hili limeletwa kwako na pmdway.com - kila kitu kwa watengenezaji na wapenda umeme, na uwasilishaji wa bure ulimwenguni.

Ilipendekeza: