Está en la página 1de 5

Especialidad de Electrónica

IMPLEMENTA CIRCUITOS CON


MICROCONTROLADORES Y EN PLATAFORMAS
MODULARES
Nombre alumno(a): Hernández López Angela Silvana
Grupo: 5°B Fecha: 26/nov/21

PRACTICA No. 11.- Control de un motor paso a paso unipolar con


una secuencia de paso completo y un motor de corriente directa

OBJETIVO. - 1. Aprender las instrucciones básicas que permitan manipular los bits
de los puertos del microcontrolador

MATERIAL.

Microcontrolador 18F4550, barra de leds, interruptor (PB), multímetro, resistencias de 330Ω


capacitores (varios) cristal de 4MHz, software de programación CCS C Compiler, de
simulación PIC18 Simulador y proteus

INTRODUCCIÓN

Hoy en día en cualquier sistema digital es de vital importancia tener el conocimiento


teórico practico de protocolos de comunicación para conocer las diferentes
alternativas que podemos usar a través de una computadora personal, como es el
caso de sus puertos de comunicación, con los cuales podemos mandar y recibir
datos para controlar un proceso determinado, es por tal razón que fue diseñado este
curso, ya que en la actualidad el puerto paralelo y serial han ido desapareciendo
dejando como sucesor al puerto USB, debido a esta situación es importante conocer
el manejo del puerto USB de las computadoras personales.
Por otra parte, los participantes que toman este curso tienen que estar relacionados
de alguna manera con electricidad y electrónica básica. Se debe de tener en
consideración los conocimientos mínimos necesarios para comprender ciertos
términos que se manejan en esta disciplina

DESARROLLO DE LA PRÁCTICA

I.- Realiza un programa que genere la secuencia de paso completo de un motor


paso a paso unipolar conectado en el puerto B en los bits RBO, RB1, RB2 y RB3, y
además para el control de un motor de corriente directa con cambio de giro en el
puerto B, en los bits RB7 y RB6 en la tabla I se muestra el control.
1

Área de Electrónica
M.C. Gerardo Leyva Soto
Especialidad de Electrónica

RA RA0 Operación Salida


1
0 0 Motor paso a Puerto B
paso hacia la
derecha
0 1 Motor paso a Puerto B
paso hacia la
izquierda
1 0 Motor de cd Puerto B
hacia la derecha
1 1 Motor de cd Puerto B
hacia la
izquierda
Tabla I.- Control de operaciones.

Utiliza vectores, funciones y la sentencia if else if.

Área de Electrónica
M.C. Gerardo Leyva Soto
Especialidad de Electrónica

1.1.- Desarrollo
A continuación, como primer paso se realiza el algoritmo del programa.
A continuación, como primer paso se realiza el algoritmo del programa, ya que
terminamos el algoritmo del programa podemos pasar a realizar el diagrama de flujo
el orden de estos dos no altera o te impide hacer el otro, ya que terminamos el
diagrama de flujo podemos pasar a realizar el código, este va a hacer funcionar
nuestro proteus o nuestro circuito ya después de eso.

1.2.- Realice el algoritmo


En el listado 1 se muestra el algoritmo del programa
1. Configurar puerto B como salida
2. Configurar puerto E como entrada
3. Si la condición del primer else if es verdadera
4. Se envían los datos al puerto B y el motor empieza a girar
5. Si la condición es falsa
6. Se pasa a la siguiente condición
7. Si la condición del segundo else if es verdadera
8. Se envían los datos al puerto B
9. El motor empieza a girar en sentido contrario
10. Si la condición es falsa
11. Se pasa a la siguiente condición
12. Si la condición del tercer else if es verdadera
13. Se envían los datos al puerto B (RB6)
14. El motor gira hacia un lado
15. Si la condición es falsa
16. Se pasa a la siguiente condición
17. Si la condición del cuarto else if es verdadera
18. Se envían los datos al puerto B (RB7)
19. El motor gira hacia el otro lado
20. Si la condición es falsa
21. Regresamos al paso 3
En el listado 1 se muestra el algoritmo del programa

Área de Electrónica
M.C. Gerardo Leyva Soto
Especialidad de Electrónica

1.3.- Realice el diagrama de flujo


En la figura 2 se muestra en diagrama de flujo del programa

Área de Electrónica
M.C. Gerardo Leyva Soto
Especialidad de Electrónica

1.4.- Realice el código en el compilador en C


En el listado 1 se muestra en código en el compilador en C de la secuencia de datos
que se muestra en la tabla 1

#include<18F4550.H>
#fuses HS,NOLVP,NOWDT,NOPROTECT
#use delay(clock=20000000)
#byte portb=0xF81
#byte porte=0xF84
int vector[4]={0x01,0x02,0x04,0x08};
int vector1[4]={0x08,0x04,0x02,0x01},i;
void inicio(){
set_tris_b(0x00);
set_tris_e(0xFF);
output_b(0);
setup_adc(NO_ANALOGS);
}
void motorpasos(){
for(i=0;i<=3;i++){
portb=vector[i];
delay_ms(80);
}
}
void motorpasos1(){
for(i=0;i<=3;i++){
portb=vector1[i];
delay_ms(80);
}
}
void main(){
inicio();
while(TRUE){
if(porte==0x00){
motorpasos();
}
else if(porte==0x01){
motorpasos1();
}
else if(porte==0x02){
portb=0x40;
delay_ms(80);
}
else if(porte==0x03){
portb=0x80;
delay_ms(80);

2.- Conclusiones.
En esta práctica nos pidieron incluir un motor de corriente directa, ya que el resto
de la práctica es igual a la anterior que se nos pidió, y el anterior que se nos pidió
fue el motor unipolar.

Área de Electrónica
M.C. Gerardo Leyva Soto

También podría gustarte