цифровая электроника
вычислительная техника
встраиваемые системы

 



Arduino и акселерометр MMA7455: подключение и программирование

Автор: Mike(admin) от 17-01-2024, 03:55

Для Arduino сегодня можно найти немало акселерометров на рынке, которые позволят измерять ускорение. Но сегодня мы познакомимся с еще одним – MMA7455, который также выпускается в составе специального модуля для удобной интеграции в экосистему Arduino.


Arduino и акселерометр MMA7455: подключение и программирование

Это недорогой модуль, который может измерять ускорение по трем осям. Кроме того, его можно использовать для измерения наклона объекта по двум осям путем определения направления силы тяжести Земли.


Для работы с модулем достаточно подключить к Arduino всего четыре его контакта.


Arduino и акселерометр MMA7455: подключение и программирование

GND – к GND платы Arduino


VCC – к +5 V платы Arduino (этот модуль имеет встроенный регулятор 3,3 В)


SCL – к линии A5 платы Arduino (или контакту SCL у Arduino Mega)


SDA – к линии A4 платы Arduino (или контакту SDA Arduino Mega)


Библиотеку MMA7455 для Arduino можно взять с https://code.google.com/archive/p/mma-7455-arduino-library/downloads. После установки библиотеки в Arduino IDE скопируйте следующий код и загрузите его на плату Arduino.



#include <Wire.h>
#include <MMA_7455.h>

MMA_7455 mySensor = MMA_7455();

char xVal, yVal, zVal;

void setup()
{
  Serial.begin(9600);
  delay(500);
  Serial.println("MMA7455 Accelerometer Test");
  // Настройте нужную чувствительность.
  // 2 = 2g, 4 = 4g, 8 = 8g
  mySensor.initSensitivity(2);
/* Откалибруйте смещение. Откалибруйте в плоском положении, постарайтесь получить:
    xVal = 0, yVal = 0, zVal = +63 (1 G)
   !!!Активируйте это после считывания первых значений!!!
   Предложение: запустите это со смещениями = 0,0,0 и увидите необходимую коррекцию
*/
  // mySensor.calibrateOffset(0,0,0); // Раскомментируйте для первой попытки найти смещение
  // mySensor.calibrateOffset(-5.0, 13.0, -12.0); // Затем раскомментируйте и используйте это

}

void loop() 
{
  xVal = mySensor.readAxis('x'); // Считывание по оси 'x'
  yVal = mySensor.readAxis('y'); // Считывание по оси 'y'
  zVal = mySensor.readAxis('z'); // Считывание по оси 'z'
  Serial.print("X = ");
  Serial.print(xVal, DEC);
  Serial.print("   Y = ");
  Serial.print(yVal, DEC);
  Serial.print("   Z = ");
  Serial.println(zVal, DEC);
  delay(1000);
/*--( Показать наклон [подразумевается, что устройство откалибровано] )----*/
  if (xVal < -20) Serial.println("Tilted LEFT");
  if (xVal >  20) Serial.println("Tilted RIGHT");
  if (yVal < -20) Serial.println("Tilted TOWARDS");
  if (yVal >  20 ) Serial.println("Tilted AWAY");
  if (zVal < -45 ) Serial.println("UPSIDE DOWN!");
}

Откройте последовательный монитор. Держите модуль ровно, как на следующем изображении.


Arduino и акселерометр MMA7455: подключение и программирование

Вы увидите примерно такой результат:



MMA7455 Accelerometer Test
X = -5   Y = -26   Z = 67
X = -4   Y = -26   Z = 67

Наклон модуля влево-вправо – это ось X, приближение – ось Y. По направлению верх-низ находится ось Z, на которой из-за гравитации Земли будет 1 G. Тестовый скетч также подскажет, в какую сторону наклонится модуль, если его наклонить.




© digitrode.ru


Теги: Arduino, акселерометр, MMA7455




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий