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

Upload: cobymotion

Post on 24-Jun-2015

198 views

Category:

Engineering


5 download

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

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