Акселерометрді Arduino-ға қалай қосуға болады

Мазмұны:

Акселерометрді Arduino-ға қалай қосуға болады
Акселерометрді Arduino-ға қалай қосуға болады

Бейне: Акселерометрді Arduino-ға қалай қосуға болады

Бейне: Акселерометрді Arduino-ға қалай қосуға болады
Бейне: Установка Arduino ide на Win/Mac - Вики учебник Arduino/Ardublock 2024, Мамыр
Anonim

Бұл жолы біз ADXL335 аналогтық үш оксиалды акселерометрін Arduino-ға қосумен айналысамыз.

Аналогты акселерометр ADXL335
Аналогты акселерометр 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 вольт. Өлшенген кернеулер тек 2 мәнді қабылдай алатын биттермен кодталады - 0 немесе 1. Бұл барлық өлшеу диапазоны (1 + 1) -ге 10-шы қуатқа бөлінетіндігін білдіреді, яғни. 1024 тең сегменттерде.

Көрсеткіштерді вольтқа айналдыру үшін аналогтық кірісте өлшенген әрбір мәнді 1024-ке (сегменттерге) бөліп, содан кейін 5-ке көбейту керек (вольт).

Мысал ретінде Z осін қолдана отырып, акселерометрден ненің пайда болатынын көрейік (соңғы баған). Датчик көлденең орналасып, жоғары қараған кезде сандар шығады (2.03 +/- 0.01). Демек, бұл Z осі бойымен «+ 1g» үдеуіне және 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 аналогтық акселерометрінен мәліметтерді алу және өңдеуді үйрендік. Енді біз акселерометрді өз дизайнымызда қолдана аламыз.

Ұсынылған: