TecMikro
Programación de microcontroladores PIC en mikroC PRO
Email: tecmikro@gmail.com   Cel. 098 743 8877   Telf. 243 0352 Quito-Ecuador

Motor paso a paso unipolar de 12V


motor pap unipolar

Este motor PAP unipolar cuenta con un conector de cinco terminales, cuatro de los cuales corresponden a las bobinas y el quinto se utiliza para la conexión de la fuente de alimentación. Incorpora un mecanismo reductor de velocidad (esto incrementa enormemente su fuerza), lo que hace necesario ejecutar una cantidad bastante grande de pasos para obtener un movimiento apreciable del eje externo (ver ejemplo de programación). Es un motor de bajo costo y puede ser utilizado en múltiples proyectos tanto básicos como avanzados.

Dimensiones físicas (mm)

dimensiones-motor-pap-12v

Nota: d=diámetro
 

Ejemplo en mikroC PRO con el PIC16F628A

MotorPAP12V.c: Realizar un control de giro de un motor PAP unipolar de 12V por medio de un PIC16F628A y un driver L293D, de tal forma que el motor ejecute una secuencia repetitiva de movimientos en sentido horario y en sentido antihorario. El encendido y apagado del motor se controla por medio de un interruptor conectado al PIC en el pin RB7, de tal forma que cuando el nivel de entrada es 0 (interruptor cerrado) el motor esté apagado, y cuando el nivel sea 1 (interruptor abierto) el motor se encienda (en el ejemplo, el motor efectúa 645 pasos en sentido horario y 650 en sentido contrario). La inversión del sentido de giro también se puede hacer intercambiando los cables Azul y Amarillo (ó los cables Naranja y Rosa).

conexión-de-un-motor-pap-unipolar-de-12v

//MotorPAP12V.c
//Microcontrolador: PIC16F628A
//Oscilador: Interno 4MHz
//Modo HALF STEP (medio paso)
void pasosCW();             //Ocho pasos CW (horario).
void pasosCCW();            //Ocho pasos CCW (antihorario).
#define PAUSA 5             //5 ms
char i;
void main(){
PORTB=0x00;                 //Inicialización.
NOT_RBPU_bit=0;             //Habilitar las pull-up.
TRISB=0b10000000;           //RB<6:0> como salidas. RB7 como entrada.

while(1){
 if (RB7_bit==0){
  RB4_bit=0;                //Motor desconectado.
  RB5_bit=0;                //Motor desconectado.
 }

 if (RB7_bit==1){
  //645 pasos CW
  for (i=1; i<=80;i++)
   pasosCW();
  PORTB=0b00110110;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00110111;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00110101;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00111101;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00111001;         //Secuencia continua.
  Delay_ms(PAUSA);

  //650 pasos CCW
  PORTB=0b00111101;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00110101;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00110111;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00110110;         //Secuencia continua.
  Delay_ms(PAUSA);
  for (i=1; i<=80;i++)
   pasosCCW();
  PORTB=0b00111110;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00111010;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00111011;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00111001;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00111101;         //Secuencia continua.
  Delay_ms(PAUSA);
  PORTB=0b00111111;         //Apagar el motor.
  Delay_ms(500);           //Esperar 5 segundos antes de repetir.
 }
}
}

//Definición de funciones.
void pasosCW(){
 PORTB=0b00110110;
 Delay_ms(PAUSA);
 PORTB=0b00110111;
 Delay_ms(PAUSA);
 PORTB=0b00110101;
 Delay_ms(PAUSA);
 PORTB=0b00111101;
 Delay_ms(PAUSA);
 PORTB=0b00111001;
 Delay_ms(PAUSA);
 PORTB=0b00111011;
 Delay_ms(PAUSA);
 PORTB=0b00111010;
 Delay_ms(PAUSA);
 PORTB=0b00111110;
 Delay_ms(PAUSA);
}

void pasosCCW(){
 PORTB=0b00111110;
 Delay_ms(PAUSA);
 PORTB=0b00111010;
 Delay_ms(PAUSA);
 PORTB=0b00111011;
 Delay_ms(PAUSA);
 PORTB=0b00111001;
 Delay_ms(PAUSA);
 PORTB=0b00111101;
 Delay_ms(PAUSA);
 PORTB=0b00110101;
 Delay_ms(PAUSA);
 PORTB=0b00110111;
 Delay_ms(PAUSA);
 PORTB=0b00110110;
 Delay_ms(PAUSA);
}

 


Cómo programar microcontroladores PIC

Guía básica para programar microcontroladores PIC en mikroC PRO. Disponible en edición impresa y en formato PDF. A la venta para toda América y España.

¡Cómpralo ya!