Završni rad NXP Cup
Dependencies: HBridgeDCMotor mbed FastPWM AutomationElements
main.cpp@3:fc17c2ad6b81, 2016-05-18 (annotated)
- 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?
User | Revision | Line number | New 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 | } |