Završni rad NXP Cup

Dependencies:   HBridgeDCMotor mbed FastPWM AutomationElements

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?

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 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 }