ماژول MMA7455 یک هدر برد سنسور MMA7455 می باشد . MMA7455 قادر به اندازه گیری شتاب در سه محور مختصات است . از این ماژول می توانید در ربات ها و… استفاده کنید . به طور معمول سنسور های اندازه گیری شتاب بر پایه MEMS ساخته می شوند . MMA7455 نیز بر پایه MEMS است ، در واقع در داخل پکیچ این سنسور ها مکانیزم های مکانیکی نانومتری وجوددارد که در ارتباط با بخش های الکترونیکی هستند . اندازه گیری شتاب می تواند پارامتر های دیگری همچون سرعت و اندازه حرکت را مشخص کنید . MMA7455 دارای دو پین وقفه خارجی است که می تانید آن ها را برای تشخیض ضربه و یا شتاب های خاصی تنظیم کنید . این ماژول از دو مدل ارتباط I2C و SPI سه سیمه پشتیبانی میکند لذا به راحتی می توانید آن را توسط برد های آردوینو راه اندازی کنید . در این آموزش به راه اندازی این ماژول توسط آردوینو خواهیم پرداخت .

 

پین های ماژول MMA7455 :

 

1- VIN پین تغذیه ماژول می باشد .

2- INT1 و INT2 پین های وقفه خارجی می باشند .

3-CLK پین SCL در ارتباط I2C و پین کلاک در ارتباط SPI می باشد .

4- DATA پین SDA در ارتباط I2C و پین دیتا در ارتباط sPI می باشد .

5- CS جهت فعال سازی SPI می باشد .

 

راه اندازی MMA7455 با آردوینو :

در کد های زیر از I2C برای ارتباط با ماژول استفاده شده است لذا باید پین های A5 و A4 آردوینو را به ترتیب به SCL و SDA متصل کنید .

 

#if defined(ARDUINO)
/* Mandatory includes for Arduino */
#include <SPI.h>
#include <Wire.h>
#endif

#include <MMA_7455.h>

/* Case 1: Accelerometer on the I2C bus (most common) */
MMA_7455 accel = MMA_7455(i2c_protocol);
/* Case 2: Accelerometer on the SPI bus with CS on pin 2 */
// MMA_7455 accel = MMA_7455(spi_protocol, A2);

int16_t x10, y10, z10;
float   xg, yg, zg;

void setup()
{
  /* Set serial baud rate */
  Serial.begin(9600);
  /* Start accelerometer */
  accel.begin();
  /* Set accelerometer sensibility */
  accel.setSensitivity(2);
  /* Verify sensibility - optional */
  if(accel.getSensitivity() != 2)   Serial.println("Sensitivity failure");
  /* Set accelerometer mode */
  accel.setMode(measure);
  /* Verify accelerometer mode - optional */
  if(accel.getMode() != measure)    Serial.println("Set mode failure");
  /* Set axis offsets */
  /* Note: the offset is hardware specific
   * and defined thanks to the auto-calibration example. */
  accel.setAxisOffset(0, 0, 0);
}

void loop()
{
  /* Get 10-bit axis raw values */
  x10 = accel.readAxis10('x');
  y10 = accel.readAxis10('y');
  z10 = accel.readAxis10('z');
  /* Get 10-bit axis values in g */
  xg  = accel.readAxis10g('x');
  yg  = accel.readAxis10g('y');
  zg  = accel.readAxis10g('z');
  
  /* Display current axis values */
  Serial.print("X: ");    Serial.print(x10, DEC);
  Serial.print("\tY: ");  Serial.print(y10, DEC);
  Serial.print("\tZ: ");  Serial.print(z10, DEC);
  Serial.print("\tXg: "); Serial.print(xg, DEC);
  Serial.print("\tYg: "); Serial.print(yg, DEC);
  Serial.print("\tZg: "); Serial.print(zg, DEC);
  Serial.println();
  delay(500);
}

 

 

Tags:
About Author: USER_4