Stap 1: Arduino Code
ADXL345 versnellingsmeter 2 servo motor control
#include < Wire.h >
#include < Servo.h >
Servo myservox;
Servo myservoy;
#define apparaat (0x53)
#define TO_READ (6)
#define TRIGGER 16 byte buff [TO_READ];
int i;
VOID Setup
{pinMode(TRIGGER,OUTPUT);
digitalWrite(TRIGGER,HIGH);
Wire.begin();
myservox.attach(9);
myservoy.attach(10);
myservox.write(90);
delay(25);
myservoy.write(90);
delay(25);
writeTo (inrichting, 0x2D, 0);
writeTo (inrichting, 0x2D, 16);
writeTo (inrichting, 0x2D, 8);}
void loop
{int regAddress = 0x32;
int x, y, z; digitalWrite(TRIGGER,LOW);
delay(10); digitalWrite(TRIGGER,HIGH);
readFrom (inrichting, regAddress, TO_READ, buff);
x = 0; y = 0; z = 0;
voor (ik = 1; ik < = 5; i ++)
{x += (((int)buff[1]) << 8) | buff [0];
y += (((int)buff[3]) << 8) | Buff [2];
z += (((int)buff[5]) << 8) | Buff [4];
delay(10);
}
x / = 5;
y / = 5;
z / = 5;
Als (x <-255) x =-255;
anders als (x > 255) x = 255;
Als (y <-255) y =-255;
anders als (y > 255) y = 255;
x = kaart (x,-255, 255, 0, 180);
y = kaart (y,-255, 255, 0, 180);
myservox.write(x);
delay(25);
myservoy.write(180-y);
delay(25);
delay(200);}
VOID writeTo (int apparaat, byte adres, byte val)
{Wire.beginTransmission(device);
Wire.write(Address); Wire.write(val);
Wire.endTransmission(); }
VOID readFrom (int apparaat byte adres, int num, byte buff[])
{Wire.beginTransmission(device);
Wire.write(Address);
Wire.endTransmission();
Wire.beginTransmission(device);
Wire.requestFrom (apparaat, num);
int i = 0;
while(Wire.available())
{
Buff [i] = Wire.read(); i ++;
}
Wire.endTransmission();
}