Documentos de Académico
Documentos de Profesional
Documentos de Cultura
C - Manejo Motores Tipo Paso A Paso PDF
C - Manejo Motores Tipo Paso A Paso PDF
com/ 1
OBJETIVOS
INTRODUCCIÓN
Los motores paso a paso (PAP) son motores muy utilizados en labores donde
se requiere precisión más que torque. Su uso es muy extendido en unidades de
computadora (discos duros, disqueteras, CDrom, etc) y en aplicaciones
robóticas donde no se pretenda mover grandes cargas. El control de motores
PAP con microcontroladores es muy utilizado y fácil de implementar, para ello
solo se necesita generar una secuencia sencilla.
Una vez dicho esto se pueden enunciar las secuencias de pulsos que mueven
correctamente los motores PaP (Asumiendo que la activación se hace
enviando pulsos de V+ a los terminales B)
En los pines RA0 y RA1 estará conectado dos swiches de modo que se
seleccione la secuencia a ser ejecutada de la siguiente manera:
LA INSTRUCCIÓN IF … ELSE:
Sintaxis: if(condición)
{ ;Instrucciones a ejecutar
;solo si la condición es verdadera
}
Sintaxis: if(condición)
{
; Instrucciones a ejecutar
; solo si la condición es verdadera
}
else
{
; Instrucciones a ejecutar
; solo si la condición es falsa
}
Si dentro del if o del else se requiere colocar solo una instrucción se pueden
obviar las llaves.
Ejemplos:
if (RB7==1)
{
RD0=1;
}
else
{
RD0=0;
}
If ((RB7==1)&&(RB6==1))
{
RD0=1;
}
else
{
RD0=0;
}
CÓDIGO DE EJEMPLO:
El diagrama de flujo (algoritmo) seria algo así, recuérdese, hay muchas formas
de resolver el mismo problema.
Inicio
Configurar puertos
Es
RA0=0??
Es Es
RA1=0?? RA1=0??
#include <pic.h>
#include "delay.h"
#include "delay.c"
if((RA0==0))
{
if(RA1==0) //00, no hay secuencia
{PORTB=0;//apaga los leds
PORTD=0;
}
else //01, secuencia normal
{ PORTB=0b01000000; //enciende led por el pin RB6
PORTD=0b00001100;
DelayMs(20);
PORTD=0b00000110;
DelayMs(20);
PORTD=0b00000011;
DelayMs(20);
PORTD=0b00001001;
DelayMs(20);
}
}
else //Si no, osea RA0=1;
{ if(RA1==0) //10, secuencia wave drive
{PORTB=0b10000000;//enciende led por el pin RB7
PORTD=0b00001000;
DelayMs(80);
PORTD=0b00000100;
DelayMs(80);
PORTD=0b00000010;
DelayMs(80);
PORTD=0b00000001;
DelayMs(80);
}
else //11, secuencia medio paso
{ PORTB=0b11000000;//enciende led de pines RB6 y RB7
PORTD=0b00001000;
DelayMs(150);
PORTD=0b00001100;
DelayMs(150);
PORTD=0b00000100;
DelayMs(150);
PORTD=0b00000110;
DelayMs(150);
PORTD=0b00000010;
DelayMs(150);
PORTD=0b00000011;
DelayMs(150);
PORTD=0b00000001;
DelayMs(150);
PORTD=0b00001001;
DelayMs(150);
}
}
}
}
ESQUEMA DE CONEXIONES