accelerometer adxl 335 and motor direction
Dependencies: DcMotorDirectDrive Motor mbed adxl335_motor_direction
Dependents: adxl335_motor_direction
main.cpp@1:dce65fc7681d, 2017-05-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |