Auch wenn ich derzeit keine Verwendung für einen Beschleunigungssensor habe, hat es mich trotzdem interessiert, so einen auszuprobieren. Also habe ich ein MMA7361-BreakBoard besorgt und kurz getestet.



Zum Anschliessen werden ganze 9 Leitungen benötigt. Diese sind wie folgt mit einem Arduino zu verbinden:
| MMA7361 | Arduino PIN | 
| 5V | NC | 
| 3,3V | 3,3V | 
| GND | GND | 
| GS (g-Select) | 10 | 
| ST (self.test) | 12 | 
| x | A0 | 
| y | A1 | 
| z | A2 | 
| SL (sleep) | 13 | 
| 0G (0g-signal) | 11 | 
Außerdem muss die AREF-Leitung an 3,3V angeschlossen werden.
Zur Ansteuerung habe ich "AcceleroMMA7361"-Bibliothek (s.a. Forumbeitrag auf arduino.cc) mit folgendem Sketch (liegt als Beispiel der Bibliothek bei) verwendet:
#include 
AcceleroMMA7361 accelero;
int x;
int y;
int z;
void setup()
{
  Serial.begin(9600);
  accelero.begin(13, 12, 11, 10, A0, A1, A2);
  accelero.setARefVoltage(3.3);                   //sets the AREF voltage to 3.3V
  accelero.setSensitivity(LOW);                   //sets the sensitivity to +/-6G
  accelero.calibrate();
}
void loop()
{
  x = accelero.getXAccel();
  y = accelero.getYAccel();
  z = accelero.getZAccel();
  Serial.print("\nx: ");
  Serial.print(x);
  Serial.print(" \ty: ");
  Serial.print(y);
  Serial.print(" \tz: ");
  Serial.print(z);
  Serial.print("\tG*10^-2");
  delay(500);                                     //make it readable
}
Beim Testen ist mir aufgefallen, dass die Initialisierung des Sensors recht lange gedauert hat (gefühlte 10 Sekunden). Der Sensor hat eine einstellbare Empfindlichkeit (±1.5g, ±6g; 800 mV/g bei 1,5g) und eine Erkennung des freien Fall (0g-detect).
Datenblatt zu der MMA7361 IC fand ich unter folgendem Link: https://www.sparkfun.com/datasheets/Components/General/MMA7361L.pdf.
Kommentare (0)