Акселерометрди Arduinoго кантип туташтырса болот

Мазмуну:

Акселерометрди Arduinoго кантип туташтырса болот
Акселерометрди Arduinoго кантип туташтырса болот

Video: Акселерометрди Arduinoго кантип туташтырса болот

Video: Акселерометрди Arduinoго кантип туташтырса болот
Video: Проект на Arduino - 029 - Значения акселерометра X Y Z преобразуем в градусы - транспортир 2024, Май
Anonim

Бул жолу биз ADXL335 аналогдук триаксиалдык акселерометрин Arduinoго туташтыруу менен алектенебиз.

Аналогдук Accelerometer ADXL335
Аналогдук Accelerometer ADXL335

Зарыл

  • - Arduino;
  • - акселерометр 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. Датчикти "артка" бурганда, ал тартылуу векторуна салыштырмалуу тескери багытта багытталат, б.а. Zout = -1g. Ошо сыяктуу эле, үч огунда тең өлчөөлөр жүргүзүлөт. Акселерометрди мейкиндикте каалагандай жайгаштырууга болору анык, ошондуктан үч каналдан тең нөлдөн башка көрсөткүчтөрдү алабыз.

Эгер зонд тик Z огу боюнча катуу силкинсе, Zout мааниси "1g" ден чоң болот. Максималдуу өлчөнүүчү ылдамдануу ар кандай багытта болгон октордун ар биринде "3g" (б.а. "плюс" жана "минус" менен экөө тең).

Акселерометрдин сезгичтик октору жана чыгуунун маанилеринин таблицасы
Акселерометрдин сезгичтик октору жана чыгуунун маанилеринин таблицасы

2-кадам

Менимче, биз акселерометрдин иштөө принцибин аныктадык. Эми байланыш схемасын карап көрөлү.

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

Акселерометрди кубаттоо үчүн +3, 3 В чыңалуусун модулдун VCC пинине берүү керек. Датчиктин өлчөө каналдары Arduino аналогдук казыктарына туташкан, мисалы, "A0", "A1" жана " A2 ". Бул бүт схема:)

ADXL335 акселерометринин Ардуного туташтыруу схемасы
ADXL335 акселерометринин Ардуного туташтыруу схемасы

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 - милливольттогу нөлдүк ылдамдануудагы маани, Sensoriz_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 ()" оператору түзүлүп, түзүүчүгө сандык маанини сапка айлантуу керектигин айтат. Round () оператору бурчун 1 градуска чейин тегеректейт.

Акселерометрдин ылдамдануусун жана бурчтарын эсептеген эскиз
Акселерометрдин ылдамдануусун жана бурчтарын эсептеген эскиз

6-кадам

Ошентип, биз Arduino колдонуп ADXL335 аналогдук акселерометринен маалыматтарды кандайча алууну жана иштетүүнү үйрөндүк. Эми биз акселерометрди долбоорлорубузда колдоно алабыз.

Сунушталууда: