Practica de motor a pasos

7
Diagrama de estados y autómata de practica motor a pasos Tabla de Estados A B C D Paso 1 1 1 0 0 Paso 2 0 1 1 0 Paso 3 0 0 1 1 Paso 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

description

Una practica en donde activamos un motor con un pic 16f84a y por medio de un boton activamos a que sentido se mueve.

Transcript of Practica de motor a pasos

Page 1: Practica de motor a pasos

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

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

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

//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

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

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