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 } |