Neue Artikel

Sonderangebote

Pay with credit cards Pay with credit cards Pay with credit cards Pay with credit cards Pay with credit cards Pay with credit cards Pay with credit cards Pay with credit cards Pay with credit cards Pay with credit cards

Eksempel kode til brug med analog 3 akset accelerometer (ADXL335)

Et accelerometer måler bevægelser, fordelt på X, Y og Z aksen.

Du kan finde modulet i vores shop

/* Trab.dk Example Software Sketch
 ADXL335
 Connections between Arduino and Sensor:
 Vcc to 3.3v
 Gnd to Gnd
 X-OUT to A1
 Y-OUT to A2
 Z-OUT to A3
 kundeservice@trab.dk */

//Analog read pins

const int xPin = 0;
const int yPin = 1;
const int zPin = 2;

//The minimum and maximum values that came from
//the accelerometer while standing still
//You very well may need to change these
int minVal = 265;
int maxVal = 402;

//to hold the caculated values
double x;
double y;
double z;

void setup(){
     Serial.begin(9600);
}

void loop(){
     //read the analog values from the accelerometer
     int xRead = analogRead(xPin);
     int yRead = analogRead(yPin);
     int zRead = analogRead(zPin);

     //convert read values to degrees -90 to 90 - Needed for atan2
     int xAng = map(xRead, minVal, maxVal, -90, 90);
     int yAng = map(yRead, minVal, maxVal, -90, 90);
     int zAng = map(zRead, minVal, maxVal, -90, 90);

     //Caculate 360deg values like so: atan2(-yAng, -zAng)
     //atan2 outputs the value of -π to π (radians)
     //We are then converting the radians to degrees
     x = RAD_TO_DEG * (atan2(-yAng, -zAng) + PI);
     y = RAD_TO_DEG * (atan2(-xAng, -zAng) + PI);
     z = RAD_TO_DEG * (atan2(-yAng, -xAng) + PI);

     //Output the caculations
     Serial.print("x: ");
     Serial.print(x);
     Serial.print(" | y: ");
     Serial.print(y);
     Serial.print(" | z: ");
     Serial.println(z);

     delay(500); //just here to slow down the serial output - Easier to read
}