Das MMA7361-Modul besitzt den gleichnamigen dreiachsigen analogen MEMS-Beschleunigungsmesser MMA7361 mit einigen Entstörungs-Kondensatoren, eine kleine (rote) LED zur Betriebsanzeige sowie einen S-1701 Spannungsregulator, damit die 5V des Arduino auf die Betriebsspannung (2,2V – 3,6V) auf 3,3V geregelt werden können. Somit kann das Modul (nicht der IC selbst) mit 3,3V oder 5V betrieben werden.
Sensor | Arduino | Funktion |
---|---|---|
VCC | 5V | Versorgungsspannung |
3V3 | 3.3V (alternativ zu 5V) | Versorgungsspannung |
GND | GND | Masse |
GS (g-Select) | 10 | Eingang zur Auswahl des g-Empfindlichkeit |
ST (Selftest) | 12 | Eingang für Selbsttests |
X | A0 | Ausgang für X-Wert |
Y | A1 | Ausgang für Y-Wert |
Z | A2 | Ausgang für Z-Wert |
SL (Sleep) | 13 | Eingang für Sleep-Mode |
0G (0g-Detect) | 11 | Ausgang für 0g-Erkennung |
Wichtig beim folgenden Aufbau ist der Anschluss zwischen Arduino AREF
und den beiden 3,3V Anschlüssen.
Der folgende Sketch liest die Ausgänge des MMA7361 ein und liefert sie an die UART-Schnittstelle. Damit können die Daten im seriellen Plotter der Arduino-IDE dargestellt werden. In dem Sketch wird die Library Arduino-MMA7361 verwendet.
#define PIN_X A0
#define PIN_Y A1
#define PIN_Z A2
#define PIN_SLEEP 13
#define PIN_SELFTEST 12
#define PIN_ZEROG 11
#define PIN_GSELECT 10
#include <AcceleroMMA7361.h>
AcceleroMMA7361 mma7362;
int x, y, z;
void setup()
{
Serial.begin(9600);
mma7362.begin(PIN_SLEEP, PIN_SELFTEST, PIN_ZEROG, PIN_GSELECT, PIN_X, PIN_Y, PIN_Z);
mma7362.setARefVoltage(3.3); //sets the AREF voltage to 3.3V
mma7362.setSensitivity(LOW); //sets the sensitivity to +/-6G
mma7362.calibrate();
}
void loop()
{
x = mma7362.getXRaw();
y = mma7362.getYRaw();
z = mma7362.getZRaw();
Serial.println(String(x) + " " + String(y) + " " + String(z));
delay(25);
}
zurück