Introduction: Arduino With Accelerometer Servo Motor

ADXL345 accelerometer 2 servo motor control application.

Step 1: Arduino Code

// ADXL345 accelerometer 2 servo motor control

#include <Wire.h>

#include <Servo.h>

Servo myservox;

Servo myservoy;

#define DEVICE (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(DEVICE, 0x2D, 0);

writeTo(DEVICE, 0x2D, 16);

writeTo(DEVICE, 0x2D, 8);}

void loop()

{ int regAddress = 0x32;

int x, y, z; digitalWrite(TRIGGER,LOW);

delay(10); digitalWrite(TRIGGER,HIGH);

readFrom(DEVICE, regAddress, TO_READ, buff);

x=0; y=0; z=0;

for(i=1;i<=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;

if(x<-255)x= -255;

else if (x>255)x=255;

if(y<-255)y= -255;

else if (y>255)y=255;

x=map(x, -255, 255, 0, 180);

y=map(y, -255, 255, 0, 180);

myservox.write(x);

delay(25);

myservoy.write(180-y);

delay(25);

delay(200);}

void writeTo(int device, byte address, byte val)

{ Wire.beginTransmission(device);

Wire.write(address); Wire.write(val);

Wire.endTransmission(); }

void readFrom(int device, byte address, int num, byte buff[])

{ Wire.beginTransmission(device);

Wire.write(address);

Wire.endTransmission();

Wire.beginTransmission(device);

Wire.requestFrom(device, num);

int i = 0;

while(Wire.available())

{

buff[i] = Wire.read(); i++;

}

Wire.endTransmission();

}

Step 2: Video

Comments

author
colby.lewallen (author)2017-01-29

I keep getting code crash at this

"#define TRIGGER 16 byte buff[TO_READ] ;"

Can you help, Im using and ADXL335 but its my code thats crashing.

author
MarsianaS (author)colby.lewallen2017-05-25

you have to separate #define TRIGGER 16 and byte buff[TO_READ].

author
adirukun (author)2016-10-20

hi i'm adi from indonesia

i have a project to control two servo motor in accordance to yaw and roll, and i use mpu6050 as a sensor

can you plese help me ?

author
Bryuce (author)2016-04-24

Hey i want to control two stepper motor in accordance to yaw n pitch of gyroscope .can u please help me?

author
sahajanand made it! (author)2015-12-15

i want to control single servo through single axis (x axis)

what codes should i use . I am using arduino atmega328p

i used this codes it showed me this error .

can you please send codes

Capture.PNG
author
yanais (author)2016-02-08

Great project :)

Try circuito.io to generate a schematic and code for this project.

author
SiddharthK4 (author)2015-12-08

Can I use the motion along the mpu6050 to control servo?

author
SiddharthK4 (author)sezgingul2015-12-10

It's still for roll and pitch. Can you help me out with the yaw movement of mpu6050 to control servo?

author
sezgingul (author)SiddharthK42015-12-08

this project mpu6050 contolled http://www.robimek.com/ivmeolcer-ile-bluetooth-uzerinden-servo-kontrol/

author
SiddharthK4 (author)sezgingul2015-12-08

I am talking about this : https://www.youtube.com/watch?v=7HLnzeH4hH0

author
ellyd2 (author)2015-11-14

Hi, Do you have a circuit diagram?

Thanks

author
Andrew Gyakobo (author)2015-10-19

Hello are you using a 90 or 180 degree servo.

author
sezgingul made it! (author)2015-08-19

Hello, gandrew4 MPU6050 gyro sensor 2 axis servo control code:

mpu6050_2_servo_control.ino
author
gandrew4 (author)2015-08-18

Hello are you using the 6050 gyro.

About This Instructable

15,423views

38favorites

License:

Bio: Mechanical engineer, Entrepreneur, Maker, robotic systems expert and Robimek founder
More by sezgingul:Arduino Mini CNC Making Robot Hand With  Plastic PipesUse of Microphone Module
Add instructable to: