Orodha ya maudhui:
- Hatua ya 1:
- Hatua ya 2: Usajili wa Usanidi
- Hatua ya 3: Sajili ya Takwimu
- Hatua ya 4: Njia ya ADC ya kumaliza moja
- Hatua ya 5:
- Hatua ya 6: Njia tofauti ya ADC
Video: Arduino na TI ADS1110 16-bit ADC: 6 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
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:
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
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:
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
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:
Jinsi ya kutengeneza hisia za sasa za ADC: Hatua 5
Jinsi ya kutengeneza hisia za sasa za ADC: Katika Agizo hili tutaelezea jinsi ya kutekeleza kibadilishaji cha 8-bit analog-to-digital (ADC) katika SLG46855V ambayo inaweza kuhisi mzigo wa sasa na kiunga na MCU kupitia I2C. Ubunifu huu unaweza kutumika kwa matumizi anuwai ya sasa ya kuhisi kama
Sehemu ya 7 ya kuonyesha Maadili ya ADC #Arduino, #Arduino: Hatua 4
Sehemu ya 7 ya Onyesha Thamani za ADC #Arduino, #Arduino: Katika nakala hii nitafanya mradi ambao bado unahusiana na nakala iliyopita. Yaani kusindika data ya ADC. Kwa hivyo hauitaji mfuatiliaji wa serial kuona thamani ya data ya adc. katika nakala hii nitafanya onyesho la mtazamaji wa Thamani ya ADC. kwa hivyo huna
Soma Maadili ya ADC Kutoka kwa Potentiometers: 4 Hatua
Soma Maadili ya ADC Kutoka kwa Potentiometers: Katika nakala hii nitakuonyesha jinsi ya kusoma maadili ya ADC kutoka kwa potentiometer. Huu ndio msingi wa programu ya Arduino. ambayo inasoma maadili ya analojia kwa kutumia pini ya Analog iliyotolewa na Arduino.badala ya kutumia potentio, kuna sensorer kadhaa ambazo
Arduino na PCF8591 ADC DAC IC: Hatua 7
Arduino na PCF8591 ADC DAC IC: Je! Umewahi kutaka pini zaidi za pembejeo za analog kwenye mradi wako wa Arduino, lakini hautaki kutafuta Mega? Au ungependa kutoa ishara za analog? Kisha angalia mada ya mafunzo yetu - NXP PCF8591 IC. Inasuluhisha shida hizi zote
Cheza Nyimbo na Arduino Kutumia ADC kwa PWM kwenye Flyback Transformer au Spika: Hatua 4
Cheza Nyimbo na Arduino Kutumia ADC kwa PWM kwenye Flyback Transformer au Spika: Hello Guys, Hii ni sehemu ya pili ya mwingine anayefundishwa (ambayo ilikuwa ngumu sana), Kimsingi, Katika Mradi huu, nimetumia ADC na TIMERS kwenye Arduino yangu kwenda kubadilisha Saini ya Sauti kuwa Ishara ya PWM. Hii ni rahisi zaidi kuliko Maagizo yangu ya awali