Završni rad NXP Cup

Dependencies:   HBridgeDCMotor mbed FastPWM AutomationElements

Committer:
btomic
Date:
Fri Jun 03 16:58:32 2016 +0000
Revision:
4:d3c4924179f0
Parent:
3:fc17c2ad6b81
Child:
5:d3bdc0672891
testna verzija 5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
btomic 0:1b75c7a92a5e 1 #include "mbed.h"
btomic 0:1b75c7a92a5e 2 #include "HBridgeDCMotor.h"
btomic 4:d3c4924179f0 3 #include "FastPWM.h"
btomic 0:1b75c7a92a5e 4
btomic 0:1b75c7a92a5e 5 DigitalIn fault(PTE20);
btomic 4:d3c4924179f0 6 DigitalIn sw1(PTC13);
btomic 4:d3c4924179f0 7 DigitalIn sw2(PTC17);
btomic 1:50fc6689148e 8 AnalogIn a_feedback(PTE23);
btomic 1:50fc6689148e 9 AnalogIn b_feedback(PTE22);
btomic 4:d3c4924179f0 10 AnalogIn pot1(PTB3);
btomic 4:d3c4924179f0 11 AnalogIn pot2(PTB2);
btomic 4:d3c4924179f0 12
btomic 4:d3c4924179f0 13 Serial pc(PTA2, PTA1);
btomic 4:d3c4924179f0 14
btomic 0:1b75c7a92a5e 15
btomic 2:25b8be806708 16 DigitalOut enable(PTE21);
btomic 2:25b8be806708 17 DigitalOut d1(PTB8);
btomic 1:50fc6689148e 18 DigitalOut d2(PTB9);
btomic 1:50fc6689148e 19 DigitalOut d3(PTB10);
btomic 1:50fc6689148e 20 DigitalOut d4(PTB11);
btomic 1:50fc6689148e 21 //DigitalOut red(PTB18);
btomic 1:50fc6689148e 22 //DigitalOut green(PTB19);
btomic 1:50fc6689148e 23 //DigitalOut blue(PTD1);
btomic 1:50fc6689148e 24
btomic 1:50fc6689148e 25 //HBridgeDCMotor motor_a(PTC3, PTC4);
btomic 1:50fc6689148e 26 //HBridgeDCMotor motor_b(PTC1, PTC2);
btomic 0:1b75c7a92a5e 27
btomic 0:1b75c7a92a5e 28 PwmOut servo(PTB0);
btomic 2:25b8be806708 29
btomic 4:d3c4924179f0 30 FastPWM motor1(PTC3);
btomic 2:25b8be806708 31 DigitalOut mot(PTC4);
btomic 4:d3c4924179f0 32 FastPWM motor2(PTC1);
btomic 2:25b8be806708 33 DigitalOut mot22(PTC2);
btomic 2:25b8be806708 34
btomic 1:50fc6689148e 35
btomic 1:50fc6689148e 36
btomic 3:fc17c2ad6b81 37 void steerServo(float angleDegrees){
btomic 4:d3c4924179f0 38 float minPw = 0.0005, maxPw = 0.0025, minAng = -90, maxAng = 90, pulse = 0;
btomic 3:fc17c2ad6b81 39 pulse = minPw + ((maxPw - minPw)/(maxAng - minAng))*(angleDegrees - minAng);
btomic 3:fc17c2ad6b81 40 servo.pulsewidth(pulse);
btomic 1:50fc6689148e 41 }
btomic 0:1b75c7a92a5e 42
btomic 0:1b75c7a92a5e 43 int main() {
btomic 4:d3c4924179f0 44 float x=0, pw =0, PWmin=-90, PWmax=90;
btomic 1:50fc6689148e 45 float angleDegrees = 0;
btomic 1:50fc6689148e 46 float sampleTime = 50e-3, switchingFrequency = 5000, rampTime = 3;
btomic 2:25b8be806708 47 servo.period(1.0/50);
btomic 4:d3c4924179f0 48
btomic 4:d3c4924179f0 49 steerServo(angleDegrees);
btomic 4:d3c4924179f0 50 motor1.period_us(500);
btomic 4:d3c4924179f0 51 motor2.period_us(500);
btomic 4:d3c4924179f0 52 // motor_a.configure(sampleTime, switchingFrequency, rampTime, rampTime);
btomic 4:d3c4924179f0 53 // motor_b.configure(sampleTime, switchingFrequency, rampTime, rampTime);
btomic 2:25b8be806708 54 wait(5);
btomic 4:d3c4924179f0 55
btomic 0:1b75c7a92a5e 56 while(1){
btomic 4:d3c4924179f0 57 x = pot1;
btomic 4:d3c4924179f0 58 angleDegrees = PWmin + (PWmax - PWmin) * pot1;
btomic 4:d3c4924179f0 59 enable = 1;
btomic 4:d3c4924179f0 60 // if(sw1==1 && sw2==0) enable = sw1;
btomic 4:d3c4924179f0 61 // else enable = 0;
btomic 4:d3c4924179f0 62
btomic 2:25b8be806708 63 mot = 0;
btomic 2:25b8be806708 64 mot22 = 0;
btomic 4:d3c4924179f0 65 motor1.pulsewidth_us(100);
btomic 1:50fc6689148e 66
btomic 4:d3c4924179f0 67 motor2.pulsewidth_us(100);
btomic 4:d3c4924179f0 68
btomic 4:d3c4924179f0 69
btomic 4:d3c4924179f0 70
btomic 4:d3c4924179f0 71 steerServo(angleDegrees);
btomic 4:d3c4924179f0 72 pc.printf("pot1: %f angleDegrees: %f\r", x, angleDegrees);
btomic 1:50fc6689148e 73
btomic 4:d3c4924179f0 74 // motor_a.setDutyCycle(0.2);
btomic 4:d3c4924179f0 75 // motor_b.setDutyCycle(0.2);
btomic 1:50fc6689148e 76
btomic 4:d3c4924179f0 77 if(x<0.501 && x>0.499) {d1=1; d2=1; d3=1; d4=1;}
btomic 4:d3c4924179f0 78 else {d1=1; d2=0; d3=0; d4=1;}
btomic 1:50fc6689148e 79
btomic 0:1b75c7a92a5e 80 }
btomic 1:50fc6689148e 81 enable = 0;
btomic 1:50fc6689148e 82 // red = 1;
btomic 1:50fc6689148e 83
btomic 0:1b75c7a92a5e 84
btomic 0:1b75c7a92a5e 85 }