Proyevcto Control Dc

Embed Size (px)

Citation preview

  • 7/23/2019 Proyevcto Control Dc

    1/7

    Diego Gonzlez Garca

    MAY15 2013GALERA

    Control de un motor de CC

    (https://mecatronic2.files.wordpress.com/2013/05/esquema-

    montaje.jpg)

    Enunciado:

    https://mecatronic2.files.wordpress.com/2013/05/esquema-montaje.jpghttps://mecatronic2.files.wordpress.com/2013/05/esquema-montaje.jpghttps://mecatronic2.files.wordpress.com/2013/05/esquema-montaje.jpghttps://mecatronic2.files.wordpress.com/2013/05/esquema-montaje.jpghttps://mecatronic2.files.wordpress.com/2013/05/esquema-montaje.jpghttps://mecatronic2.files.wordpress.com/2013/05/esquema-montaje.jpghttps://mecatronic2.wordpress.com/https://mecatronic2.wordpress.com/type/gallery/https://mecatronic2.wordpress.com/2013/05/15/control-de-un-motor-de-cc/https://mecatronic2.files.wordpress.com/2013/05/esquema-montaje.jpg
  • 7/23/2019 Proyevcto Control Dc

    2/7

    En la siguiente prctica, se nos plantea realizar el control de un motor de corriente continua mediante elHyper Terminal de nuestro ordenador. Para ello, vamos a realizar un programa con el MPLab yutilizaremos un driver con el dispositivo l298 para controlar el motor. La tarjeta de aplicacin utilizadasera una PIC Control

    Desarrollo:

    Una vez que tenemos claro lo que queremos hacer, comenzamos realizando un esquema en Proteus ISISpara la posterior simulacin. Para realizar el esquema correctamente, hemos consultado los Data Sheet delPIC 18F4550, l298, PIC Control y del driver.

    (https://mecatronic2.files.wordpress.com/2013/05/esquemaproteus.jpg)

    *Nota: En nuestro montaje, la parte del L298 y los diodos la tenemos en un Driver comercial.

    Cdigo:

    ////////////////////////////////////////////////////////////////////////////////

    // AUTOR: Diego Gonzalez Garcia Abril 2013 //

    ////////////////////////////////////////////////////////////////////////////////

    // PROGRAMA: Motor DC VERSION: 1.0 //

    // DISPOSITIVO: PIC 18F4550 COMPILADOR: CCS vs4.104 //

    // ENTORNO IDE: MPLAB v8.76 SIMULADOR: Proteus 7.8 SP2 //

    // TARJETA DE APLICACION: DEBUGGER: ICD3 ////

    //////////////////////////////////////////////////////////////////////////////

    ////////////////////////////////////////////////////////////////////////////////

    //Motor DC//

    ////////////////////////////////////////////////////////////////////////////////

    //////////////////////////////////////////////////////////////////////////////////CABECERA//////////////////////////////////////////////////////////////////////////////////

    https://mecatronic2.files.wordpress.com/2013/05/esquema-proteus.jpg
  • 7/23/2019 Proyevcto Control Dc

    3/7

    #include#FUSES INTHS,MCLR,PUT,BROWNOUT#use delay(INTERNAL=1MHZ)#use rs232 (BAUD=9600, parity=N, bits=8, XMIT=PIN_C6 , RCV=PIN_C7)

    //////////////////////////////////////////////////////////////////////////////////VARIABLES GLOBALES//////////////////////////////////////////////////////////////////////////////////

    char m; //Modo de funcionamiento

    int conector1=0,conector2=0; //PWM duttyint giro=1; //Derecha 0 izquierda 1

    //////////////////////////////////////////////////////////////////////////////////FUNCIONES//////////////////////////////////////////////////////////////////////////////////

    //////////////////////////////////////////////////////////////////////////////////PRINCIPAL//////////////////////////////////////////////////////////////////////////////////

    void main(){

    ENABLE_INTERRUPTS(INT_CCP1); //Habilitamos CCP1ENABLE_INTERRUPTS(INT_CCP2); //Habilitamos CCP2SETUP_CCP1(CCP_PWM); //Ejecutamos CCP1SETUP_CCP2(CCP_PWM); //Ejecutamos CCP2ENABLE_INTERRUPTS(INT_TIMER2); //Habilitamos el TIMER2SETUP_TIMER_2(T2_DIV_BY_16,255,1); //Configuramos el TIMER2. Prescaler=16,PR2=255 y Postscaler=1set_pwm1_duty(0);set_pwm2_duty(0);ENABLE_INTERRUPTS(GLOBAL); //Habilitamos las interrupciones globales

    //Mostramos el menu

    puts(" SELECCION DE VELOCIDAD \n");puts("\n");puts("| [0] Motor 0 Velocidad |\n");puts("| [1] Motor 1/4 Velocidad |\n");puts("| [2] Motor 1/2 Velocidad |\n");puts("| [3] Motor 3/4 Velocidad |\n");puts("| [4] Motor 1 Velocidad |\n");puts("\n");puts("| [+] Aumentar Velocidad |\n");puts("| [] Disminuir Velocidad |\n");puts("\n");puts("| [c] Cambio de Giro 1/4 Vel. |\n");puts("\n");

    do{m = getchar(); //Almacenamos el modo de funcionamiento en lavariable "m"switch(m) //Escogemos el modo de funcionamiento{case '0': //Modo de parada{if(giro==1) //Si giro izquierda{conector1=0; //Velocidad 0

  • 7/23/2019 Proyevcto Control Dc

    4/7

    conector2=0; //Velocidad 0}else //Si giro derecha{conector1=0; //Velocidad 0conector2=0; //Velocidad 0}break;}

    case '1': //Modo de parada{if(giro==1) //Si giro izquierda{conector1=0; //Velocidad 0conector2=64; //Velocidad 64}else //Si giro derecha{conector1=64; //Velocidad 64conector2=0; //Velocidad 0}break;}

    case '2': //Modo de media velocidad{if(giro==1) //Si giro izquierda{conector1=0; //Velocidad 0conector2=128; //Velocidad 128}else //Si giro derecha{conector1=128; //Velocidad 128

    conector2=0; //Velocidad 0}break;}

    case '3': //Modo de alta velocidad{if(giro==1) //Si giro izquierda{conector1=0; //Velocidad 0conector2=192; //Velocidad 192}else //Si giro derecha

    {conector1=192; //Velocidad 192conector2=0; //Velocidad 0}break;}

    case '4': //Modo de parada{if(giro==1) //Si giro izquierda{conector1=0; //Velocidad 0conector2=255; //Velocidad 255

  • 7/23/2019 Proyevcto Control Dc

    5/7

    }else //Si giro derecha{conector1=255; //Velocidad 255conector2=0; //Velocidad 0}break;}

    case '+': //Modo de aumento de velocidad

    {if(giro==1) //Si giro izquierda{conector1=0; //Conector1 = 0if(conector2>=250) //Si velocidad de conector2 >= 240{conector2=250; //Velocidad 240}else //Si conector2 < 240{conector2=conector2+5; //Velocidad +10}}else //Si giro derecha{conector2=0; //Conector2 = 0if(conector1>=250) //Si velocidad de conector1 >= 240{conector1=250; //Velocidad 240}else //Si conector1 < 240{conector1=conector1+5; //Velocidad +10}}

    break;}

    case '': //Modo de disminucion de velocidad{if(giro==1) //Si giro izquierda{conector1=0; //Conector1 = 0if(conector2==0) //Si velocidad de conector2 = 0{conector2=0; //Velocidad = 0}else //Si conector2 > 0

    {conector2=conector25; //Velocidad 10}}else //Si giro derecha{conector2=0; //Conector2 = 0if(conector1==0) //Si velocidad de conector1 = 0{conector1=0; //Velocidad = 0}else //Si conector1 > 0

  • 7/23/2019 Proyevcto Control Dc

    6/7

    {conector1=conector15; //Velocidad 10}}break;}

    case 'c': //Modo de cambio de giro

    {

    conector1=0; //Conector1 = 0

    conector2=0; //Conector2 = 0if(giro==1) //Si giro izquierda

    {

    giro=0; //Cambia a derecha

    }

    else //Si giro derecha

    {

    giro=1; //Cambia a izquierda

    }

    break;

    }

    }

    set_pwm1_duty(conector1);set_pwm2_duty(conector2);

    }

    while(TRUE);

    }

    Simulacin en Proteus:

    Simulacin de un motor de CC controlado por Hyper Terminal

    Montaje en placa:

    https://www.youtube.com/watch?v=ILnhRNFoZqM
  • 7/23/2019 Proyevcto Control Dc

    7/7

    Funcionamiento de un motor de CC controlado por Hyper Ter

    Descargar ejercicio completo.

    (https://dl.dropboxusercontent.com/u/30591502/DPE/Practica%201.%20Motor%20DC.rar)

    de Diego Gonzlez Garca Publicado en 7. Motores Etiquetado como hyper terminal, l298, Motor CC,puente en H, PWM

    Blog de WordPress.com. | El tema iTheme2.

    Seguir

    Seguir ----------------------------------------- Diego Gonzlez Garca ---------------------------

    --------------

    Construye un sitio web con WordPress.com

    https://www.youtube.com/watch?v=ltxiNfstlHkhttps://mecatronic2.wordpress.com/tag/puente-en-h/https://wordpress.com/themes/itheme2/https://es.wordpress.com/?ref=lofhttp://void%280%29/https://mecatronic2.wordpress.com/tag/pwm/https://mecatronic2.wordpress.com/tag/l298/https://es.wordpress.com/?ref=footer_bloghttps://mecatronic2.wordpress.com/category/7-motores/https://mecatronic2.wordpress.com/tag/hyper-terminal/https://mecatronic2.wordpress.com/tag/motor-cc/https://dl.dropboxusercontent.com/u/30591502/DPE/Practica%201.%20Motor%20DC.rar