Está en la página 1de 17

Por: MSc.

Aland Bravo Vecorena

Acerca del Curso


Teora: Redes Neuronales Transformada de Fourier Transformada Wavelet
Prctica Microcontroladores Microchip

IDE MPLAB

Entorno de Simulacin Proteus IDE ISIS


MATLAB

Motor de Corriente Contnua DC


Lo motores DC CC son usados en robtica, para

accionarlos solo es necesario aplicar la tensin de alimentacin entre sus bornes. Para invertir el sentido de giro basta con invertir la alimentacin y el motor empezar a girar en sentido opuesto. A diferencia de los motores PaP los motores DC no pueden ser posicionados y/o enclavados en una posicin especfica. Estos simplemente giran a la mxima velocidad y en el sentido que la alimentacin aplicada se los permite.

Motores DC
Los motores DC su costo es

Bobinas del Estator

ms elevado y adems precisan de una fuente de corriente contnua. Magnetos Pueden funcionar con del Rotor velocidad ajustable entre ambos lmites y se prestan a Sensores controles de gran Hall flexibilidad y precisin.

Cojinete

PWM: Modulacin por Ancho de Pulso


PWM es una tcnica

para energizar u controlar al motor DC. Al variar el ciclo de trabajo, se afecta el promedio del voltaje. Ciclo de Trabajo = Duty Cycle = Ton/(Ton+Toff ) Periodo = Ton+Toff Si Ton=Periodo -> Mxima potencia Si Ton=0 Mnima potencia Ton=Talta, Toff=Tbaja

Diagrama de Tiempo PWM

Diagrama de Bloques del PWM


Dead Time A 16-bit Time-base Dead Time B Duty Cycle Generator #4 Duty Cycle Generator #3 Duty Cycle Generator #2 Duty Cycle Generator #1 Dead Time Unit PWM1L Dead Time Unit PWM Override Logic Dead Time Unit PWM2L PWM1H PWM3L PWM2H Dead Time Unit PWM4L PWM3H PWM4H

Four PWM output pairs with output polarity control

A/D Conversion Trigger

Fault A
Fault B

Two fault pins w/ programma ble fault states

Mdulo PWM del dsPIC30F para Control de Motores


A continuacin se muestran los clculos matemticos basados en

un cristal de 10 MHz:

Fosc = 10*10^6 (10MHz) = Esto es la frecuencia de tu cristal/oscilador Fcy = 2.5*10^6 (2.5MIPS) La frecuencia del clock de instruccin es "Fosc / 4" Tcy = 4*10^-7 = (400ns) El tiempo de un ciclo de instruccin es "1 / Fcy" el cual equivale a "4 / Fosc" Fpwm = (1/0.018) = 55.555 El periodo de la seal PWM es 18ms, de modo que la frecuencia es "1 / 18ms" Prescaler = 4 Las opciones vlidas del pre escalador son 1:1, 1:4, 1:16, 1:64

PWM con dsPIC


La mayora de los motores para aficionados con controladores de velocidad electrnicos, como los motores marca Vex, y servo motores necesitan recibir entre ~1ms-2ms de tiempo alto sobre un periodo de ~18ms para correr a velocidad mxima en cualquier direccin, con ~1.5ms como neutral. Que es equivalente a un pulso de 1ms-2ms cada 18ms. PTPER es el registro periodo de tiempo base del PWM. Este registro guarda el periodo completo de la seal PWM (tiempo bajo + tiempo alto). El manual de referencia de la familia indica que "El usuario debe escribir un valor de 15-bit en PTPER<14:0>." De modo que si el valor del PTPER (calculado usando la ecuacin mostrado abajo) es ms grande que 32767 (el mximo valor que puede almacenarse con 15 bits) ser necesario utilizar un pre escalador grande. En nuestro ejemplo vamos a utilizar el pre escalador de 1:4. Cuanto ms rpido es el clock del sistema, el valor del pre escalador deber ser ms grande. Aqu est la ecuacin usado para calcular el valor correcto para el registro del periodo:

El Duty cycle o Ciclo de Trabajo es el ratio del tiempo alto dividido entre el periodo. Por ejemplo: Si nosotros tenemos un periodo de 18ms y 9ms de tiempo alto, entonces tendremos (9/18) = 0.5 50% duty cycle.

PWM con dsPIC

Usando la ecuacin 15-4 en 70062E.pdf, podemos calcular los valores correctos para ponerlos en el registro del Ciclo de Trabajo (duty cycle):

Con este clculo sabemos ahora que para un 100% duty cycle (la salida estar en alto continuamente) el PDCx necesita ponerse a "22502." Pero en la prctica no se desea un 100% duty cycle! Recuerde que solamente necesitamos un pulso de 1ms-2ms cada 18ms, que equivale a decir que solo se necesita 1/18th del 100% duty cycle para ir hacia atrs, 1.5/18th para neutro y finalmente 2/18th para adelante. Multiplicando estas fracciones en el valor del 100% duty cycle, tenemos:

Hacia atrs: 1250 (1/18 * 22,502) Neutro: 1875 (1.5/18 * 22,502) Hacia adelante: 2500 (2/18 * 22,502)

Cada motor corre un poco diferente, de modo que es necesario acomodar el clculo para usar el motor o servo motor en su capacidad mxima. Tener cuidado de no prender por mucho tiempo el servo debido a que puede causar que el plstico se derrita y rompa el engranaje del motor.

PWM con dsPIC


Detalles del cdigo comentado:

A continuacin se lista el cdigo comentado que es fcil de entender: /**** PTCON: PWM Time Base Control Register ****/ PTCONbits.PTEN = 0; // Timer Enable bit: DISABLE MCPWM PWMCON1bits.PEN1H = 1; // PWM1H (pin 37) is enabled for PWM output PWMCON1bits.PEN2H = 1; // PWM2H (pin 35) is enabled for PWM output PTCONbits.PTCKPS = 1; // Input Clock Prescale bits: 1:4 PTCONbits.PTOPS = 0; // Output Clock Postscale bits: 1:1 PTCONbits.PTSIDL = 1; // Stop in Idle Mode: YES PTCONbits.PTMOD = 0; // Mode Select bits: Free Running Mode PTCONbits.PTEN = 1; // Timer Enable bit: ENABLE MCPWM /**** PTPER: PWM Time Base Period Register ****/ PTPERbits.PTPER = 11250; // Period Value bits

Manejo de Motor DC con RS232


TERMINAL El curso est orientado a la metodologa de Aprender Haciendo. En el cuarto proyecto vamos a controlar un motor DC con puente H mediante un carcter del Terminal Virtual. Las caractersticas del puerto serial RS232 son: Velocidad -> 19200 baudios 1 bit Parada, 1 bit Inicio Sin Paridad, 8 bits de datos Oscilador del dsPIC = 8 MHz

dsPIC: Tx->RC0 Rx->RC1


Motor DC

A - B RB0 RB1

C - D RB2 RB3

Proteus: Un Entorno de Desarrollo Virtual


Secuencias:
Cuando no esta activado ningn switch (S1=0 y S2 =0) -----> El carrito siempre avanza (M2) Cuando esta activado switch S2 (S1=0 y S2 =1) -----> El carrito retrocede, luego gira izquierda, finalmente avanza Cuando esta activado switch S1 (S1=1 y S2 =0) -----> El carrito retrocede, luego gira derecha, finalmente avanza En el caso de que los dos sensores se puedan activar a la vez, (S1=1 y S2 =1) ---->el carrito retrocede, luego gira derecha, finalmente avanza
RXD TXD RTS CTS 16 8 VS OUT1 OUT2 3 6

S1
U1
19 20 30 31 34 13 32 35 12 25 26 27 36 37 38 2 3 4 5 RA0/CN2/VREF+/AN0 RA1/CN3/VREF-/AN1 RA2/CN30/CLKI/OSCI RA3/CN29/CLKO/OSCO RA4/CN0/T1CK/SOSCO RA7/TCK RA8/TDO RA9/TDI RA10/TMS RB0/CN4/RP0/C2IN-/AN2/EMUD1/PGED1 RB1/CN5/RP1/C2IN+/AN3/EMUC1/PGEC1 RB2/CN6/RP2/AN4 RB3/CN7/RP3/AN5 RB4/CN1/RP4/SOSCI RB5/CN27/RP5/ASDA1/EMUD3/PGED3 RB6/CN24/RP6/ASCL1/EMUC3/PGEC3 RB7/CN23/RP7/INT0 RB8/CN22/RP8/SCL1 RB9/CN21/RP9/SDA1 RC0/CN8/RP16/AN6 RB10/CN16/RP10/PW M1H3/EMUD2/PGED2 RC1/CN9/RP17/AN7 RB11/CN15/RP11/PW M1L3/EMUC2/PGEC2 RC2/CN10/RP18/AN8 RB12/CN14/RP12/PWM1H2 RC3/CN28/RP19 RB13/CN13/RP13/PWM1L2 RC4/CN25/RP20 RB14/CN12/RP14/PWM1H1 RC5/CN26/RP21 RB15/CN11/RP15/PWM1L1 RC6/CN18/RP22/PWM2H1 RC7/CN17/RP23/PWM2L1 VCAP/VDDCORE RC8/CN20/RP24 RC9/CN19/RP25 MCLR DSPIC33FJ32MC204 9 10 15 EN2 IN3 IN4 OUT3 GND OUT4 11 14 +88.8 21 22 23 24 33 41 42 43 44 1 8 9 10 11 14 15 7 18 2 7 1 IN1 IN2 EN1 VSS

S2 M1

9 10 15

EN2 IN3 IN4

GND

OUT3 GND OUT4

11 14

+88.8

16 2 7 1 IN1 IN2 EN1 VSS

8 VS OUT1 OUT2 3 6

M2

GND

S2 S1

M1: Para giro derecha o izquierda M2: Para avance o retroceso

S1: Switch de conmutacin S2: Switch de conmutacin

Activar S1 o S2 por unos segundos.

Descripcin del cdigo C30

Descripcin del Cdigo C30

Descripcin del Cdigo C30

Resultado esperado

También podría gustarte