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)