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

ADXL345 օգտագործելով Arduino Uno R3: 5 քայլ
ADXL345 օգտագործելով Arduino Uno R3: 5 քայլ

Video: ADXL345 օգտագործելով Arduino Uno R3: 5 քայլ

Video: ADXL345 օգտագործելով Arduino Uno R3: 5 քայլ
Video: How to Interface ADXL345 Accelerometer with Arduino UNO 2024, Հուլիսի
Anonim
ADXL345 օգտագործելով Arduino Uno R3- ը
ADXL345 օգտագործելով Arduino Uno R3- ը

Այս դասում մենք կսովորենք, թե ինչպես օգտագործել ADXL345 արագացման տվիչը:

Քայլ 1: Բաղադրիչներ

- Arduino Uno տախտակ * 1

- USB մալուխ * 1

- ADXL345 *1

- Հացաթուղթ * 1

- Jumper լարերը

Քայլ 2: Սկզբունք

Արագացուցիչը օգտագործվում է արագացման ընթացքում առաջացած ուժը չափելու համար: Առավել հիմնարարը սովորաբար հայտնի ծանրության արագացումն է, որը 1 գ է:

Ձգողականության հետևանքով առաջացած արագացումը չափելով ՝ կարող եք հաշվարկել սարքի թեքության անկյունը դեպի հարթ մակերևույթ: Դինամիկ արագացման վերլուծության միջոցով դուք կարող եք ասել, թե ինչպես է սարքը շարժվում: Օրինակ, ինքնահավասարակշռող տախտակը կամ hoverboard- ը կիրառում են արագացման սենսորը և գիրոսկոպը Կալմանի ֆիլտրի և կեցվածքի ուղղման համար:

ADXL345

ADXL345- ը փոքր, բարակ, ցածր հզորության, 3 առանցքի արագացուցիչ է ՝ բարձր լուծաչափով (13 բիթ) չափմամբ մինչև ± 16 գ: Թվային ելքային տվյալները ձևաչափվում են որպես 16-բիթ երկուսի լրացում և հասանելի են կամ SPI (3- կամ 4-մետաղալար) կամ I2C թվային ինտերֆեյսի միջոցով: Այս փորձարկումում օգտագործվում է I2C թվային ինտերֆեյսը:

Հարմար է չափել թեքության զգայարանների ձգողության ստատիկ արագացումը, ինչպես նաև շարժման կամ հարվածի հետևանքով առաջացած դինամիկ արագացումը: Դրա բարձր լուծաչափը (4 մգ/LSB) թույլ է տալիս թեքության փոփոխության չափումը 1.0 ° -ից պակաս: Իսկ գերազանց զգայունությունը (3.9 մգ/LSB @2 գ) ապահովում է մինչև 16 գ high բարձր ճշգրտության արտադրանք:

Ինչպես է աշխատում ADXL345- ը

ADXL345- ը հայտնաբերում է արագացումը առջևի զգայուն բաղադրիչով, այնուհետև էլեկտրական ազդանշանի զգայիչ բաղադրիչը այն փոխում է էլեկտրական ազդանշանի, որն անալոգային է: Հաջորդը, մոդուլի վրա ինտեգրված AD ադապտերը անալոգային ազդանշանը կփոխակերպի թվայինի:

X_OUT, Y_OUT և Z_OUT արժեքները համապատասխանաբար X, Y և Z առանցքներում են: Մոդուլը դրեք վերև. Z_OUT- ը կարող է հասնել առավելագույնը +1 գ -ի, X_OUT- ի նվազագույնը -1 գ է Ax- ի ուղղությամբ, իսկ Y_OUT- ի նվազագույնը `-1g դեպի Ay ուղղությամբ: Մյուս կողմից, մոդուլը գլխիվայր շրջեք. Z_OUT- ի նվազագույնը -1 գ է, առավելագույնը X_OUT- ը +1g է Ax- ի ուղղությամբ, իսկ Y_OUT- ի առավելագույնը +1g դեպի Ay ուղղությամբ:, ինչպես ցույց է տրված ստորև: Պտտեք ADXL345 մոդուլը և կտեսնեք երեք արժեքների փոփոխություն:

երբ ալիքը բարձր մակարդակից փոխվում է ցածր մակարդակի, եթե B ալիքը բարձր մակարդակի է, դա ցույց է տալիս, որ պտտվող կոդավորիչը պտտվում է ժամացույցի սլաքի ուղղությամբ (CW); եթե այդ պահին B ալիքը ցածր մակարդակի է, նշանակում է պտտվում է ժամացույցի սլաքի հակառակ ուղղությամբ (CCW): Այսպիսով, եթե կարդանք B ալիքի արժեքը, երբ A ալիքը ցածր մակարդակի վրա է, կարող ենք իմանալ, թե որ ուղղությամբ է պտտվում պտտվող կոդավորիչը:

Սկզբունք. Ստորև տեսեք Ռոտարի կոդավորիչի մոդուլի սխեմատիկ դիագրամը: Դրանից մենք կարող ենք տեսնել, որ պտտվող կոդավորիչի 3 -րդ կապը, այն է ՝ CLK մոդուլը, B. ալիքն է: Pin 5 -ը, որը DT- ն է, ալիքն է: Ձայնագրիչի պտտման ուղղությունը իմանալու համար պարզապես կարդացեք CLK- ի արժեքը և ԴՏ

Շղթայում կա 3.3 վ լարման կարգավորիչ չիպ, այնպես որ կարող եք միացնել մոդուլը 5 Վ կամ 3.3 Վ լարման միջոցով:

Քանի որ SDO- ն միացված է GND- ին, ADXL345- ի I2C հասցեն 0x53 է, 0xA6 ՝ գրելու համար, 0xA7 ՝ կարդալու համար

ADXL345 մոդուլի Pin գործառույթը:

Քայլ 3: Ընթացակարգեր

Քայլ 1. Կառուցեք շրջանը:

Քայլ 2:

Ներբեռնեք կոդը https://github.com/primerobotics/Arduino կայքից

Քայլ 3:

Վերբեռնեք ուրվագիծը Arduino Uno տախտակին

Կտտացրեք Վերբեռնման պատկերակին ՝ կոդը կառավարման տախտակին վերբեռնելու համար:

Եթե «Կատարված բեռնումը» հայտնվում է պատուհանի ներքևում, նշանակում է, որ ուրվագիծը հաջողությամբ բեռնվել է:

Վերբեռնելուց հետո բացեք Serial Monitor, որտեղ կարող եք տեսնել հայտնաբերված տվյալները: Երբ մոդուլի արագացումը փոխվում է, պատկերը համապատասխանաբար կփոխվի պատուհանի վրա:

Քայլ 4: Կոդ

Կոդ
Կոդ

// ADXL335

/********************************

ADXL335

նշում `vcc5v, բայց ADXL335 Vs- ը 3.3V է

Շղթա.

5V: VCC

անալոգային 0: x առանցք

անալոգ 1: y առանցք

անալոգ 2: z առանցք

Այրվելուց հետո

ծրագիրը, բացեք սերիական մոնիտորի կարգաբերման պատուհանը, որտեղ կարող եք տեսնել ցուցադրված տվյալների ցուցադրումը: Երբ արագացումը տատանվում է, ցուցանիշը համապատասխանաբար կփոխվի:

*********************************

/Էլ. Փոստ:

// Վեբ կայք: www.primerobotics.in

const int xpin =

A0; // արագացուցիչի x- առանցքը

const int ypin =

A1; // y առանցք

const int zpin =

A2; // z առանցք (միայն 3 առանցքի մոդելների դեպքում)

դատարկ կարգավորում ()

{

// սերիալային հաղորդակցությունների նախաստորագրում.

Serial.begin (9600);

}

դատարկ շրջան ()

{

int x = analogRead (xpin); // կարդալ xpin- ից

ուշացում (1); //

int y = analogRead (ypin); // կարդալ ypin- ից

ուշացում (1);

int z = analogRead (zpin); // կարդալ zpin- ից

բոց zero_G = 338.0; // ADXL335 էլեկտրամատակարարում

Vs 3.3V- ի կողմից `3.3V/5V*1024 = 676/2 = 338

//Serial.print(x);

//Serial.print("\t ");

//Serial.print(y);

//Serial.print("\t ");

//Serial.print(z);

//Serial.print("\n ");

բոց

zero_Gx = 331.5; // x առանցքի zero_G ելքը `(x_max + x_min)/2

բոց

զ_Gy = 329.5; // y առանցքի զրոյական ելքը `(y_max + y_min)/2

float zero_Gz = 340.0; // the

զ առանցքի զ առանցքի ելք ՝ (z_max + z_min)/2

բոց սանդղակ =

67.6; // էլեկտրամատակարարում Vs 3.3V- ով `3.3v/5v *1024/3.3v *330mv/g = 67.6g

բոց սանդղակ_ x =

65; // x առանցքի մասշտաբը `x_max/3.3v*330mv/g

float scale_y =

68.5; // y առանցքի մասշտաբը `y_max/3.3v*330mv/g

float scale_z =

68; // z առանցքի մասշտաբը ՝ z_max/3.3v*330mv/g

Serial.print (((float) x

- zero_Gx)/scale_x); // տպել x արժեքը սերիական մոնիտորի վրա

Serial.print ("\ t");

Serial.print (((float) y

- zero_Gy)/scale_y); // տպել y արժեքը սերիական մոնիտորի վրա

Serial.print ("\ t");

Serial.print (((float) z

- zero_Gz)/scale_z); // տպել z արժեքը սերիական մոնիտորի վրա

Serial.print ("\ n");

ուշացում (1000); // սպասեք 1 վայրկյան

}

Քայլ 5: Կոդի վերլուծություն

ADXL345 փորձի ծածկագիրը ներառում է 3 մաս. Սկզբնականացնել յուրաքանչյուր նավահանգիստ և սարք, ձեռք բերել և պահպանել տվիչներից ուղարկված տվյալները և փոխակերպել տվյալները:

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