Završni rad NXP Cup

Dependencies:   HBridgeDCMotor mbed FastPWM AutomationElements

Committer:
btomic
Date:
Wed May 18 20:26:32 2016 +0000
Revision:
3:fc17c2ad6b81
Parent:
2:25b8be806708
Child:
4:d3c4924179f0
testna verzija 4

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 0:1b75c7a92a5e 3
btomic 0:1b75c7a92a5e 4 DigitalIn fault(PTE20);
btomic 1:50fc6689148e 5 AnalogIn a_feedback(PTE23);
btomic 1:50fc6689148e 6 AnalogIn b_feedback(PTE22);
btomic 0:1b75c7a92a5e 7
btomic 2:25b8be806708 8 DigitalOut enable(PTE21);
btomic 2:25b8be806708 9 DigitalOut d1(PTB8);
btomic 1:50fc6689148e 10 DigitalOut d2(PTB9);
btomic 1:50fc6689148e 11 DigitalOut d3(PTB10);
btomic 1:50fc6689148e 12 DigitalOut d4(PTB11);
btomic 1:50fc6689148e 13 //DigitalOut red(PTB18);
btomic 1:50fc6689148e 14 //DigitalOut green(PTB19);
btomic 1:50fc6689148e 15 //DigitalOut blue(PTD1);
btomic 1:50fc6689148e 16
btomic 1:50fc6689148e 17 //HBridgeDCMotor motor_a(PTC3, PTC4);
btomic 1:50fc6689148e 18 //HBridgeDCMotor motor_b(PTC1, PTC2);
btomic 0:1b75c7a92a5e 19
btomic 0:1b75c7a92a5e 20 PwmOut servo(PTB0);
btomic 2:25b8be806708 21
btomic 1:50fc6689148e 22 PwmOut motor1(PTC3);
btomic 2:25b8be806708 23 DigitalOut mot(PTC4);
btomic 2:25b8be806708 24 DigitalOut mot2(PTC1);
btomic 2:25b8be806708 25 DigitalOut mot22(PTC2);
btomic 2:25b8be806708 26
btomic 1:50fc6689148e 27
btomic 1:50fc6689148e 28
btomic 3:fc17c2ad6b81 29 void steerServo(float angleDegrees){
btomic 3:fc17c2ad6b81 30 float minPw = 0.00750, maxPw = 0.00125, minAng = -45, maxAng = 45, pulse = 0;
btomic 3:fc17c2ad6b81 31 pulse = minPw + ((maxPw - minPw)/(maxAng - minAng))*(angleDegrees - minAng);
btomic 3:fc17c2ad6b81 32 servo.pulsewidth(pulse);
btomic 1:50fc6689148e 33 }
btomic 0:1b75c7a92a5e 34
btomic 0:1b75c7a92a5e 35 int main() {
btomic 0:1b75c7a92a5e 36
btomic 1:50fc6689148e 37 float angleDegrees = 0;
btomic 1:50fc6689148e 38 float sampleTime = 50e-3, switchingFrequency = 5000, rampTime = 3;
btomic 2:25b8be806708 39 servo.period(1.0/50);
btomic 2:25b8be806708 40 servo.pulsewidth(0.0010);
btomic 2:25b8be806708 41 motor1.period(0.0001);
btomic 2:25b8be806708 42 // motor_a.configure(sampleTime, switchingFrequency, rampTime, rampTime);
btomic 2:25b8be806708 43 // motor_b.configure(sampleTime, switchingFrequency, rampTime, rampTime);
btomic 2:25b8be806708 44 wait(5);
btomic 1:50fc6689148e 45 enable = 1;
btomic 0:1b75c7a92a5e 46 while(1){
btomic 2:25b8be806708 47
btomic 2:25b8be806708 48 mot = 0;
btomic 2:25b8be806708 49 mot2 = 0;
btomic 2:25b8be806708 50 mot22 = 0;
btomic 2:25b8be806708 51 motor1.pulsewidth(0.00003);
btomic 1:50fc6689148e 52
btomic 1:50fc6689148e 53 steerServo(angleDegrees);
btomic 1:50fc6689148e 54
btomic 2:25b8be806708 55 // motor_a.setDutyCycle(0.2);
btomic 2:25b8be806708 56 // motor_b.setDutyCycle(0.2);
btomic 1:50fc6689148e 57
btomic 1:50fc6689148e 58 if(fault==1) {d1=1; d2=1; d3=1; d4=1;}
btomic 1:50fc6689148e 59 else {d4=1;d1=1;}
btomic 1:50fc6689148e 60
btomic 0:1b75c7a92a5e 61 }
btomic 1:50fc6689148e 62 enable = 0;
btomic 1:50fc6689148e 63 // red = 1;
btomic 1:50fc6689148e 64
btomic 0:1b75c7a92a5e 65
btomic 0:1b75c7a92a5e 66 }