Završni rad NXP Cup
Dependencies: HBridgeDCMotor mbed FastPWM AutomationElements
main.cpp@0:1b75c7a92a5e, 2016-05-06 (annotated)
- Committer:
- btomic
- Date:
- Fri May 06 18:48:56 2016 +0000
- Revision:
- 0:1b75c7a92a5e
- Child:
- 1:50fc6689148e
Testiranje servo motora i h-mosta
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 | 0:1b75c7a92a5e | 5 | |
btomic | 0:1b75c7a92a5e | 6 | HBridgeDCMotor motor_a(PTC3, PTC4); |
btomic | 0:1b75c7a92a5e | 7 | HBridgeDCMotor motor_b(PTC1, PTC2); |
btomic | 0:1b75c7a92a5e | 8 | |
btomic | 0:1b75c7a92a5e | 9 | PwmOut servo(PTB0); |
btomic | 0:1b75c7a92a5e | 10 | DigitalOut enable(PTE21); |
btomic | 0:1b75c7a92a5e | 11 | Timer timer; |
btomic | 0:1b75c7a92a5e | 12 | |
btomic | 0:1b75c7a92a5e | 13 | int main() { |
btomic | 0:1b75c7a92a5e | 14 | |
btomic | 0:1b75c7a92a5e | 15 | float sampleTime = 50e-3, switchingFrequency = 5000, rampTime = 3; |
btomic | 0:1b75c7a92a5e | 16 | timer.start(); |
btomic | 0:1b75c7a92a5e | 17 | motor_a.configure(sampleTime, switchingFrequency, rampTime, rampTime); |
btomic | 0:1b75c7a92a5e | 18 | motor_b.configure(sampleTime, switchingFrequency, rampTime, rampTime); |
btomic | 0:1b75c7a92a5e | 19 | servo.period(0.020); |
btomic | 0:1b75c7a92a5e | 20 | float pw=0,pw2=0; |
btomic | 0:1b75c7a92a5e | 21 | servo.pulsewidth(0.00100); |
btomic | 0:1b75c7a92a5e | 22 | wait(10); |
btomic | 0:1b75c7a92a5e | 23 | while(1){ |
btomic | 0:1b75c7a92a5e | 24 | |
btomic | 0:1b75c7a92a5e | 25 | |
btomic | 0:1b75c7a92a5e | 26 | |
btomic | 0:1b75c7a92a5e | 27 | |
btomic | 0:1b75c7a92a5e | 28 | /** if( timer.read()> 3 && timer.read()< 9 ){ **/ |
btomic | 0:1b75c7a92a5e | 29 | motor_a.setDutyCycle(0.01); |
btomic | 0:1b75c7a92a5e | 30 | motor_b.setDutyCycle(0.01); |
btomic | 0:1b75c7a92a5e | 31 | /** } |
btomic | 0:1b75c7a92a5e | 32 | else if( timer.read()> 9 && timer.read()< 15){ |
btomic | 0:1b75c7a92a5e | 33 | motor_a.setDutyCycle(-0.01); |
btomic | 0:1b75c7a92a5e | 34 | motor_b.setDutyCycle(-0.01); |
btomic | 0:1b75c7a92a5e | 35 | } |
btomic | 0:1b75c7a92a5e | 36 | else if (timer.read()>5 && timer.read()<12){ |
btomic | 0:1b75c7a92a5e | 37 | **/ |
btomic | 0:1b75c7a92a5e | 38 | for(pw=pw2; pw<0.00025; pw+=0.00001) { |
btomic | 0:1b75c7a92a5e | 39 | servo.pulsewidth(0.001+ pw); |
btomic | 0:1b75c7a92a5e | 40 | wait(0.1); |
btomic | 0:1b75c7a92a5e | 41 | } |
btomic | 0:1b75c7a92a5e | 42 | wait(3); |
btomic | 0:1b75c7a92a5e | 43 | for(pw2=pw; pw2>-0.00025; pw2-=0.00001) { |
btomic | 0:1b75c7a92a5e | 44 | servo.pulsewidth(0.001 + pw2); |
btomic | 0:1b75c7a92a5e | 45 | wait(0.1); |
btomic | 0:1b75c7a92a5e | 46 | } |
btomic | 0:1b75c7a92a5e | 47 | wait(3); |
btomic | 0:1b75c7a92a5e | 48 | /** } |
btomic | 0:1b75c7a92a5e | 49 | else { |
btomic | 0:1b75c7a92a5e | 50 | motor_a.setDutyCycle(0); |
btomic | 0:1b75c7a92a5e | 51 | motor_b.setDutyCycle(0); |
btomic | 0:1b75c7a92a5e | 52 | // enable=0; |
btomic | 0:1b75c7a92a5e | 53 | } **/ |
btomic | 0:1b75c7a92a5e | 54 | } |
btomic | 0:1b75c7a92a5e | 55 | |
btomic | 0:1b75c7a92a5e | 56 | |
btomic | 0:1b75c7a92a5e | 57 | |
btomic | 0:1b75c7a92a5e | 58 | } |