Andres Castañeda / Mbed 2 deprecated primeraentregaservos

Dependencies:   mbed

Fork of 01-04EntregaPrimerCorte by ferney alberto beltran molina

mover.cpp

Committer:
andrescas
Date:
2018-09-07
Revision:
2:0b07d055833d
Parent:
1:526bdd5faa37
Child:
3:83d8f67303b8

File content as of revision 2:0b07d055833d:


#include "mover.h"
#include "mbed.h"
#include "math.h"


PwmOut myServo1(PB_3);
PwmOut myServo2(PB_4);
PwmOut myServo3(PB_5);
PwmOut myServo4(PB_8);
PwmOut myServo5(PB_9);
PwmOut myServo6(PA_5);
PwmOut myServo7(PA_6);
PwmOut myServo8(PA_7);


uint8_t  ss_time=50;     // tiempo  de espera para moverse 1 mm en microsegundos

void put_sstime(uint8_t vtime){
    ss_time=vtime;
    
}

int coord2us(float coord)
{
    if(0 <= coord <= MAXPOS)
        return int(750+coord*1900/50);// u6
    return 750;

}

void mover_ser(uint8_t nmotor, uint8_t grados){// PWM O CON CASE O IF

    int pulsea = coord2us(grados);
    int pulseb = coord2us(grados);
    int pulsec = coord2us(grados);
    int pulsed = coord2us(grados);
    int pulsee = coord2us(grados);
    int pulsef = coord2us(grados);
    int pulseg = coord2us(grados);
    int pulseh = coord2us(grados);
        switch (nmotor) {
            case  0x01: myServo1.pulsewidth_us(pulsea);break;
            case  0x02: myServo2.pulsewidth_us(pulseb);break;   
            case  0x03: myServo2.pulsewidth_us(pulsec);break;   
            case  0x04: myServo2.pulsewidth_us(pulsed);break;   
            case  0x05: myServo2.pulsewidth_us(pulsee);break;   
            case  0x06: myServo2.pulsewidth_us(pulsef);break;   
            case  0x07: myServo2.pulsewidth_us(pulseg);break;   
            case  0x08: myServo2.pulsewidth_us(pulseh);break;
            //default: debug_m("numero de motor no valido");break ;
            
               
}
}

void init_servo()
{
    myServo1.period_ms(20);
    myServo2.period_ms(20);
    myServo3.period_ms(20);
    myServo4.period_ms(20);
    myServo5.period_ms(20);
    myServo6.period_ms(20);
    myServo7.period_ms(20);
    myServo8.period_ms(20);
   
}