Arduino With Accelerometer Servo Motor

18,255

40

14

Published

Introduction: Arduino With Accelerometer Servo Motor

About: Mechanical engineer, Entrepreneur, Maker, robotic systems expert and founder of Robimek and RobiBot

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

2 People Made This Project!

Recommendations

  • Creative Misuse Contest

    Creative Misuse Contest
  • Water Contest

    Water Contest
  • Oil Contest

    Oil Contest

14 Discussions

This is a very impressive . Did anyone see a code that makes it wireless ? that Gyro and arduino send signal wirelessly to servos ??

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.

1 reply

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

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 ?

0
user
Bryuce

2 years ago

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

0
user
yanais

2 years ago

Great project :)

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

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

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

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

0
user
ellyd2

2 years ago

Hi, Do you have a circuit diagram?

Thanks

Hello are you using a 90 or 180 degree servo.

Hello are you using the 6050 gyro.