Arduino MMA7260
тел. +7(499)347-04-82
Описание Arduino MMA7260
Arduino MMA7260 — Акселерометр 3-осевой
Описание
MMA7260Q — это трёхосевой аналоговый акселерометр от компании Freescale Semiconductor (ныне NXP), широко применявшийся в Arduino-проектах в конце 2000-х — начале 2010-х годов. Микросхема имеет встроенный датчик ускорения по осям X, Y, Z и позволяет измерять как динамическое ускорение (наклон, движение, удар), так и статическое (гравитацию — определение ориентации в пространстве).
Устройство часто встречается на готовых модулях (breakout board) с маркировкой GY-61 или SEN-08818, которые удобно подключать к платам Arduino.
Ключевые особенности:
- 3 оси измерения (X, Y, Z)
- Аналоговый выход
- Программируемая чувствительность (4 диапазона)
- Режим пониженного энергопотребления (Sleep Mode)
- Низкое напряжение питания (совместим с 3.3 В и 5 В через модуль)
- Функция свободного падения (Freefall detection)
Технические характеристики
| Параметр | Значение | |---|---| | Тип датчика | MEMS-акселерометр, 3 оси (X, Y, Z) | | Интерфейс | Аналоговый (3 выходных канала) | | Напряжение питания (чип) | 2.2 – 3.6 В DC | | Напряжение питания (модуль GY-61) | 2.2 – 5 В (есть LDO-стабилизатор) | | Потребляемый ток | ~500 мкА (рабочий), ~3 мкА (sleep) | | Диапазоны измерения | ±1.5g, ±2g, ±4g, ±6g (переключаемые) | | Чувствительность | 800 / 600 / 300 / 200 мВ/g соответственно | | Разрешение | 10 бит (через АЦП Arduino = 4.9 мВ/шаг) | | Полоса пропускания | 350 Гц (X, Y), 150 Гц (Z) | | Незначительная нелинейность | ±1% полной шкалы | | Рабочая температура | -40…+85 °C | | Корпус | QFN-16 (6×6 мм) | | Пин-код чувствительности | GS1, GS2 (логические входы) |
Таблица выборов диапазона
| GS1 | GS2 | Диапазон | Чувствительность | |-----|-----|----------|------------------| | 0 | 0 | ±1.5g | 800 мВ/g | | 0 | 1 | ±2.0g | 600 мВ/g | | 1 | 0 | ±4.0g | 300 мВ/g | | 1 | 1 | ±6.0g | 200 мВ/g |
★ Внимание: у реального чипа логика инвертирована — состояния пинов GS1/GS2 обычно подтянуты HIGH, поэтому при "нуле" на выводе диапазон выбирается в соответствии с последней строкой таблицы (сверяйтесь с datasheet на конкретный модуль).
Парт-номера и маркировки
Оригинальный чип Freescale/NXP
- MMA7260Q — базовый артикул (QFN-16)
- MMA7260QT — в ленточной упаковке (tape & reel)
- MMA7260QR2 — tape & reel вариант
Готовые модули (breakout boards)
| Парт-номер | Производитель | Описание | |---|---|---| | GY-61 | Generic (Китай) | 3-осевой MMA7260 модуль с регулятором напряжения и 5 пинами (VCC, GND, X, Y, Z + пины для диапазона) | | SEN-08818 | SparkFun | Triple Axis Accelerometer Breakout — MMA7260Q (снято с производства) | | SEN-09277 | SparkFun | Triple Axis Accelerometer — аналог, но на MMA7361 | | HK GY-61 MMA7260QT | HobbyKing / DX | Клон модуля |
Ближайшие аналоги (для сравнения)
- MMA7361 — схожий чип, 1.5g/6g, почти pin-to-pin совместим (замена)
- ADXL335 — аналоговый 3-осевой (Analog Devices)
- ADXL345 — цифровой I²C/SPI
Совместимые модели / платформы
MMA7260 совместим с любым микроконтроллером, имеющим не менее 3 каналов АЦП:
- Arduino Uno / Nano / Mini / Duemilanove — да (АЦП 10 бит)
- Arduino Mega 2560 — да
- Arduino Leonardo / Micro / Pro Mini — да
- Arduino Due (3.3 В) — да, но нужен модуль без 5-В LDO или делитель на выходе (чип рассчитан на 3.3 В)
- ESP8266 / ESP32 / NodeMCU — да (работают при 3.3 В)
- Raspberry Pi / STM32 / PIC / AVR (ATtiny, ATmega) — да, при подаче сигналов на ADC
- Arduino MKR / Nano 33 (3.3 В) — да, но АЦП ярче разных разрешений
Примеры готовых щитов-совместимых решений
- Arduino Sensor Shield V4/V5 — есть порт "Analog" куда удобно вешать GY-61
- Grove — 3-Axis Analog Accelerometer (Seeed) — на базе MMA7660, код похож, но иной датчик
Схема подключения (модуль GY-61 к Arduino Uno)
GY-61 -> Arduino
VCC -> 3.3V или 5V (через LDO на модуле)
GND -> GND
X -> A0
Y -> A1
Z -> A2
GS1 -> D2 (опционально)
GS2 -> D3 (опционально)
Пример скетча
const int xPin = A0;
const int yPin = A1;
const int zPin = A2;
const float vRef = 5.0;
const float sensitivity = 0.800; // В/g при ±1.5g
const float zeroG = vRef / 2.0;
void setup() {
Serial.begin(9600);
}
void loop() {
int rx = analogRead(xPin);
int ry = analogRead(yPin);
int rz = analogRead(zPin);
float vx = rx * (vRef / 1024.0);
float vy = ry * (vRef / 1024.0);
float vz = rz * (vRef / 1024.0);
float ax = (vx - zeroG) / sensitivity;
float ay = (vy - zeroG) / sensitivity;
float az = (vz - zeroG) / sensitivity;
Serial.print("X: "); Serial.print(ax, 2);
Serial.print(" Y: "); Serial.print(ay, 2);
Serial.print(" Z: "); Serial.println(az, 2);
delay(100);
}
Применение
- Определение наклона и ориентации (робот-балансир)
- Детектор падения / свободного падения
- Управление жестами (покачивание — смена режима)
- Инерционные измерения, логирование движения
- Игровые контроллеры (Wii-подобные)
💡 Совет: MMA7260 — устаревшая, но всё ещё встречающаяся в продаже модель. Для новых проектов лучше выбрать ADXL335 (аналог, удобнее) или ADXL345 / MPU6050 / LIS3DH (цифровой выход, 12–16 бит, встроенный I²C/SPI, дополнительные оси, термокомпенсация).
Если нужно — могу помочь подобрать актуальную замену под конкретную задачу или написать скетч работы с любым из аналогов.