Vous êtes sur la page 1sur 16

INSTITUTO POLITECNICO

NACIONAL
ESCUELA SUPERIOR DE INGENIERA
MECNICA Y ELCTRICA
UNIDAD ZACATENCO

INGENIERIA EN COMUNICACIONES Y ELECTRONICA


Nombre:
Snchez Gonzlez Ivn
Villalobos vila Gerardo Omar
Grupo:
6CM5
Trabajo:
Practica #5.

Materia:
Microprocesadores
Profesor:
Gutirrez Castillo Gerardo

Fecha: 9 de octubre de 2017


Indice

Objetivo p.3
Introduccin Terica p.3
Esquemas p.8
Diagrama de Flujo p.10
Cdigo fuente p.11
Conclusiones y Referencias Bibliograficas p.16
Objetivo de la Practica
Realizar un control de motores a travs de un microprocesador PIC18F4550

Introduccin Teorica
Motorreductores
Los reductores y motorreductores mecnicos de
velocidad se pueden contar entre los inventos
ms antiguos de la humanidad y an en estos
tiempos del siglo XXI se siguen utilizando
prcticamente en cada mquina que tengamos
a la vista, desde el ms pequeo reductor o
motorreductor capaz de cambiar y combinar
velocidades de giro en un reloj de pulsera,
cambiar velocidades en un automvil, hasta
enormes motorreductores capaces de dar
traccin en buques de carga, molinos de
cemento, grandes mquinas cavadoras de
tneles o bien en molinos de caa para la
fabricacin de azcar.

Un motorreductor tiene un motor acoplado directamente, el reductor no tiene un motor


acoplado directamente.
La sencillez del principio de funcionamiento y su grado de utilidad en una gran variedad de
aplicaciones es lo que ha construido la trascendencia de este invento al travs de los
siglos.

Entradas y salidas Digitales


Una seal digital es un tipo de seal generada por algn tipo de fenmeno
electromagntico en que cada signo que codifica el contenido de la misma puede ser
analizado en trmino de algunas magnitudes que representan valores discretos, en lugar
de valores dentro de un cierto rango. Por ejemplo, el interruptor de la luz slo puede
tomar dos valores o estados: abierto o cerrado, o la misma lmpara: encendida o apagada.
Los sistemas digitales, como por ejemplo un microcontrolador, usan la lgica de dos
estados representados por dos niveles de tensin elctrica, uno alto, H y otro bajo, L (de
High y Low, respectivamente, en ingls). Por abstraccin, dichos estados se sustituyen por
ceros y unos, lo que facilita la aplicacin de la lgica y la aritmtica binaria. Si el nivel alto
se representa por 1 y el bajo por 0, se habla de lgica positiva y en caso contrario de lgica
negativa.

Cabe mencionar que, adems de los niveles, en una seal digital estn las transiciones de
alto a bajo y de bajo a alto, denominadas flanco de bajada y de subida, respectivamente.
En una seal digital, se denomina flanco a la transicin del nivel bajo al alto (flanco de
subida) o del nivel alto al bajo (flanco de bajada).

En la siguiente imagen el flanco de bajada es detectado por el retardo que realiza la


compuerta not as cuando a la entrada haya uno las dos entradas de la or negada sern
uno y cero, por tanto la salida ser de cero, pero en el momento en que la entrada sea de
cero la conexin directa que hay a la or negada nos dar un cero inmediato en una de sus
entradas, mientras que por el retardo que presenta la not tambin tendremos un cero y
esto nos generar un uno a la salida por unos momentos, o sea la deteccin del flanco de
bajada.
Entradas digitales
Los mdulos de entrada digitales permiten conectar al autmata captadores de tipo todo
o nada como finales de carrera pulsadores...
Los mdulos de entrada digitales trabajan con seales de tensin, por ejemplo cuando por
una va llegan 24 voltios se interpreta como un "1" y cuando llegan cero voltios se
interpreta como un "0"
El proceso de adquisicin de la seal digital consta de varias etapas.

Proteccin contra sobretensiones


Filtrado
Puesta en forma de la onda
Aislamiento galvnico o por optoacoplador.

Salidas digitales
Un mdulo de salida digital permite al autmata programable actuar sobre los
preaccionadores y accionadores que admitan ordenes de tipo todo o nada.
El valor binario de las salidas digitales se convierte en la apertura o cierre de un rel
interno del autmata en el caso de mdulos de salidas a rel.
En los mdulos estticos (bornero), los elementos que conmutan son los componentes
electrnicos como transistores o triacs, y en los mdulos electromecnicos son contactos
de rels internos al mdulo.
Los mdulos de salidas estticos al suministrar tensin, solo pueden actuar sobre
elementos que trabajan todos a la misma tensin, en cambio los mdulos de salida
electromecnicos, al ser libres de tensin, pueden actuar sobre elementos que trabajen a
tensiones distintas.
El proceso de envo de la seal digital consta de varias etapas:
Puesta en forma
Aislamiento
Circuito de mando (rel interno)
Proteccin electrnica
Tratamiento cortocircuitos

L298N para motores DC


Este mdulo basado en el chip L298N te permite controlar dos motores de corriente
continua o un motor paso a paso bipolar de hasta 2 amperios.

El mdulo cuenta con todos los componentes necesarios para funcionar sin necesidad de
elementos adicionales, entre ellos diodos de proteccin y un regulador LM7805 que
suministra 5V a la parte lgica del integrado L298N. Cuenta con jumpers de seleccin para
habilitar cada una de las salidas del mdulo (A y B). La salida A esta conformada por OUT1
y OUT2 y la salida B por OUT3 y OUT4. Los pines de habilitacin son ENA y ENB
respectivamente.
En la parte inferior se encuentran
los pines de control del mdulo,
marcados como IN1, IN2, IN3 e IN4.

Conexin y funcionamiento
La entrada de tensin Vin admite tensiones entre 3V y 35V, y justo a su derecha en la
imagen tenemos el pin que debemos conectar a GND.

La tercera conexin de ese grupo V lgico puede funcionar de dos maneras:


Si el jumper del regulador est cerrado activaremos el regulador de tensin del L298N, y
en V lgico tendremos una salida de 5V, que podremos usar para lo que queramos, por
ejemplo para alimentar una placa Arduino.
Si el quitamos el jumper desactivaremos el regulador, necesitaremos alimentar la parte
lgica del mdulo, as que tendremos que meter una tensin de 5V por la conexin V
lgico para que el mdulo funcione.
Cuidado! Si introducimos corriente por V lgico con el jumper de regulacin puesto
podramos daar el mdulo.
Adems el regulador slo funciona con tensiones hasta 12V en Vin, por encima de este
valor tendremos que quitar el jumper y alimentar la parte lgica del mdulo desde otra
fuente.
El resto de conexiones se usan de una u otra forma dependiendo si vamos a manejar dos
motores de continua o un motor paso a paso. En esta sesin nos vamos a centrar en el
control de motores DC.

Las salidas para los motores A y B nos darn la energa para mover los motores. Tened en
cuenta la polaridad al conectarlos, para que cuando ms tarde hagamos que se muevan
adelante, funcionen como deberan. Si no fuera as, no tendramos ms que invertir las
conexiones.
Los pines IN1 e IN2 nos sirven para controlar el sentido de giro del motor A, y los pines IN3
e IN4 el del motor B. Funcionan de forma que si IN1 est a HIGH e IN2 a LOW, el motor A
gira en un sentido, y si est IN1 a LOW e IN2 a HIGH lo hace en el otro. Y lo mismo con los
pines IN3 e IN4 y el motor B.
Para controlar la velocidad de giro de los motores tenemos que quitar los jumpers y usar
los pines ENA y ENB. Los conectaremos a dos salidas PWM de Arduino de forma que le
enviemos un valor entre 0 y 255 que controle la velocidad de giro. Si tenemos los jumpers
colocados, los motores girarn a la siempre a la misma velocidad.
El esquema de montaje que vamos a utilizar va a ser el siguiente, aunque podis usar los
pines que queris siempre que respetemos que los que conectemos a ENA y ENB sean
PWM.
Diseos y Diagramas

Diagrama de conexin
En este caso se utilizan los leds como los polos de los motores, tomando en
cuenta lo siguiente D1 y D2 corresponden a los estados del motor uno; D3 y D4
los estados del motor dos, siendo asi las siguientes tablas de verdad:
ESTADO D1 ESTADO D2 ESTADO
MOTOR 1
0 0 Detenido
0 1 Reversa
1 0 Adelante
1 1 Bloqueado

ESTADO D3 ESTADO D4 ESTADO


MOTOR 2
0 0 Detenido
0 1 Reversa
1 0 Adelante
1 1 Bloqueado
DIAGRAMA DE FLUJO
CODIGO
;******************************************************************************

; This file is a basic template for assembly code for a PIC18F4550. Copy *

; this file into your project directory and modify or add to it as needed. *

; *

; The PIC18FXXXX architecture allows two interrupt configurations. This *

; template code is written for priority interrupt levels and the IPEN bit *

; in the RCON register must be set to enable priority levels. If IPEN is *

; left in its default zero state, only the interrupt vector at 0x008 will *

; be used and the WREG_TEMP, BSR_TEMP and STATUS_TEMP variables will not *

; be needed. *

; *

; Refer to the MPASM User's Guide for additional information on the *

; features of the assembler. *

; *

; Refer to the PIC18FXX50/XX55 Data Sheet for additional *

; information on the architecture and instruction set. *

; *

;******************************************************************************
; *

; Filename: Practica5 *

; Date: 07/10/2017 *

; File Version:1.0 *

; *

; Author:Ivan Sanchez Gonzalez *

; Gerardo Omar Villalobos Avila *

; Company:6cm5 *

; *

;******************************************************************************

; *

; Files required: P18F4550.INC *

; *

;******************************************************************************

LIST P=18F4550, F=INHX32 ;directive to define processor

#include <P18F4550.INC> ;processor specific variable definitions

;******************************************************************************

;Configuration bits

;Microchip has changed the format for defining the configuration bits, please

;see the .inc file for futher details on notation. Below are a few examples.

; Oscillator Selection:

CONFIG FOSC = XT_XT ;XT oscillator, XT used by USB

;******************************************************************************

;Variable definitions

; These variables are only needed if low priority interrupts are used.

; More variables may be needed to store other special function registers used

; in the interrupt routines.

UDATA

WREG_TEMP RES 1 ;variable in RAM for context saving

STATUS_TEMP RES 1 ;variable in RAM for context saving

BSR_TEMP RES 1 ;variable in RAM for context saving


UDATA_ACS

EXAMPLE RES 1 ;example of a variable in access RAM

;******************************************************************************

;EEPROM data

; Data to be programmed into the Data EEPROM is defined here

DATA_EEPROM CODE 0xf00000

DE "Test Data",0,1,2,3,4,5

;******************************************************************************

;Reset vector

; This code will start executing when a reset occurs.

RESET_VECTOR CODE 0x0000

goto Main ;go to start of main code

;******************************************************************************

;High priority interrupt vector

; This code will start executing when a high priority interrupt occurs or

; when any interrupt occurs if interrupt priorities are not enabled.

HI_INT_VECTOR CODE 0x0008

bra HighInt ;go to high priority interrupt routine

;******************************************************************************

;Low priority interrupt vector and routine

; This code will start executing when a low priority interrupt occurs.

; This code can be removed if low priority interrupts are not used.

LOW_INT_VECTOR CODE 0x0018

bra LowInt ;go to low priority interrupt routine


;******************************************************************************

;High priority interrupt routine

; The high priority interrupt code is placed here to avoid conflicting with

; the low priority interrupt vector.

CODE

HighInt:

; *** high priority interrupt code goes here ***

retfie FAST

;******************************************************************************

;Low priority interrupt routine

; The low priority interrupt code is placed here.

; This code can be removed if low priority interrupts are not used.

LowInt:

movff STATUS,STATUS_TEMP ;save STATUS register

movff WREG,WREG_TEMP ;save working register

movff BSR,BSR_TEMP ;save BSR register

; *** low priority interrupt code goes here ***

movff BSR_TEMP,BSR ;restore BSR register

movff WREG_TEMP,WREG ;restore working register

movff STATUS_TEMP,STATUS ;restore STATUS register

retfie

;******************************************************************************

;Start of main program

; The main program code is placed here.

ORG 0x1000
Main:

AUX EQU 0X10 ;Variable auxiliar para conteo en 10h

ROTA EQU 0X11 ;Variable contadora en 11h

VAR EQU 0X12 ;Variable de almacenamiento en 12h

CALL CONFIGPTO; Llamada para configurar el puerto D

MOVLW 0X04 ;w=04h

MOVWF AUX ;aux=w

INICIO:

MOVF PORTD, 0 ,0;W=PORTD

ANDLW 0X0F ;Operacion logica w&&0Fh

MOVWF VAR ;VAR=W

MOVFF AUX,ROTA ;ROTA=AUX

ROTACION:

RLNCF VAR ;ROTAR A LA IZQ LOS BITS DE VAR

DECFSZ ROTA ;DECREMENTO A ROTA

GOTO ROTACION ;IR A ROTACION

; HACE QUE EL NIBBLE BAJO PASE AL ALTO A TRAVES DE LA ROTACIN A LA IZQUIERDA

MOVFF VAR, PORTD;PORTD=VAR

GOTO INICIO ;IR INICIO

CONFIGPTO

movlw 0x0F;Configura las entradas mutiplexadas con el

movwf ADCON1;convertidor A/D como entradas digitales.

movlw 0x07;Configura las entradas multiplexadas con

movwf CMCON;los comparadores como entradas digitales.

MOVLW 0X0F;W=0F

MOVWF TRISD;CONFIGURA LOS BITS 7-4 COMO SALIDAS Y 3-0 COMO ENTRADAS

return

;******************************************************************************

;End of program

END

El anterior programa configura primeramente el puerto D en dos partes el nibble


bajo como entradas y el nibble alto como salidas; despues lee el nibble bajo del
Puerto D y lo guarda en WREG, posteriormente se almacena en una variable y se
rota a la izquierda para pasar la lectura del nibble bajo al alto, asi finalmente madarlo
al Puerto D en el nibble alto configurado como salida.

Conclusiones
El pic es una gran herramienta de control, pero tiene un limitacion de potencia que
hace imposible su conexin directa a motores de DC, por lo cual se aade una etapa
de potencia a travs del integrado L298n, con lo cual logramos controlar cualquier
dispositivo dc, nos dimos cuenta de cuan poderoso puede ser un microprocesador
y asi poder dar solucin a problemas comunes de control.

Referencias Bibliograficas
Datasheet PIC18F4550
Electronica Digital, Cecilio Blanco Viejo, Universidad de Oviedo.
Electronica Digital, Roger L. Tokheim, Editorial Revert, 2002.

Vous aimerez peut-être aussi