
MMA7361L е сензор за измерване на ускорението по 3 оси X, Y и Z. Тъй като е малък и труден за използване от начинаещи, фирмата Pololu го предлага запоен върху брейкаут борд с вграден регулатор, който позволява сензорът да се захрани с напрежение до 16V на пина VIN. Информация за ускоренията по 3те оси, сензорът връща като 3 аналогови напрежения.
Когато сензорът се намира в покой, изходното напрежение за всяка ос е наполовина на захранващото. Когато ускорението е в положителна посока, напрежението нараства, а когато е в обратната посока намалява. Положителните посоки са означени на самата платка.

Всеки от пиновете означени с X, Y и Z се свързва към аналогов вход на микроконтролер, през интегрираща RC верига.
Пример
В дадения пример Arduino получава информация за ускорението по 3те оси от аналоговите входове A0, A1 и A2. Стойността за всяка ос се извежда в Serial Monitor.

Сензорът се свързва по следната схема.
Използвани са 3 резистора от 10k и 3 кондензатора по 10uF, на които минусите им са свързани към маса. Пин X се свързва към A0, Y към А1 и Z към А2. Пин 3V3 се свързва към пин 3.3V на Arduino, a GND е съответно към GND.
Кода който трябва да се зареди на Arduino е следният:
/*
Описание:
* Получава информация от сензора през 3 аналогови входа
* Извежда стойността за всяка ос в Serial Monitor
Свързване:
* X -> A0
* Y -> A1
* Z -> A2
* Tihomir Trifonov (09-2011)
* email:tisho@inbox.com
* с подкрепата на Robotev.com
*/
//// вдодове за сигналите от 3те оси
int XPin = A0; // X
int YPin = A1; // Y
int ZPin = A2; // Z
//// променливи за 3те стойности
int valX = 0;
int valY = 0;
int valZ = 0;
void setup() { // начални инициализации
Serial.begin(9600); // стартира серийна комуникация
}
void loop() { // програмен цикъл
//// получава данните за X, Y и Z осите
valX = analogRead(XPin);
valY = analogRead(YPin);
valZ = analogRead(ZPin);
//// Извежда данните в Serial Monitor
Serial.print("X-");
Serial.print(valX);
Serial.print(" Y-");
Serial.print(valY);
Serial.print(" Z-");
Serial.print(valZ);
Serial.print("\n");
delay(100); // изчаква 100ms
}
|