Beschreibung
ADXL345 ist ein kleiner, stromsparender 3-Achsen-Beschleunigungsmesser mit hochauflösender (13-Bit) Messung bis zu ± 16 g. Digitale Ausgabedaten werden im 16-Bit-Format formatiert. Kann über SPI oder I2C gelesen werden.
Zur Messung von: statischer (Neigung) und dynamischer (Bewegungen/Stöße) Beschleunigung.
Erkennung von: Tippen, Doppeltippen, freiem Fall und Leerlauf.
ADXL345-Spezifikationen:
– Betrieb mit: 2.0–3.6 VDC.
– SPI- und I2C-Schnittstelle.
Arduino-Codebeispiel:
#include <SPI.h>
int CS=10;
//This is a list of some of the registers available on the ADXL345.
char POWER_CTL = 0x2D; //Power Control Register
char DATA_FORMAT = 0x31;
char DATAX0 = 0x32; //X-Axis Data 0
char DATAX1 = 0x33; //X-Axis Data 1
char DATAY0 = 0x34; //Y-Axis Data 0
char DATAY1 = 0x35; //Y-Axis Data 1
char DATAZ0 = 0x36; //Z-Axis Data 0
char DATAZ1 = 0x37; //Z-Axis Data 1
char values[10];
int x,y,z;
void setup(){
SPI.begin();
SPI.setDataMode(SPI_MODE3);
Serial.begin(9600);
pinMode(CS, OUTPUT);
digitalWrite(CS, HIGH);
//Put the ADXL345 into +/- 4G range by writing the value 0x01 to the DATA_FORMAT register.
writeRegister(DATA_FORMAT, 0x01);
//Put the ADXL345 into Measurement Mode by writing 0x08 to the POWER_CTL register.
writeRegister(POWER_CTL, 0x08); //Measurement mode
}
void loop(){
readRegister(DATAX0, 6, values);
x = ((int)values[1]<<8)|(int)values[0];
y = ((int)values[3]<<8)|(int)values[2];
z = ((int)values[5]<<8)|(int)values[4];
Serial.print(x, DEC);
Serial.print(',');
Serial.print(y, DEC);
Serial.print(',');
Serial.println(z, DEC);
delay(10);
}
//This function will write a value to a register on the ADXL345.
void writeRegister(char registerAddress, char value){
digitalWrite(CS, LOW);
SPI.transfer(registerAddress);
SPI.transfer(value);
digitalWrite(CS, HIGH);
}
//This function will read a certain number of registers starting from a specified address and store their values in a buffer.
void readRegister(char registerAddress, int numBytes, char * values){
char address = 0x80 | registerAddress;
if(numBytes > 1)address = address | 0x40;
digitalWrite(CS, LOW);
SPI.transfer(address);
for(int i=0; i<numBytes; i++){
values[i] = SPI.transfer(0x00);
}
digitalWrite(CS, HIGH);
}
Nur angemeldete Kunden, die dieses Produkt gekauft haben, dürfen eine Bewertung abgeben.
Versand innerhalb der Niederlande
Dieses Produkt wird per PostNL-Briefpost in einem Luftpolsterumschlag geliefert.- 3.45 € Versandkosten für Bestellungen unter 25 €.
- 2.95 € Versandkosten für Bestellungen zwischen 25 und 45 €.
- Bestellungen über 45 € werden akzeptiert
kostenlose per PostNL-Briefpost verschickt.
Werktags vor 16:30 Uhr bestellt, noch am selben Tag verschickt!
Klicken Sie hier für die Kosten außerhalb der Niederlande.
Electronics4Fun (überprüfter Besitzer) -
Funktioniert auch sehr gut mit I2c, für Code und Bibliothek google: AdaFruit. Die Empfindlichkeit kann per Software zwischen 2 und 16 G eingestellt werden. Misst Bewegungen x, y, z genau. Zu den Optionen gehören die Steuerung von Spielen, Servos, das Messen von Beschleunigung und Verzögerung, Tippen, Doppeltippen, die Position Ihres Roboters, zum Beispiel, ob er auf dem Kopf steht, seitwärts, ob er einen Hang hinauf- oder hinunterfährt, Neigen, Kollisionen lokalisieren. Aber auch um beispielsweise zu messen, in welcher Position Ihr Garagentor geöffnet ist oder wie weit ein ausklappbares Fenster gekippt ist, können Sie daraus sogar eine elektronische Wasserwaage bauen. Es ist ein Sensor für 1001 Möglichkeiten. Alles, was sich bewegt, beschleunigt, verlangsamt, sich in einem bestimmten Winkel bewegt, kann sehr genau gemessen werden.