Beschrijving
ADXL345 is een klein, laag vermogen, 3-assige versnellingsmeter met een hoge resolutie (13-bit) meting tot ± 16 g. Digitale uitgang van gegevens is opgemaakt als 16-bit. Uit te lezen via SPI of I2C.
Voor het meten van: statische (tilt) en dynamische (bewegingen/schokken) versnelling.
Detectie van: tap, dubbel tap, vrije val en inactief.
ADXL345 specificaties:
– Werkt op: 2.0-3.6VDC.
– SPI en I2C interface.
Arduino code voorbeeld:
#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);
}
Enkel ingelogde klanten die dit product gekocht hebben, mogen een beoordeling schrijven.
Verzending binnen Nederland
Dit product word bezorgd via PostNL briefpost in een bubbel envelop.- € 3.45 verzendkosten voor orders onder de € 25,-.
- € 2.95 verzendkosten voor orders tussen € 25 - 45,-.
- Orders boven de € 45,- worden
gratis verstuurd per PostNL briefpost.
Op werkdagen voor 16:30 uur besteld, zelfde dag verzonden!
Klik hier voor de kosten buiten Nederland.
Electronics4Fun (geverifieerde eigenaar) –
Werkt ook erg goed met I2c, voor code en library google: AdaFruit. Gevoeligheid softwarematig in te stellen tussen de 2 en 16 G. Meet nauwkeurig bewegingen x,y,z. De mogelijkheden zijn o.a. besturen van spelletjes, servo’s, versnelling en vertraging meten, tikken, dubbeltikken, positie van bv je robot, ligt hij op zijn kop, zij, rijdt hij een helling op of af, kantelen, botsingen localiseren. Maar ook om bijvoorbeeld te meten op welke positie je garagedeur open staat, of hoe ver een klapraam is gekanteld, zelfs een electronische waterpas kun je er mee bouwen. Het is een sensor voor 1001 mogelijkheden. Alles wat ook maar beweegt, versnelt, vertraagt, onder een bepaalde hoek beweegt kan zeer nauwkeurig gemeten worden.