Агуулгын хүснэгт:

ADXL345 Arduino Uno R3: 5 алхамыг ашиглах
ADXL345 Arduino Uno R3: 5 алхамыг ашиглах

Видео: ADXL345 Arduino Uno R3: 5 алхамыг ашиглах

Видео: ADXL345 Arduino Uno R3: 5 алхамыг ашиглах
Видео: How To Interface ADXL335 Analog Accelerometer Sensor With Arduino 2024, Долдугаар сарын
Anonim
ADXL345 Arduino Uno R3 ашиглах
ADXL345 Arduino Uno R3 ашиглах

Энэ хичээлээр бид ADXL345 хурдатгалын мэдрэгчийг хэрхэн ашиглах талаар сурах болно.

Алхам 1: бүрэлдэхүүн хэсгүүд

- Arduino Uno самбар * 1

- USB кабель * 1

- ADXL345 *1

- Талхны самбар * 1

- Холбогч утас

Алхам 2: зарчим

Хурдасгах явцад үүссэн хүчийг хэмжихийн тулд акселерометр ашигладаг. Хамгийн гол нь хүндийн хүчний хурдатгал буюу 1 гр юм.

Таталцлын хүчээр үүссэн хурдатгалыг хэмжсэнээр та төхөөрөмжийн гадаргуу дээрх хазайлтын өнцгийг тооцоолж болно. Динамик хурдатгалд дүн шинжилгээ хийснээр та төхөөрөмж хэрхэн хөдөлж байгааг хэлж чадна. Жишээлбэл, өөрөө тэнцвэржүүлэгч самбар эсвэл hoverboard нь Калман шүүлтүүр, биеийн байдлыг засахад хурдатгалын мэдрэгч, гироскоп ашигладаг.

ADXL345

ADXL345 нь жижиг, нимгэн, бага чадалтай, 3 тэнхлэг бүхий хурд хэмжигч бөгөөд ± 16 гр хүртэл өндөр нарийвчлалтай (13 битийн) хэмжилттэй. Дижитал гаралтын өгөгдлийг 16 битийн хоёр нэмэлт хэлбэрээр форматлаж, SPI (3 эсвэл 4 утастай) эсвэл I2C дижитал интерфэйсээр дамжуулан авах боломжтой. Энэхүү туршилтанд I2C дижитал интерфэйсийг ашигладаг.

Энэ нь хазайлтыг мэдрэх төхөөрөмж дэх хүндийн хүчний статик хурдатгал, хөдөлгөөн эсвэл цочролоос үүдэлтэй динамик хурдатгалыг хэмжихэд тохиромжтой. Өндөр нарийвчлал (4 мг/LSB) нь хазайлтын өөрчлөлтийг 1.0 хэмээс бага хэмжих боломжийг олгодог. Маш сайн мэдрэмж (3.9mg/LSB @2g) нь ± 16г хүртэл өндөр нарийвчлалтай гаралтыг өгдөг.

ADXL345 хэрхэн ажилладаг талаар

ADXL345 нь урд талын мэдрэгч бүрэлдэхүүн хэсэг бүхий хурдатгалыг илрүүлдэг бөгөөд дараа нь цахилгаан дохио мэдрэгч бүрэлдэхүүн хэсэг нь үүнийг цахилгаан дохио болгон өөрчилдөг. Дараа нь модуль дээр нэгтгэгдсэн AD адаптер нь аналог дохиог дижитал болгон хөрвүүлэх болно.

X_OUT, Y_OUT ба Z_OUT нь тус тусдаа X, Y, Z тэнхлэгт байгаа утга юм. Модулийг дээш харуулан байрлуул: Z_OUT хамгийн ихдээ +1г хүрч чаддаг, X_OUT -ийн хамгийн бага утга нь Ax -ийн чиглэлд -1г, Y_OUT -ийн доод тал нь Ay чиглэлд -1г байна. Нөгөө талаар модулийг дээш нь эргүүлээрэй: Z_OUT -ийн доод тал нь -1г, хамгийн ихдээ X_OUT нь Ax -ийн чиглэлд +1g, хамгийн ихдээ Y_OUT нь Ay чиглэлд +1г байна., доор үзүүлсэн шиг. ADXL345 модулийг эргүүлээд гурван утгын өөрчлөлтийг харах болно.

А суваг нь дээд түвшнээс доод түвшинд шилжих үед, хэрэв В суваг өндөр түвшинд байвал энэ нь эргэдэг кодлогч цагийн зүүний дагуу эргэдэг болохыг харуулж байна (CW); Хэрэв тэр үед В суваг бага түвшинд байвал энэ нь цагийн зүүний эсрэг эргэдэг гэсэн үг юм (CCW). Тиймээс хэрэв бид А суваг бага түвшинд байх үед В сувгийн утгыг уншвал эргэдэг кодлогч ямар чиглэлд эргэж байгааг мэдэх боломжтой болно.

Зарчим: Ротари кодлогч модулийн схемийг доороос үзнэ үү. Эндээс харахад эргэлтэт кодлогчийн 3 -р зүү, тухайлбал модуль дээрх CLK нь B. суваг бөгөөд DT нь 5 -р зүү бөгөөд А суваг юм. Бичлэгийн эргэлтийн чиглэлийг мэдэхийн тулд CLK -ийн утгыг уншиж, DT.

Хэлхээнд 3.3V хүчдэлийн зохицуулагч чип байдаг тул та 5V эсвэл 3.3V хүчдэл бүхий модулийг хүчдэлд оруулах боломжтой.

SDO нь GND -тэй холбогдсон тул ADXL345 -ийн I2C хаяг нь 0x53, 0xA6 бичих, 0xA7 унших боломжтой.

ADXL345 модулийн зүү функц.

Алхам 3: Процедур

Алхам 1. Хэлхээг бий болгох.

Алхам 2:

Кодыг https://github.com/primerobotics/Arduino дээрээс татаж авна уу

Алхам 3:

Ноорог зургийг Arduino Uno самбар дээр байршуулна уу

Кодыг хяналтын самбарт байршуулахын тулд Upload дүрс дээр дарна уу.

Хэрэв цонхны доод талд "Дууссан байршуулалт" гарч ирвэл ноорог амжилттай байршуулагдсан гэсэн үг юм.

Байршуулсны дараа 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 =

А2; // z тэнхлэг (зөвхөн 3 тэнхлэгтэй загвар дээр)

хүчингүй тохиргоо ()

{

// цуваа холболтыг эхлүүлэх:

Цуваа эхлэх (9600);

}

хоосон давталт ()

{

int x = analogRead (xpin); // xpin дээрээс уншина уу

саатал (1); //

int y = analogRead (ypin); // ypin -ээс уншсан

саатал (1);

int z = analogRead (zpin); // zpin дээрээс уншина уу

float zero_G = 338.0; // ADXL335 цахилгаан хангамж

3.3V -ээр: 3.3V/5V*1024 = 676/2 = 338

// Цуврал.хэвлэх (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

хөвөх

zero_Gy = 329.5; // y тэнхлэгийн zero_G гаралт: (y_max + y_min)/2

float zero_Gz = 340.0; // the

z тэнхлэгийн тэг_G гаралт: (z_max + z_min)/2

хөвөх хуваарь =

67.6; // Vs 3.3V -ийн цахилгаан хангамж: 3.3v/5v *1024/3.3v *330mv/g = 67.6g

float scale_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

Цуваа.хэвлэх (((хөвөх) x

- zero_Gx)/scale_x); // цувралын дэлгэц дээр x утгыг хэвлэх

Serial.print ("\ t");

Цуваа.хэвлэх (((хөвөх) y

- zero_Gy)/scale_y); // y утгыг цуваа дэлгэц дээр хэвлэх

Serial.print ("\ t");

Цуваа.хэвлэх (((хөвөх) z

- zero_Gz)/scale_z); // z утгыг цуваа дэлгэц дээр хэвлэх

Serial.print ("\ n");

саатал (1000); // 1 секунд хүлээнэ үү

}

Алхам 5: Кодын шинжилгээ

ADXL345 туршилтын код нь порт, төхөөрөмж бүрийг эхлүүлэх, мэдрэгчээс илгээсэн өгөгдлийг олж авах, хадгалах, өгөгдлийг хөрвүүлэх гэсэн 3 хэсгээс бүрдэнэ.

Зөвлөмж болгож буй: