Բովանդակություն:
- Քայլ 1:
- Քայլ 2: Կազմաձևման գրանցում
- Քայլ 3: Տվյալների գրանցում
- Քայլ 4: Միակողմանի ADC ռեժիմ
- Քայլ 5:
- Քայլ 6: Դիֆերենցիալ ADC ռեժիմ
Video: Arduino և TI ADS1110 16-բիթանոց ADC ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս ձեռնարկում մենք ուսումնասիրում ենք 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 ռեժիմ
Այս ռեժիմում կարող եք կարդալ զրոյից մինչև 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 ռեժիմ
Այս ռեժիմում կարող եք կարդալ երկու լարման տարբերությունը, որոնք յուրաքանչյուրը ընկնում է զրոյի և 5 Վ -ի միջև: Օրինակային սխեման պարզ է (տվյալների թերթիկից):
Այստեղ պետք է նշենք (և տվյալների թերթիկում), որ ADS1110- ը չի կարող բացասական լարման ընդունել մուտքերից որևէ մեկի վրա: Նույն արդյունքների համար կարող եք օգտագործել նախորդ ուրվագիծը, և արդյունքում ստացված լարումը կլինի Vin+- ից հանված արժեքը: Օրինակ, եթե Vin+- ի և V- ի վրա ունենայի 2 Վ- արդյունքի լարումը կլիներ 1 Վ (շահույթը 1-ով):
Եվս մեկ անգամ հուսով ենք, որ դուք գտել եք սա հետաքրքրող և, հնարավոր է, օգտակար: Այս գրառումը ձեզ է բերել pmdway.com- ը `ամեն ինչ արտադրողների և էլեկտրոնիկայի սիրահարների համար` անվճար առաքում ամբողջ աշխարհով:
Խորհուրդ ենք տալիս:
Ինչպես դարձնել ADC- ի ընթացիկ իմաստը `5 քայլ
Ինչպես դարձնել ADC- ի ընթացիկ իմաստը: Այս հրահանգում մենք նկարագրելու ենք, թե ինչպես SLG46855V- ում ներդնել 8-բիթ անալոգային-թվային փոխարկիչ (ADC), որը կարող է զգալ բեռնվածքի հոսանքը և ինտերֆեյսը MCU- ի միջոցով I2C- ի միջոցով: Այս դիզայնը կարող է օգտագործվել տարբեր զգայուն ծրագրերի համար, ինչպիսիք են ՝
7 հատված ՝ Display ADC #Arduino Values, #Ardduino ՝ 4 քայլ
7 հատված `Display ADC #Arduino Values, #Ardduino. Այս հոդվածում ես կկազմեմ նախագիծ, որը դեռևս կապված է նախորդ հոդվածի հետ: Այսինքն ՝ ADC տվյալների մշակումը: այնպես որ, adc տվյալների արժեքը տեսնելու համար ձեզ հարկավոր չէ սերիական մոնիտոր: Այս հոդվածում ես կցուցադրեմ ADC Value դիտիչի ցուցադրում: ուրեմն դու
Կարդացեք ADC- ի արժեքները պոտենցիոմետրերից `4 քայլ
Կարդացեք ADC- ի արժեքները պոտենցիոմետրերից. Այս հոդվածում ես ձեզ ցույց կտամ, թե ինչպես կարդալ ADC- ի արժեքները պոտենցիոմետրից: սա Arduino ծրագրավորման հիմքն է: որը կարդում է անալոգային արժեքները ՝ օգտագործելով Arduino- ի տրամադրած Անալոգային քորոցը: բացի հզորության օգտագործումից, կան մի քանի տվիչներ, որոնք
Arduino և PCF8591 ADC DAC IC: 7 քայլ
Arduino և PCF8591 ADC DAC IC. Երբևէ ցանկացե՞լ եք ձեր Arduino նախագծի ավելի շատ անալոգային մուտքային կապեր, բայց չցանկացաք Mega- ի համար: Կամ կցանկանայի՞ք անալոգային ազդանշաններ առաջացնել: Այնուհետև ստուգեք մեր ձեռնարկի թեման ՝ NXP PCF8591 IC- ն: Այն լուծում է այս երկու խնդիրները
Նվագարկեք երգեր Arduino- ի միջոցով ՝ օգտագործելով ADC- ը PWM- ին Flyback Transformer- ի կամ բարձրախոսի վրա. 4 քայլ
Երգեր Arduino- ի միջոցով օգտագործելով ADC- ը PWM- ին Flyback Transformer- ի կամ խոսնակի վրա. Բարև տղերք, սա իմ մյուս ուսանելի (սա շատ դժվար էր) երկրորդ մասն էր: Հիմնականում, այս նախագծում ես օգտագործել եմ ADC- ն և TIMERS- ը իմ Arduino- ում աուդիո ազդանշանը վերածել PWM ազդանշանի: Սա շատ ավելի հեշտ է, քան իմ նախորդ հրահանգը