Talaan ng mga Nilalaman:

ADXL345 Paggamit ng Arduino Uno R3: 5 Mga Hakbang
ADXL345 Paggamit ng Arduino Uno R3: 5 Mga Hakbang

Video: ADXL345 Paggamit ng Arduino Uno R3: 5 Mga Hakbang

Video: ADXL345 Paggamit ng Arduino Uno R3: 5 Mga Hakbang
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Nobyembre
Anonim
ADXL345 Paggamit ng Arduino Uno R3
ADXL345 Paggamit ng Arduino Uno R3

Sa araling ito, malalaman natin kung paano gamitin ang acceleration sensor ADXL345.

Hakbang 1: Mga Bahagi

- Arduino Uno board * 1

- USB cable * 1

- ADXL345 * 1

- Breadboard * 1

- Mga Jumper wires

Hakbang 2: Prinsipyo

Ginagamit ang isang accelerometer upang masukat ang lakas na nabuo sa panahon ng pagpabilis. Ang pinakamahalaga ay ang kilalang kilalang pagbilis ng gravity na 1g.

Sa pamamagitan ng pagsukat ng acceleration na dulot ng gravity, maaari mong kalkulahin ang anggulo ng ikiling ng aparato sa antas ng ibabaw. Sa pamamagitan ng pag-aaral ng pabago-bagong pagpapabilis, maaari mong sabihin ang paraan kung paano gumagalaw ang aparato. Halimbawa, ang self-balancing board o hoverboard ay naglalapat ng sensor ng acceleration at gyroscope para sa Kalman filter at pagwawasto ng pustura.

ADXL345

Ang ADXL345 ay isang maliit, manipis, mababang lakas, 3-axis accelerometer na may mataas na resolusyon (13-bit) na pagsukat hanggang sa ± 16 g. Ang data ng digital na output ay na-format bilang 16-bit two na pandagdag at maa-access sa pamamagitan ng alinman sa isang SPI (3- o 4-wire) o I2C digital interface. Sa eksperimentong ito, ginagamit ang I2C digital interface.

Ito ay angkop na sukatin upang sukatin ang static na pagpabilis ng gravity sa mga aplikasyon ng pagkiling sa sensing, pati na rin ang pabago-bagong paggalaw na nagreresulta mula sa paggalaw o pagkabigla. Ang mataas na resolusyon (4 mg / LSB) ay nagbibigay-daan sa pagsukat ng pagbabago ng pagkahilig ng mas mababa sa 1.0 °. At ang mahusay na pagiging sensitibo (3.9mg / LSB @ 2g) ay nagbibigay ng isang mataas na katumpakan na output ng hanggang sa ± 16g.

Paano gumagana ang ADXL345

Nakita ng ADXL345 ang pagpabilis ng sangkap ng sensing sa harap, at pagkatapos ay binago ito ng bahagi ng pang-signal ng kuryente sa signal ng electric signal, na kung saan ay analog. Susunod, ang AD adapter na isinama sa module ay babaguhin ang analog signal sa isang digital.

Ang X_OUT, Y_OUT at Z_OUT ay ang mga halaga sa X, Y, at Z axis ayon sa pagkakasunod-sunod. Ilagay ang module sa mukha: Ang Z_OUT ay maaaring umabot sa + 1g ng higit, ang minimum ng X_OUT ay -1g patungo sa direksyon ng Axe, at ang minimum ng Y_OUT ay -1g patungo sa direksyon ng Ay. Sa kabilang banda, baligtarin ang module: ang minimum ng Z_OUT ay -1g, ang maximum na X_OUT ay + 1g patungo sa direksyon ng Axe, at ang maximum ng Y_OUT ay + 1g patungo sa direksyon ng Ay., tulad ng ipinakita sa ibaba. Paikutin ang module ng ADXL345 at makikita mo ang pagbabago ng tatlong mga halaga.

kapag ang channel A ay nagbabago mula sa mataas na antas patungo sa mababang antas, kung ang channel B ay mataas na antas, ipinapahiwatig nito ang rotary encoder na umiikot pakanan (CW); kung sa sandaling iyon ang channel B ay mababa ang antas, nangangahulugan ito ng pag-ikot sa pakaliwa (CCW). Kaya't kung nabasa natin ang halaga ng channel B kapag ang channel A ay mababa ang antas, malalaman natin sa aling direksyon ang rotary encoder na umiikot.

Prinsipyo: Tingnan ang diagram ng eskematiko ng module ng Rotary Encoder sa ibaba. Mula dito maaari nating makita na ang pin 3 ng rotary encoder, katulad ng CLK sa module, ay ang channel B. Pin 5, na kung saan ay DT, ay channel A. Upang malaman ang paikot na direksyon ng recorder, basahin lamang ang halaga ng CLK at DT.

Mayroong isang 3.3v boltahe regulator chip sa circuit, kaya maaari mong powerthe module na may 5V o 3.3V.

Dahil ang SDO ay konektado sa GND, ang I2C address ng ADXL345 ay 0x53, 0xA6 para sa pagsusulat, 0xA7 para basahin

Pin Function ng ADXL345 Module.

Hakbang 3: Mga Pamamaraan

Hakbang 1. Buuin ang circuit.

Hakbang 2:

I-download ang code mula sa

Hakbang 3:

I-upload ang sketch sa Arduino Uno board

I-click ang I-upload na icon upang mai-upload ang code sa control board.

Kung ang "Tapos nang mag-upload" ay lilitaw sa ilalim ng window, nangangahulugan ito na ang sketch ay matagumpay na na-upload.

Pagkatapos mag-upload, buksan ang Serial Monitor, kung saan makikita mo ang napansin na data. Kapag nagbago ang bilis ng modyul, magbabago ang pigura nang naaayon sa window.

Hakbang 4: Code

Code
Code

// ADXL335

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

ADXL335

tala: vcc5v, ngunit ang ADXL335 Vs ay 3.3V

Ang circuit:

5V: VCC

analog 0: x-axis

analog 1: y-axis

analog 2: z-axis

Matapos masunog ang

programa, buksan ang window ng pag-debug ng serial monitor, kung saan maaari mong makita ang napansin na data na ipinapakita. Kapag nag-iiba ang acceleration, ang pigura ay magkakaiba-iba nang naaayon.

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

/ Email:

//Website:www.primerobotics.in

Const int xpin =

A0; // x-axis ng accelerometer

Const int ypin =

A1; // y-axis

Const int zpin =

A2; // z-axis (sa mga modelo ng 3-axis lamang)

walang bisa ang pag-setup ()

{

// ipasimula ang mga serial na komunikasyon:

Serial.begin (9600);

}

walang bisa loop ()

{

int x = analogRead (xpin); // basahin mula sa xpin

antala (1); //

int y = analogRead (ypin); // basahin mula kay ypin

antala (1);

int z = analogRead (zpin); // basahin mula sa zpin

float zero_G = 338.0; // ADXL335 power supply

ni 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 ");

lumutang

zero_Gx = 331.5; // ang zero_G output ng x axis: (x_max + x_min) / 2

lumutang

zero_Gy = 329.5; // ang zero_G outgput ng y axis: (y_max + y_min) / 2

float zero_Gz = 340.0; // the

zero_G output ng z axis: (z_max + z_min) / 2

float scale =

67.6; // power supply ng Vs 3.3V: 3.3v / 5v * 1024 / 3.3v * 330mv / g = 67.6g

float scale_x =

65; // ang sukat ng x axis: x_max / 3.3v * 330mv / g

float scale_y =

68.5; // ang sukat ng y axis: y_max / 3.3v * 330mv / g

float scale_z =

68; // ang sukat ng z axis: z_max / 3.3v * 330mv / g

Serial.print (((float) x

- zero_Gx) / scale_x); // print x halaga sa serial monitor

Serial.print ("\ t");

Serial.print (((float) y

- zero_Gy) / scale_y); // print y halaga sa serial monitor

Serial.print ("\ t");

Serial.print (((float) z

- zero_Gz) / scale_z); // print z halaga sa serial monitor

Serial.print ("\ n");

pagkaantala (1000); // maghintay ng 1 segundo

}

Hakbang 5: Pagsusuri sa Code

Ang code para sa eksperimentong ADXL345 ay may kasamang 3 bahagi: ipasimuno ang bawat port at aparato, kumuha at mag-imbak ng data na ipinadala mula sa mga sensor, at i-convert ang data.

Inirerekumendang: