Prog Shield Accelerometer MMA7660

Fra HTX Arduino
Spring til navigation Spring til søgning
3-akset Accelerometer med I2C interface

Det 3 aksede accelerometer kan måle tyngdekraften i et XYZ-koordinatsystem og kan ud fra dette bestemme hvad der er op og ned.

Modulet kan købes ved aliexpress[1]

Software

Softwaren til at hente accelerometer data ligger i denne ZIP-fil. Biblioteket downloades og installeres som beskrevet under Arduinos biblioteker.

Biblioteket indeholder et eksempel der er gennemgået her.

Anvendelsen af softwaren

Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og definere

#include "Wire.h"
#include "MMA7660.h"

Inde i setup() startes den serielle kommunikation, og så skal der sættes gang i Wire-objektet ved hjælp af begin-metoden, og accelerometeret skal initialiseres med init-metoden som vist her:

void setup() {
  Serial.begin(9600);
  Wire.begin();
  
  // init accelerometer
  accel.init();
  
  // wait a while
  delay(100);
}

I loop() hentes data fra Accelerometeret med getValues-metoden, og det placerer X, Y og Z værdierne i egenskaberne x, y og z.

Disse værdier printes

void loop() {
  // get accelerator data
  accel.getValues();
  Serial.print("X: ");Serial.print(accel.x, DEC);Serial.print("\t");
  Serial.print("Y: ");Serial.print(accel.y, DEC);Serial.print("\t");
  Serial.print("Z: ");Serial.println(accel.z, DEC);
  delay(500);
}

Test af programmet

Ved at teste programmet får man følgende output:

X: 6	Y: 63	Z: 45
X: 6	Y: 63	Z: 45
X: 5	Y: 0	Z: 44
X: 5	Y: 0	Z: 44
X: 6	Y: 0	Z: 44
X: 6	Y: 0	Z: 44
X: 6	Y: 63	Z: 44
X: 6	Y: 63	Z: 44
X: 6	Y: 63	Z: 45
X: 6	Y: 63	Z: 45
X: 6	Y: 0	Z: 44
X: 6	Y: 0	Z: 44

Værdierne er de rå AD-tal, der stammer fra en 6-bits AD konverter. Tallet skal ganske givet tolkes som en +/- værdi, så det output der kommer fra 0 - 63 skal tolkes som -32 - 31.

Yderligere muligheder i softwaren

Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende accelerometeret på:

    uint8_t isPresent(void);

Hardware

Princippet i accelerometeret er beskrevet i databladet[2]

Layout

Accelerometerets placering på programmerings-shieldet kan ses her:
Accelerometerets placering på programmerings-shieldet
Accelerometerets placering på programmerings-shieldet

Referencer

Programmerings-Shield
Programmerings-Shield Analogt Keyboard - Display - LED'er - Trykknapper - Analog - LM35 - Fugt Sensor - Servo Motor - RF-Transmitter - RF-Receiver - LED-Matrix - RFID-læser - IR-Modtager - GPS1 - GPS2 - Step Motor - Matrix Tastatur - Ultralyd Afstandsmåler - XY Joystick - LED Strip
I2C Enheder I2C Display - Barometer BMP085 - Barometer BMP180 - Accelerometer MMA7660 - Gyroskop MPU6050 - Kompas HMC5883 - Real Time Clock DS1307 - Real Time Clock DS3231 - I2C
Grundlæggende Oversigt - Monteringsvejledning - Testprogram - Programmering Shield Gammel version