Practica de motor a pasos
-
Upload
cobymotion -
Category
Engineering
-
view
199 -
download
5
description
Transcript of Practica de motor a pasos
![Page 1: Practica de motor a pasos](https://reader036.fdocumento.com/reader036/viewer/2022082704/558a3e15d8b42a00788b4695/html5/thumbnails/1.jpg)
Diagrama de estados y autómata de practica motor a pasos
Tabla de Estados
A B C DPaso 1 1 1 0 0Paso 2 0 1 1 0Paso 3 0 0 1 1Paso 4 1 0 0 1
Diagrama de pasos de la práctica
José Luis Cobián Hermosillo, Ernesto Carlos Velazco Mercado, Roberto Huerta, Marcos Avila Rosales
![Page 2: Practica de motor a pasos](https://reader036.fdocumento.com/reader036/viewer/2022082704/558a3e15d8b42a00788b4695/html5/thumbnails/2.jpg)
Diagrama del circuito
Diseño del circuito del motor a pasos bipolar.
Código del programa en C
#include <16f84a.h>
#use delay(clock=4000000)
#define tiempo 1000
#FUSES NOWDT
#FUSES XT
#FUSES NOPUT
#FUSES NOPROTECT
int level;
//configuración para el estado 1
José Luis Cobián Hermosillo, Ernesto Carlos Velazco Mercado, Roberto Huerta, Marcos Avila Rosales
![Page 3: Practica de motor a pasos](https://reader036.fdocumento.com/reader036/viewer/2022082704/558a3e15d8b42a00788b4695/html5/thumbnails/3.jpg)
void estado1(void){
output_high(pin_b4);
output_high(pin_b5);
output_low(pin_b6);
output_low(pin_b7);
delay_ms(tiempo);
level=1;
}
//configuración para el estado 2
void estado2(void){
output_low(pin_b4);
output_high(pin_b5);
output_high(pin_b6);
output_low(pin_b7);
delay_ms(tiempo);
level=2;
}
//configuración para el estado 3
void estado3(void){
output_low(pin_b4);
output_low(pin_b5);
output_high(pin_b6);
output_high(pin_b7);
delay_ms(tiempo);
level=3;
}
José Luis Cobián Hermosillo, Ernesto Carlos Velazco Mercado, Roberto Huerta, Marcos Avila Rosales
![Page 4: Practica de motor a pasos](https://reader036.fdocumento.com/reader036/viewer/2022082704/558a3e15d8b42a00788b4695/html5/thumbnails/4.jpg)
//configuración para el estado 4
void estado4(void){
output_high(pin_b4);
output_low(pin_b5);
output_low(pin_b6);
output_high(pin_b7);
delay_ms(tiempo);
level=4;
}
int sentido;
int cambio;
int paso;
void cambiaEstado(void)
{
if(cambio==0)
{
switch(level)
{
case 1:
if(sentido==0)
estado4();
else
estado2();
break;
case 2:
José Luis Cobián Hermosillo, Ernesto Carlos Velazco Mercado, Roberto Huerta, Marcos Avila Rosales
![Page 5: Practica de motor a pasos](https://reader036.fdocumento.com/reader036/viewer/2022082704/558a3e15d8b42a00788b4695/html5/thumbnails/5.jpg)
if(sentido==0)
estado1();
else
estado3();
break;
case 3:
if(sentido==0)
estado2();
else
estado4();
break;
case 4:
if(sentido==0)
estado3();
else
estado1();
break;
}
}
}
void main(){
set_tris_a(0b1111);
set_tris_b(0b00000000);
/* while(true){
output_high(pin_b4);
output_high(pin_b5);
output_high(pin_b6);
output_high(pin_b7);
José Luis Cobián Hermosillo, Ernesto Carlos Velazco Mercado, Roberto Huerta, Marcos Avila Rosales
![Page 6: Practica de motor a pasos](https://reader036.fdocumento.com/reader036/viewer/2022082704/558a3e15d8b42a00788b4695/html5/thumbnails/6.jpg)
delay_ms(2000);
output_low(pin_b4);
output_low(pin_b5);
output_low(pin_b6);
output_low(pin_b7);
delay_ms(2000);
}*/
paso=1;
level=1;
while(1)
{
sentido=input_state(pin_a0);
cambio=input_state(pin_a1);
if(cambio==0)
output_high(pin_b3);
else
output_low(pin_b3);
cambiaEstado();
}
}
José Luis Cobián Hermosillo, Ernesto Carlos Velazco Mercado, Roberto Huerta, Marcos Avila Rosales