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
}