Отправляем напрямую из Москвы за 3-4 дня

WhatsApp, Telegram, Viber
пн - пт: 10:00 – 20.00

Трехосный акселерометр MMA8452 GY-45

MMA8452Q это 12-битный, энергоэффективный микро акселератор с богатыми возможностями. Два встроенных пина для прерываний, I2C интерфейс. Перейти к полному описанию

6 руб.

 

Артикул: 23871294

 

есть в наличии (2)

 

Описание

MMA8452Q это 12-битный, энергоэффективный микро акселератор с богатыми возможностями. Два встроенных пина для прерываний, I2C интерфейс.

  • Питание: 3-5V
  • Размер платы: 14,5x20,5мм
  • Интерфейс: I2C

Datasheet

Подключение

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

VCC_IN датчика подключите к +5V

GND заземлите

SCL и SDA подключите к соответствующим выходам на Arduino плате.

Пример кода

Для работы с датчиком есть библиотека от SparkFun: SFE_MMA8452Q.zip

Скачайте и импортируйте библиотеку в Arduino IDE.

#include <Wire.h> // Must include Wire library for I2C
#include <SFE_MMA8452Q.h> // Includes the SFE_MMA8452Q library

MMA8452Q accel(0x1C);

void setup()
{
    Serial.begin(9600);
    Serial.println("MMA8452Q Test Code!");
    accel.init();
}

// The loop function will simply check for new data from the
//  accelerometer and print it out if it's available.
void loop()
{
    if (accel.available()) {
        accel.read();
        printCalculatedAccels();
        printOrientation();
    
        Serial.println();
    }
}

void printAccels()
{
    Serial.print(accel.x, 3);
    Serial.print("\t");
    Serial.print(accel.y, 3);
    Serial.print("\t");
    Serial.print(accel.z, 3);
    Serial.print("\t");
}

void printCalculatedAccels()
{ 
    Serial.print(accel.cx, 3);
    Serial.print("\t");
    Serial.print(accel.cy, 3);
    Serial.print("\t");
    Serial.print(accel.cz, 3);
    Serial.print("\t");
}

void printOrientation()
{
    byte pl = accel.readPL();
    switch (pl) {
        case PORTRAIT_U:
            Serial.print("Portrait Up");
            break;
        case PORTRAIT_D:
            Serial.print("Portrait Down");
            break;
        case LANDSCAPE_R:
            Serial.print("Landscape Right");
            break;
        case LANDSCAPE_L:
            Serial.print("Landscape Left");
            break;
        case LOCKOUT:
            Serial.print("Flat");
            break;
    }
}