Բովանդակություն:

Arduino և TI ADS1110 16-բիթանոց ADC ՝ 6 քայլ
Arduino և TI ADS1110 16-բիթանոց ADC ՝ 6 քայլ

Video: Arduino և TI ADS1110 16-բիթանոց ADC ՝ 6 քայլ

Video: Arduino և TI ADS1110 16-բիթանոց ADC ՝ 6 քայլ
Video: Introduction to HT16K33 4 Digit LED Seven Segment Display with Arduino 2024, Դեկտեմբեր
Anonim
Arduino- ն և TI ADS1110 16-բիթանոց ADC- ն
Arduino- ն և TI ADS1110 16-բիթանոց ADC- ն

Այս ձեռնարկում մենք ուսումնասիրում ենք Arduino- ի օգտագործումը Texas Instruments ADS1110- ի հետ աշխատելու համար-աներևակայելի փոքր, բայց օգտակար 16-բիթ անալոգային-թվային փոխարկիչ IC:

Այն կարող է աշխատել 2.7-ից 5.5 Վ լարման միջև, այնպես որ դա լավ է նաև Arduino Due- ի և ցածր լարման զարգացման տախտակների համար: Մինչև որևէ այլ բան շարունակելը, խնդրում ենք ներբեռնեք տվյալների թերթիկը (pdf), քանի որ այն օգտակար կլինի և հղված է այս ձեռնարկի ընթացքում: ADS1110- ը ձեզ տալիս է ավելի ճշգրիտ ADC- ի տարբերակ, քան առաջարկում են Arduino- ի 10-բիթանոց ADC- ները, և այն համեմատաբար հեշտ է օգտագործել: Այնուամենայնիվ, այն հասանելի է միայն որպես մերկ մաս SOT23-6- ում:

Քայլ 1:

Պատկեր
Պատկեր

Լավ նորությունն այն է, որ կարող եք պատվիրել ADS1110- ը, որը տեղադրված է շատ հարմար բեկման տախտակի վրա: ADS1110- ը կապի համար օգտագործում է I2C ավտոբուսը: Եվ քանի որ կա ընդամենը վեց կապ, դուք չեք կարող սահմանել ավտոբուսի հասցեն, փոխարենը կարող եք ընտրել ADS1110- ի վեց տարբերակներից `յուրաքանչյուրն իր հասցեով (տե՛ս տվյալների թերթիկի երկրորդ էջը):

Ինչպես տեսնում եք վերևի լուսանկարում, մերն ունի «EDO» նշանը, որը համընկնում է 1001000 կամ 0x48h ավտոբուսի հասցեների հետ: Իսկ սխեմաների օրինակով մենք օգտագործել ենք 10kΩ ձգվող դիմադրողներ I2C ավտոբուսում:

Դուք կարող եք օգտագործել ADS1110- ը որպես մեկանգամյա կամ դիֆերենցիալ ADC.

Քայլ 2: Կազմաձևման գրանցում

Անցեք տվյալների թերթիկի տասնմեկ էջին: Կազմաձևման գրանցամատյանը մեկ բայթ է, և քանի որ ADS1110- ը վերակայվում է էներգիայի ցիկլի վրա. Անհրաժեշտ է վերականգնել գրանցամատյանը, եթե ձեր կարիքները տարբերվում են կանխադրվածից: Տվյալների թերթիկն այն ներկայացնում է բավականին կոկիկ… 0 և 1 բիթերը որոշում են PGA- ի (ծրագրավորվող շահույթի ուժեղացուցիչ) շահույթի կարգավորումը:

Եթե դուք պարզապես չափում եք լարումները կամ փորձարկում եք, թողեք դրանք զրոյի ՝ 1 Վ/Վ շահույթի համար: Հաջորդը, ADS1110- ի տվյալների արագությունը վերահսկվում է 2 և 3 բիթերով: Եթե անընդհատ ընտրանքը միացված է, դա որոշում է ADC- ի կողմից մեկ վայրկյանում վերցված նմուշների քանակը:

Arduino Uno- ի հետ որոշ փորձարկումներից հետո մենք գտանք, որ ADC- ից վերադարձված արժեքները մի փոքր անջատված էին ամենաարագ տեմպը օգտագործելիս, այնպես որ թողեք այն որպես 15 SPS, եթե այլ բան չի պահանջվում: Բիթ 4-ը սահմանում է կամ շարունակական նմուշառում (0), կամ միանվագ նմուշառում (1): Անտեսել 5 -րդ և 6 -րդ բիթերը, սակայն դրանք միշտ սահմանված են որպես 0:

Վերջապես բիթ 7-եթե միանվագ նմուշառման ռեժիմում եք, այն 1-ի սահմանելը պահանջում է նմուշ, և այն կարդալը ձեզ կասի ՝ վերադարձված տվյալները նոր են (0) կամ հին (1): Կարող եք ստուգել, որ չափված արժեքը նոր արժեք է. Եթե տվյալներից հետո եկող կազմաձևման բայտի առաջին բիթը 0 է, այն նոր է: Եթե այն վերադարձնի 1 -ը, ADC- ի փոխարկումը չի ավարտվել:

Քայլ 3: Տվյալների գրանցում

Քանի որ ADS1110- ը 16-բիթանոց ADC է, այն տվյալները վերադարձնում է երկու բայթով, այնուհետև հետևում է կազմաձևման գրանցամատյանի արժեքին: Այսպիսով, եթե երեք բայթ պահանջեք, ամբողջ լոտը հետ է գալիս: Տվյալները գտնվում են «երկուսի լրացման» տեսքով, որը ստորագրված թվերի օգտագործման երկուական մեթոդ է:

Այդ երկու բայթերի փոխարկումը կատարվում է պարզ մաթեմատիկայի միջոցով: 15 SPS- ով նմուշառելիս ADS1110- ի վերադարձած արժեքը (ոչ լարման) ընկնում է -32768 -ից մինչև 32767 -ը: Արժեքի ավելի բարձր բայթը բազմապատկվում է 256 -ով, այնուհետև ավելացվում է ստորին բայթին, որը բազմապատկվում է 2.048 -ով և վերջապես բաժանված է 32768 -ի: Մի խուճապի մատնվեք, քանի որ մենք դա անում ենք առաջիկա օրինակի ուրվագծում:

Քայլ 4: Միակողմանի ADC ռեժիմ

Միակողմանի ADC ռեժիմ
Միակողմանի ADC ռեժիմ

Այս ռեժիմում կարող եք կարդալ զրոյից մինչև 2.048 Վ լարման միջև ընկած լարումը (որը նաև ADS1110- ի ներկառուցված հղման լարումն է): Օրինակային սխեման պարզ է (տվյալների թերթիկից):

Մի մոռացեք I2C ավտոբուսի 10kΩ քաշվող դիմադրիչների մասին: Հետևյալ ուրվագիծը օգտագործում է ADS1110- ը կանխադրված ռեժիմում և պարզապես վերադարձնում է չափված լարումը.

// Օրինակ 53.1 - ADS1110 միակողմանի վոլտմետր (0 ~ 2.048VDC) #ներառել «Wire.h» #սահմանել գովազդներ 1110 0x48 բոց լարման, տվյալներ; բայթ highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // ապահովել, որ բոլոր տվյալները գան {highbyte = Wire.read (); // բարձր բայթ * B11111111 lowbyte = Wire.read (); // ցածր բայթ configRegister = Wire.read (); }

տվյալներ = բարձր բայթ * 256;

տվյալներ = տվյալներ + ցածր բայթ; Serial.print («Տվյալներ >>»); Serial.println (տվյալները, DEC); Serial.print («Լարման >>); լարման = տվյալներ * 2.048; լարման = լարման / 32768.0; Serial.print (լարման, DEC); Serial.println ("V"); ուշացում (1000); }

Քայլ 5:

Պատկեր
Պատկեր

Վերբեռնելուց հետո միացրեք ազդանշանը ՝ սերիական մոնիտորը չափելու և բացելու համար.

Եթե Ձեզ անհրաժեշտ է փոխել ADC- ի ներքին ծրագրավորվող շահույթի ուժեղացուցիչի շահույթը, ապա պետք է նոր բայթ գրեք կազմաձևման գրանցամատյանում ՝ օգտագործելով.

Wire.beginTransmission (ads1110); Wire.write (կոնֆիգուրացիայի բայթ); Wire.endTransmission ();

նախքան ADC- ի տվյալները պահանջելը: Սա կլինի 0x8D, 0x8E կամ 0x8F համապատասխանաբար 2, 4 և 8 արժեքների դեպքում, և օգտագործեք 0x8C ՝ ADS1110- ը լռելյայն վերադարձնելու համար:

Քայլ 6: Դիֆերենցիալ ADC ռեժիմ

Դիֆերենցիալ ADC ռեժիմ
Դիֆերենցիալ ADC ռեժիմ

Այս ռեժիմում կարող եք կարդալ երկու լարման տարբերությունը, որոնք յուրաքանչյուրը ընկնում է զրոյի և 5 Վ -ի միջև: Օրինակային սխեման պարզ է (տվյալների թերթիկից):

Այստեղ պետք է նշենք (և տվյալների թերթիկում), որ ADS1110- ը չի կարող բացասական լարման ընդունել մուտքերից որևէ մեկի վրա: Նույն արդյունքների համար կարող եք օգտագործել նախորդ ուրվագիծը, և արդյունքում ստացված լարումը կլինի Vin+- ից հանված արժեքը: Օրինակ, եթե Vin+- ի և V- ի վրա ունենայի 2 Վ- արդյունքի լարումը կլիներ 1 Վ (շահույթը 1-ով):

Եվս մեկ անգամ հուսով ենք, որ դուք գտել եք սա հետաքրքրող և, հնարավոր է, օգտակար: Այս գրառումը ձեզ է բերել pmdway.com- ը `ամեն ինչ արտադրողների և էլեկտրոնիկայի սիրահարների համար` անվճար առաքում ամբողջ աշխարհով:

Խորհուրդ ենք տալիս: