Акселерометрийг Arduino руу хэрхэн холбох вэ

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

Акселерометрийг Arduino руу хэрхэн холбох вэ
Акселерометрийг Arduino руу хэрхэн холбох вэ

Видео: Акселерометрийг Arduino руу хэрхэн холбох вэ

Видео: Акселерометрийг Arduino руу хэрхэн холбох вэ
Видео: Пишущая ручкой машина робот аналог AxiDraw 2024, Арваннэгдүгээр
Anonim

Энэ удаад бид ADXL335 аналог триаксиаль акселерометрийг Arduino-той холбох талаар ярилцах болно.

Аналог Accelerometer ADXL335
Аналог Accelerometer ADXL335

Шаардлагатай

  • - Ардуино;
  • - хурдасгуур ADXL335;
  • - Arduino IDE хөгжүүлэх орчинтой персонал компьютер.

Зааварчилгаа

1-р алхам

Хурдатгалын векторыг тодорхойлохын тулд хурдасгуур хэмжигчийг ашигладаг. ADXL335 хурдасгуур нь гурван тэнхлэгтэй бөгөөд үүний ачаар гурван хэмжээст орон зайд хурдатгалын векторыг тодорхойлж чаддаг. Хүндийн хүч нь вектор мөн тул хурдасгуур хэмжигч нь дэлхийн төвтэй харьцуулан гурван хэмжээст орон зайд өөрийн чиг баримжаагаа тодорхойлж чаддаг.

Зураг дээр ADXL335 акселерометрийн паспорт (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf) дээрх зургуудыг харуулав. Төхөөрөмжийн их биеийг орон зайд байрлуулах геометрийн байрлалтай холбоотой хурдасгуурын мэдрэмтгий байдлын координатын тэнхлэгүүд, мөн орон зайд чиг баримжаагаас хамааран 3 акселерометрийн сувгийн хүчдэлийн хүснэгтийг энд харуулав. Хүснэгт дэх өгөгдлийг амрах мэдрэгчийн хувьд өгсөн болно.

Акселерометрийн бидэнд юу харуулдагийг нарийвчлан авч үзье. Жишээлбэл, мэдрэгчийг хэвтээ байдлаар, ширээн дээр хэвтүүл. Дараа нь хурдатгалын векторын проекц нь Z тэнхлэгийн дагуу 1g буюу Zout = 1g-тэй тэнцүү байна. Бусад хоёр тэнхлэгүүд нь тэг байх болно: Xout = 0 ба Yout = 0. Мэдрэгчийг "нуруун дээр" эргүүлэхдээ таталцлын вектортой харьцуулахад эсрэг чиглэлд чиглүүлнэ, өөрөөр хэлбэл. Цоолбор = -1г. Үүнтэй адил хэмжилтийг гурван тэнхлэг дээр хийдэг. Акселерометрийг сансарт хүссэн байрлалд байрлуулах боломжтой нь тодорхой тул бид гурван сувгаас тэгээс бусад заалтыг авна.

Хэрэв датчикийг босоо Z тэнхлэгийн дагуу хүчтэй сэгсэрвэл Zout утга нь "1g" -ээс их байна. Хамгийн их хэмжигдэх хурдатгал нь тэнхлэг бүрт дурын чиглэлд "3г" байна (өөрөөр хэлбэл "нэмэх" ба "хасах" хоёулаа).

Акселерометрийн мэдрэмжийн тэнхлэг ба гаралтын утгын хүснэгт
Акселерометрийн мэдрэмжийн тэнхлэг ба гаралтын утгын хүснэгт

Алхам 2

Бид акселерометрийн үйл ажиллагааны зарчмыг олж мэдсэн гэж бодож байна. Одоо холболтын схемийг авч үзье.

ADXL335 аналог хурдасгуур чип нь нэлээд жижиг хэмжээтэй бөгөөд BGA багцад багтдаг тул гэртээ самбар дээр угсрахад хэцүү байдаг. Тиймээс би ADXL335 акселерометр бүхий бэлэн GY-61 модулийг ашиглах болно. Хятадын онлайн дэлгүүрүүд дээрх ийм модулиуд бараг нэг пенни үнэтэй байдаг.

Акселерометрийг асаахын тулд +3, 3 В хүчдэлийг модулийн VCC зүүгээр хангах шаардлагатай. Сенчерийн хэмжих сувгууд нь Arduino-ийн аналог зүүтэй холбогдсон, жишээлбэл "A0", "A1" ба " A2 ". Энэ бол бүхэл бүтэн тойрог юм:)

ADXL335 акселерометрийг Arduno руу холбох схем
ADXL335 акселерометрийг Arduno руу холбох схем

Алхам 3

Энэ ноорогыг Arduino-ийн санах ойд оруулъя. Бид гурван сувгийн аналог оролтын заалтыг уншаад хүчдэл болгон хөрвүүлээд цуваа порт руу гаргана.

Arduino нь 10-битийн ADC-тэй бөгөөд хамгийн их зөвшөөрөгдөх зүүний хүчдэл нь 5 вольт юм. Хэмжилтийн хүчдэлийг 0 ба 1 гэсэн 2 утгыг авах боломжтой битүүдээр кодлогдсон болно. Энэ нь хэмжлийн бүх мужийг (1 + 1) -ээр 10 дахь хүчээр хуваана гэсэн үг юм. 1024 тэнцүү сегмент дээр.

Уншилтыг вольт болгон хөрвүүлэхийн тулд аналог оролт дээр хэмжсэн утга бүрийг 1024 (сегмент) хувааж, дараа нь 5 (вольт) -оор үржүүлэх хэрэгтэй.

Ж-тэнхлэгийг жишээ болгон (сүүлчийн багана) ашиглан хурдасгуур хэмжигдэхүүнээс юу гарч байгааг харцгаая. Мэдрэгчийг хэвтээ байрлалд байрлуулж дээш харуулахад тоо гарч ирнэ (2.03 +/- 0.01). Тэгэхээр энэ нь Z тэнхлэгийн дагуух "+ 1г" хурдатгал ба 0 градусын өнцөгтэй тохирч байх ёстой. Мэдрэгчийг эргүүл. Тоонууд ирдэг (1, 69 +/- 0, 01), "-1g" ба 180 градусын өнцөгтэй тохирч байх ёстой.

Акселерометр унших ноорог
Акселерометр унших ноорог

Алхам 4

Акселерометрээс 90 ба 270 градусын өнцгөөс утгыг аваад хүснэгтэд оруулъя. Хүснэгтэд акселерометрийн эргэлтийн өнцгүүд ("А" багана) ба харгалзах Zout утгыг вольтоор ("Б" багана) харуулав.

Тодорхой болгохын тулд Zout гаралтын хүчдэлийн эргэлтийн өнцгийг харуулав. Цэнхэр талбар нь амралтын муж (1г хурдатгалтай үед). График дээрх ягаан хайрцаг нь ирмэг бөгөөд бид хурдатгалыг + 3г ба -3г хүртэл хэмжих боломжтой болно.

90 градусын эргэлт дээр Z тэнхлэг тэг хурдатгалтай байна. Тэд. 1.67 вольтын утга нь Z тэнхлэгийн нөхцөлт тэг Zo бөгөөд дараахь хурдатгалыг олох боломжтой.

g = Zout - Zo / мэдрэмжийн_z, энд Zout нь милливольтоор хэмжигдэх утга, Zo нь милливольт дахь тэг хурдатгалын утга, мэдрэмжийн_z нь Z тэнхлэгийн дагуух мэдрэгчийн мэдрэмж юм. Акселерометрийг тохируулж, мэдрэмжийн утгыг томъёог ашиглан мэдрэгч:

мэдрэмж_z = [Z (0 градус) - Z (90 градус)] * 1000. Энэ тохиолдолд Z тэнхлэгийн дагуух акселерометрийн мэдрэмж = (2, 03 - 1, 68) * 1000 = 350 мВ болно. Үүнтэй адил X ба Y тэнхлэгийн хувьд мэдрэмжийг тооцоолох шаардлагатай болно.

Хүснэгтийн "С" баганад таван өнцөгт 350-ийн мэдрэмжтэйгээр тооцсон хурдатгалыг харуулав. Эдгээр нь Зураг 1-т үзүүлсэнтэй бараг давхцаж байгааг харуулж байна.

Акселерометрийн эргэлтийн өнцгийн заалтуудтай тохирч байгаа байдал
Акселерометрийн эргэлтийн өнцгийн заалтуудтай тохирч байгаа байдал

Алхам 5

Геометрийн үндсэн хичээлийг санаж, бид акселерометрийн эргэлтийн өнцгийг тооцоолох томъёог олж авна.

angle_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].

Утга нь радиан дээр байна. Тэднийг градус болгон хөрвүүлэхийн тулд Pi-д хувааж 180-аар үржүүлнэ.

Үүний үр дүнд акселерометрийн бүх тэнхлэгийн дагуух хурдатгал ба эргэлтийн өнцгийг тооцоолох бүдүүвч зургийг зураг дээр харуулав. Тайлбарууд нь програмын кодын тайлбарыг өгдөг.

"Serial.print ()" порт руу гарахад "\ t" тэмдэгт нь табын тэмдэгтийг зааж, баганууд тэгш, утгууд нь нөгөөгийнхөө доор байрлана. "+" гэдэг нь мөрүүдийг нэгтгэх (нэгтгэх) гэсэн утгатай. Үүнээс гадна "String ()" оператор нь хөрвүүлэгчд тоон утгыг мөр болгон хөрвүүлэх ёстойг тодорхой зааж өгдөг. Дугуй () оператор нь буланг 1 градусын нарийвчлалтайгаар дугуйруулна.

Акселерометрийн хурдатгал ба өнцгийг тооцдог ноорог
Акселерометрийн хурдатгал ба өнцгийг тооцдог ноорог

Алхам 6

Тиймээс бид Arduino ашиглан ADXL335 аналоги акселерометрээс хэрхэн мэдээлэл авах, боловсруулах талаар сурч мэдсэн. Одоо бид акселерометрийг зураг төсөлдөө ашиглах боломжтой боллоо.

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