accelerometer adxl 335 and motor direction

Dependencies:   DcMotorDirectDrive Motor mbed adxl335_motor_direction

Dependents:   adxl335_motor_direction

Committer:
tusharbhanarkar
Date:
Fri May 05 06:15:04 2017 +0000
Revision:
1:dce65fc7681d
Parent:
0:c2c24acf6b77
accelerometer based dc motor direction;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tusharbhanarkar 0:c2c24acf6b77 1 #include "mbed.h"
tusharbhanarkar 0:c2c24acf6b77 2 #include "Motor.h"
tusharbhanarkar 0:c2c24acf6b77 3
tusharbhanarkar 0:c2c24acf6b77 4 AnalogIn inputx(p20); // input pins 20,19,18 for x,y,z axis respectively.
tusharbhanarkar 0:c2c24acf6b77 5 AnalogIn inputy(p19);
tusharbhanarkar 0:c2c24acf6b77 6
tusharbhanarkar 0:c2c24acf6b77 7 Motor m1(p23,p5,p6); // pwm, fwd, rev
tusharbhanarkar 0:c2c24acf6b77 8 Motor m2(p22,p11,p12); // pwm,fwd,rev
tusharbhanarkar 0:c2c24acf6b77 9
tusharbhanarkar 0:c2c24acf6b77 10 Serial pc(USBTX,USBRX); //Serial class for transmission of serial data
tusharbhanarkar 0:c2c24acf6b77 11
tusharbhanarkar 0:c2c24acf6b77 12 int main()
tusharbhanarkar 0:c2c24acf6b77 13 {
tusharbhanarkar 0:c2c24acf6b77 14 pc.baud(9600); // fixing a constant baud rate of 9600 bps at which mbed will interact with computer
tusharbhanarkar 0:c2c24acf6b77 15 float cal_x,cal_y; //caliberation variables
tusharbhanarkar 0:c2c24acf6b77 16 int x,y; // variables for x,y,z axes
tusharbhanarkar 0:c2c24acf6b77 17 int i=100;
tusharbhanarkar 0:c2c24acf6b77 18 while(i--) //small timed loop to caliberate the accelerometer with currentl position of the accelerometer
tusharbhanarkar 0:c2c24acf6b77 19 {
tusharbhanarkar 0:c2c24acf6b77 20 cal_x=inputx*100;
tusharbhanarkar 0:c2c24acf6b77 21 cal_y=inputy*100;
tusharbhanarkar 0:c2c24acf6b77 22
tusharbhanarkar 0:c2c24acf6b77 23 }
tusharbhanarkar 0:c2c24acf6b77 24 while(1)
tusharbhanarkar 0:c2c24acf6b77 25 {
tusharbhanarkar 0:c2c24acf6b77 26 x=4*(cal_x - inputx*100);
tusharbhanarkar 0:c2c24acf6b77 27 y=4*(cal_y - inputy*100);
tusharbhanarkar 0:c2c24acf6b77 28
tusharbhanarkar 0:c2c24acf6b77 29
tusharbhanarkar 0:c2c24acf6b77 30 y=(y-30);
tusharbhanarkar 0:c2c24acf6b77 31 pc.printf("x=%d,y=%d *",x,y);
tusharbhanarkar 0:c2c24acf6b77 32 pc.printf("\n");
tusharbhanarkar 0:c2c24acf6b77 33
tusharbhanarkar 0:c2c24acf6b77 34 if(x <= 0 && y <=0)
tusharbhanarkar 0:c2c24acf6b77 35 {
tusharbhanarkar 0:c2c24acf6b77 36 for (float s= -1.0; s > -1000.0 ; s += -0.01)
tusharbhanarkar 0:c2c24acf6b77 37
tusharbhanarkar 0:c2c24acf6b77 38 m1.speed(s); // anticlockwise
tusharbhanarkar 0:c2c24acf6b77 39 for (float s= -1.0; s > -1000.0 ; s += -0.01)
tusharbhanarkar 0:c2c24acf6b77 40 m2.speed(s);
tusharbhanarkar 0:c2c24acf6b77 41
tusharbhanarkar 0:c2c24acf6b77 42 }
tusharbhanarkar 0:c2c24acf6b77 43
tusharbhanarkar 0:c2c24acf6b77 44
tusharbhanarkar 0:c2c24acf6b77 45 else if (x>=0 && y>=0)
tusharbhanarkar 0:c2c24acf6b77 46 { for (float s= 1.0; s < 1000.0 ; s += 0.01)
tusharbhanarkar 0:c2c24acf6b77 47 m1.speed(s); // clockwise
tusharbhanarkar 0:c2c24acf6b77 48 for (float s= 1.0; s < 1000.0 ; s += 0.01)
tusharbhanarkar 0:c2c24acf6b77 49 m2.speed(s);
tusharbhanarkar 0:c2c24acf6b77 50
tusharbhanarkar 0:c2c24acf6b77 51 }
tusharbhanarkar 0:c2c24acf6b77 52
tusharbhanarkar 0:c2c24acf6b77 53 else
tusharbhanarkar 0:c2c24acf6b77 54 {
tusharbhanarkar 0:c2c24acf6b77 55 m1.speed(0);
tusharbhanarkar 0:c2c24acf6b77 56 }
tusharbhanarkar 0:c2c24acf6b77 57
tusharbhanarkar 0:c2c24acf6b77 58
tusharbhanarkar 0:c2c24acf6b77 59
tusharbhanarkar 0:c2c24acf6b77 60 //passing the caliberated x,y,z values to the computer.
tusharbhanarkar 0:c2c24acf6b77 61 }
tusharbhanarkar 0:c2c24acf6b77 62
tusharbhanarkar 0:c2c24acf6b77 63 }