Está en la página 1de 53

INSTITUTO TECNOLOGICO NACIONAL DE MEXICO

CAMPUS ISTMO

INGENIERIA EN MECATRONICA

MICROCONTROLDADORES
MC GASTON DEHESA VALENCIA

UNIDAD II
PROGRAMACIN DE ENTRADAS Y SALIDAS
SALIDASSALIDASMICROCONTROLADORESPROGRAMACIN

SANTIAGO LOPEZ MARCO ANTONIO CULAJAY


SANTIAGO KIMBER GIOVANI ALONSO
VICENTE LEIBNIZ

7 MT

07/10/17

1
ndice
2.1 Arquitectura de los puertos de E/S. .............................................................................................. 3
2.2 Configuracin y caractersticas elctricas de los puertos de E/S. ................................................. 9
2.3 Estructura de los programas para microcontrolador. ................................................................. 11
2.4 Programacin de puertos con interfaces para el manejo de dispositivos perifricos sin manejo
de potencia........................................................................................................................................ 17
2.4.1 Displays de 7 segmentos. ......................................................................................................... 21
2.4.2 Displays LCD ............................................................................................................................. 22
2.4.3 Teclados (Lineal Y Matrical)...................................................................................................... 23
2.5 Programacin De Puertos Con Interfaces De Potencia Con:....................................................... 28
2.5.1 Transistores .............................................................................................................................. 28
2.5.2 Relevadores .............................................................................................................................. 29
2.5.3 Optoacpladores ........................................................................................................................ 32
2.5.3 Puentes H Discretos E Integrados ............................................................................................ 37
2.6 Desarrollo de aplicaciones para el manejo de: ........................................................................... 39
2.6.1 Lmparas .................................................................................................................................. 39
2.6.2 Zumbadores, vibradores, piezoelctricos, bocinas, etc ........................................................... 40
2.6.3 Motores de CD ......................................................................................................................... 44
2.6.4 Motores a pasos ....................................................................................................................... 45
2.6.5 Servomotores ........................................................................................................................... 50
BIBLIOGRAFIA .................................................................................................................................... 53

2
2.1 Arquitectura de los puertos de E/S.
Cualquier dispositivo (distinto de la memoria RAM) que intercambie datos con el
sistema lo hace a travs de un "puerto", por esto se denominan tambin puertos de
E/S ("I/O ports"). Desde el punto de vista del software, un puerto es una interfaz
con ciertas caractersticas; se trata por tanto de una abstraccin (no nos referimos
al enchufe con el que se conecta fsicamente un dispositivo al sistema), aunque
desde el punto de vista del hardware, esta abstraccin se corresponde con un
dispositivo fsico capaz de intercambiar informacin (E/S) con el bus.

Como los dispositivos E/S tienen algn tipo de conexin con el bus externo deben
tener una direccin (o conjunto de ellas) que los identifique. Los hemos comparado
con un telfono, un dispositivo con el que se puede enviar/recibir informacin
mediante una direccin. Hablar de un puerto E/S es casi siempre sinnimo de una
direccin, y es costumbre informtica referirse a estas direcciones en hexadecimal
De modo que, por ejemplo, un puerto puede ser 0x21 en un fuente o 21h en un texto
informtico.

Nota: Al tratar de las E/S hemos indicado que puerto es sinnimo de perifrico; un
dispositivo externo que comunica con el sistema a travs de una direccin. Sin
embargo no todos son dispositivos externos a la placa-base, de hecho algunos
dispositivos hardware incluidos en ella tienen la caracterstica de "Puertos". Por
ejemplo, durante mucho tiempo algunos PC's disponan de un botn frontal
sealado "Turbo", con el que se poda cambiar la velocidad de funcionamiento. Este
cambio de la velocidad del reloj tambin puede realizarse por software. Basta para
ello cambiar un par de bits en un "Puerto" instalado en la propia placa-base
(generalmente en el rango 62-6Fh).

Direcciones de puertos

El modelo de direccionamiento del PC ha adoptado dos modelos, segn la


naturaleza del dispositivo a conectar: Direccionamiento dedicado para dispositivos
de media/baja velocidad. Por ejemplo, puertos serie y paralelo (impresora), teclado,
Etc. y direccionamiento mapeado en memoria para dispositivos rpidos (tpicamente

3
los adaptadores grficos). En el apartado dedicado a E/S se explican las diferencias
entre ambas modalidades .

Respecto a los dispositivos de direccionamiento dedicado, desde la introduccin del


IBM-PC, es costumbre que determinados dispositivos muy comunes se conecten
mediante puertos de direcciones determinadas.

En la tabla adjunta se muestran algunas de estas direcciones tpicas para


dispositivos de E/S .Las referencias a los chips se refieren a los utilizados en los
primeros PCs. Actualmente han sido sustituidos por uno o dos integrados (Chipset)
que realizan todas las funciones.

Puede observarse que para un mismo perifrico se tienen varias direcciones (un
"rango"). La razn es que estos dispositivos tienen varios registros y/o son
programables, para lo que disponen de registros especiales (cada registro de un
Byte tiene una direccin, y estas son correlativas). Por ejemplo, el controlador de
puerto serie de los primeros PCs era un circuito integrado 8250 de National
Semiconductor; que dispone de 8 registros, aunque los datos se reciben y
transmiten por uno de ellos, el resto sirve para programar y controlar el
funcionamiento del chip.

Respecto a las asignaciones "Estandar" de algunos puertos, es pertinente hacer


algunas observaciones:

En realidad IBM defini de forma distinta las direcciones de puerto de las interfaces
de impresora en los PC monocromo y en los de color. Las asignaciones fueron las
siguientes:

PuertoMonocromo Color

LPT1 3BC-3BFh 378-37Fh

LPT2 378-37Fh 278-27Fh

LPT3 278-27Fh ---

4
En lo referente a los puertos serie, durante la secuencia inicial de identificacin del
hardware .la BIOS realiza una bsqueda de dispositivos de E/S por direcciones en
un orden determinado, y les asigna un nombre lgico segn el orden de aparicin.
En el caso de los puertos serie el orden suele ser el siguiente:

PuertoDireccin

COM1 3F8-3FFh

COM2 2F8-2FFh

COM3 3E8-3EFh

COM4 2E8-2EFh

Los usuarios de Windows 98 pueden comprobar la asignacin de puertos del


sistema mediante la utilidad msinfo032.exe(genralmente en el directorio C:\Archivos
de programa\Archivos comunes\Microsoft Shared). Los usuarios de Linux pueden
consultarse en el fichero /proc/ioportsmediante el comando

cat /proc/ioports

(lad direcciones de memoria estn expresadas en hexadecimal). En la pgina


adjunta se muestra el resultado de ambas utilidades en un caso concreto

Las direcciones mapeadas en memoria se eligieron para algunos dispositivos como


los adaptadores grficos, que requeran mover grandes cantidades de datos muy
rpidamente.

Con objeto de no causar conflictos con la RAM general, algunas de estas


direcciones fueron mapeadas desde el principio por los diseadores de IBM, fuera
de la denominada memoria convencionalEs decir, fuera del espacio de los 640 KB
que podan utilizarse en los primeros PC's para Sistema y programas de aplicacin.
Por ejemplo, el adaptador de video utiliza un rea de memoria de 128 KB mapeada
entre las direcciones A0000-BFFFFh.

5
Sin embargo, los decodificadores de direcciones de perifricos de los primitivos
PC's solo podan utilizar direcciones de 10 bits para tales accesos, por lo que las
direcciones de puertos estaban constreidas a 210 (1 KB 0000-0400h). En realidad
el espacio era an ms pequeo, puesto que los primeros 256 Bytes estaban
copados por algunos dispositivos de la placa-base, resultando que los dispositivos
E/S deban ser mapeados en 768 Bytes. Generalmente se utilizaron fragmentos de
256 Bytes en la forma xxF0-xxFFh, organizados de forma bastante desordenada.

La introduccin del AT ampli estas direcciones a 16 . Sin embargo, incluso los 64


KB resultantes eran un espacio pequeo y de organizacin catica, dado que los
nuevos dispositivos se construan de forma que fueran compatibles con las antiguas
placas ISA que solo reconocan direcciones de 10 bits. Incluso las placas para
buses posteriores que fueron desarrollados pensando en 64 KB porque deban ser
compatibles hacia atrs con las antiguas placas ISA (que coexistan en las nuevas).
El resultado de todo esto es que, incluso los sistemas actuales con muchos MB. de
RAM, deben seguir lidiando con los puertos a travs de pequeas ventanas de
memoria con localizaciones absurdas.

Comunicar con los puertos

Nos detendremos brevemente en analizar los aspectos involucrados en las


operaciones E/S con los puertos desde una doble vertiente: Lgica y fsica; esta
ltima relativa a los mecanismos involucrados en el intercambio.

Aspectos lgicos

El software utilizado depende de la modalidad de direccionamiento (dedicado o


mapeado) que se elija. En el segundo caso, se dispone un amplio repertorio de
recursos para mover datos entre los registros y la memoria (la mayora de las
instrucciones del procesador operan de esta forma), as como de los mecanismos
auxiliares de transferencia, como el acceso directo a memoria DMA.

El panorama es distinto cuando se trata de puertos de direccionamiento dedicado.


En este caso, para realizar las operaciones E/S en los procesadores 8088 y
descendientes, solo se dispone de dos instrucciones especficas: IN y OUT. La

6
primera lee un byte del registro de salida del puerto y lo sita en un registro del
procesador; la segunda escribe el contenido de un registro del procesador en un
registro del puerto. Ambas instrucciones permiten dos variaciones sintcticas:

IN acumulador-destino, direccion-de-puerto-origen

IN acumulador-destino, acumulador-origen

OUT direccin-de-puerto-destino, acumulador-origen

OUT acumulador-destino, acumulador-origen

Las dos primeras sitan el dato contenido en el puerto origen en el acumulador-


destino, que puede ser AX o AL. Observe que el puerto puede ser expresado
directamente mediante una direccin (hexadecimal) o mediante un acumulador-
origen, que debe ser DX; en este caso, su contenido se toma como direccin del
puerto que se lee.

Las instrucciones OUT sitan el valor contenido en el acumulador-origen, que puede


ser AX o AL, en el puerto destino, que puede ser identificado directamente mediante
su direccin hexadecimal, o por el valor sealado por el acumulador-destino, que
debe ser DX.

En el IBM-PC, las direcciones-de-puerto utilizadas en estas instrucciones estan en


el rango 00-FFh, aunque en la prctica solo 00-F7h, porque Intel reserva las
direcciones F8-FFh para el coprocesador metemtico . En cambio, si se utiliza la
direccin contenida en el registro DX el rango de direcciones puede moverse en el
rango 0000-FFFFh.

Por supuesto, cualquier programa que quiera utilizar puertos deber emplear directa
o indirectamente estas dos instrucciones ensamblador, aunque en muchos casos
no es imprescindible enredarse en demasiados detalles.

Los usuarios de DOS pueden utilizar servicios del Sistema; concretamente la


interrupcin 21h que realiza operaciones de E/S con puertos (utilizando IN y OUT
por supuesto). Por ejemplo, las instrucciones:

7
MOV DL,7

MOV AH,2

INT 21

provocan un pitido en el sistema bajo DOS. La explicacin es la siguiente: La ltima


instruccin invoca una interrupcin software nmero 33 (21h) que, como hemos
indicado, corresponde a los servicios del DOS. Cuando esto ocurre, se comprueba
el contenido del registro AH que en este caso es 2 (valor previamente establecido
en la segunda instruccin), lo que indica que debe escribirse un carcter en pantalla
(un dispositivo de salida); en este caso, el carcter que se enva al puerto es el
contenido del registro DL, que previamente se ha establecido en el valor 7 con la
primera instruccin. El 7 es el valor BELL ASCII ,cuando se intenta mostrar este
carcter, se produce un pitido en el altavoz del sistema.

Los dems Sistemas disponen de utilidades anlogas. Por ejemplo, los sistemas
Windows disponen de una DLL especfica para este tipo de servicios.

Aspectos fsicos

El procedimiento que se sigue el procesador para las E/S hacia puertos, es siempre
el mismo: Poner el dato en el bus de datos y la direccin en el de direcciones.
Como indicamos a continuacin, el sistema sabe que se trata de una direccin de
memoria (real o de puerto mapeado) o de un puerto de direccin dedicada, y cual
es la accin esperada (lectura o escritura) porque se dispone de 4 lneas especficas
en el bus de control

IOR Orden de lectura para dispositivo E/S conectado al bus, que debe colocar
un dato en el bus de datos.

IOW Orden de escritura para dispositivo E/S, que debe leer el dato situado en el
bus.

MEMR Esta seal indica a los dispositivos de memoria que deben colocar un dato
en el bus de datos.

8
MEMW Seal que indica a los dispositivos de memoria que deben almacenar el
dato colocado en el bus de datos.

2.2 Configuracin y caractersticas elctricas de los puertos de E/S.


Los microcontroladores PIC tienen terminales de I/O (entrada/salida) divididos en
puertos. Y estos son puentes entre el microcontrolador y el mundo exterior. Los
puertos se encuentran nombrados alfabticamente A, B, C, D, etc. Cada puerto
puede llegar a tener 8 pines que se comportan como una entrada/salida digital.

Caractersticas Principales.

Los pines de I/O (entrada/salida) de propsito general pueden considerarse como


los perifricos ms simples. Se caracterizan por ser independientes, por lo que cada
terminal se puede programar de forma independiente como I/O digital.

Para aadir flexibilidad y funcionalidad al microcontrolador, algunos pines de los


puertos tienen diferentes perifricos implementados, como pudimos ver en la
entrada anterior.

Cuando se habilita un perifrico de algn pin este deja de comportarse como un I/O
digital de propsito general.

La habilitacin como entrada o salida se realiza a travs del registro TRISx, en el


banco 1 de la memoria RAM. Un valor 0 en estos registros indica que el terminal
correspondiente del puerto se configurar como salida, sin embargo con un 1 el pin
pasar a ser una entrada.

TRISA: 85h

TRISB: 86h

TRISC: 87h

TRISD: 88h

9
Y la gestin del bus de datos se realiza a travs del registro PORTx, en este caso
en el banco 0 de la memoria RAM. Cuando se lee un puerto, el PIC lee los valores
presentes en los pines (No en el LATCH). Por ello ah que tener muy en cuenta los
comandos leer-modificar-escribir (read-modify-write RMW) aplicados a los puertos
y al cambiar el sentido de circulacin de un pin de entrada a salida.

PORTA: 05h

PORTB: 06h

PORTC: 07h

PORTD: 08h

10
2.3 Estructura de los programas para microcontrolador.
El lenguaje C data del ao 1972; fue creado por los laboratorios Bell como resultado
de la necesidad de reescribir los sistemas operativos UNIX con el fin de optimizar el
conocido cdigo ensamblador. De igual manera el lenguaje C fue la evolucin de
lenguajes previos llamados B, y BCPL. El nuevo lenguaje C, rpidamente tom
fuerza por su funcionalidad y facilidad en la implementacin en diversos sistemas
computacionales que requeran cdigos de mquina.

La forma del lenguaje C, se fundamenta en un complejo estructural que requiere un


amplio estudio de las mismas, sin embargo para la programacin de los
microcontroladores el estudiante requiere una porcin fundamental que le permita
iniciar y crear los primeros proyectos en MikroC PRO, para este fin el actual captulo
se centra en conocer las nociones necesarias para iniciar el estudio de los
microcontroladores con este libro.

Declaracin de variables en lenguaje C

Las variables bsicas en este compilador especfico son:

bit

char

short

int

long

float

double

11
Las variables bit permiten almacenar un valor lgico es decir verdadero o falso, 0
1.

Las variables char se utilizan para almacenar caracteres codificados con el cdigo
ASCII, son tiles para guardar letras o textos.

Una variable short almacena un nmero entero de 8 bits corto puede valer de: -127
a 127.

Las variables tipo int guardan nmeros enteros de 16 bits, est variable permite
guardar nmeros de: -32767 a 32767.

La variable tipo long almacena nmeros enteros largos de 32 bits, su rango puede
ser de:

-2147483647 a 2147483647.

Las variables tipo float y double permiten guardar nmeros con punto decimal.

Las anteriores variables pueden declararse incluyendo el signo positivo y negativo,


o se pueden declarar por medio de la opcin sin signo con la directriz unsigned.

en la siguiente tabla se pueden apreciar las caractersticas de las variables.

Tipo de variable Tamao en Bytes Valores que soporta

12
bit 1 01

char 1 -127 a 127

short 1 -127 a 127

int 2 - 32767 a 32767

long 4 - 2147483647 a 2147483647

float 4 -1.5x10^45 a 3.4x10^38

double 4 -1.5x10^45 a 3.4x10^38

unsigned char 1 0 a 255

unsigned short 1 0 a 255

unsigned int 2 0 a 65535

unsigned long 4 0 a 4294967295

La declaracin de variables se realiza indicando el tipo de variable seguido de un


nombre que el desarrollador asigna arbitrariamente a la variable. En el punto de la
declaracin de una variable es posible dar un valor inicial a cada una de las variables

13
sin embargo este ltimo no es estrictamente necesario. Por ltimo la declaracin
debe culminar con el carcter punto y coma (;).

En los siguientes ejemplos se puede apreciar como se hacen las declaraciones:

bit VARIABLE1_BIT; //Declaracin de una variable tipo bit.

char CARACTER; //Declaracin de una variable tipo char.

char CARACTER2='J'; //Declaracin de una variable tipo char inicializada con el

//valor ASCII del carcter J.

int ENTERO=1234; //Declaracin de una variable tipo entera inicializada con

//el valor 1234.

float DECIMAL=-12.45; //Declaracin de una variable con punto decimal

//inicializada con el valor -12,45.

double DECIMAL2=56.68; //Declaracin de una variable con punto decimal

//inicializada con el valor 56,68.

long ENTERO2=-954261; //Demacracin de una variable de tipo entero largo

//inicializada con el valor -954261.

Los siguientes ejemplos muestras como declarar variables sin signo:

unsigned char CARACTER; //Declaracin de una variable tipo char sin signo.

unsigned int ENTERO; //Declaracin de una variable tipo entera sin signo.

14
unsigned long ENTERO2; //Demacracin de una variable de tipo entero largo sin
signo.

Las variables tambin pueden ser declaradas en un formato que asocia varias
variables a un mismo nombre, este formato se conoce como una cadena de
variables, o un vector e incluso puede ser una matriz de variables, en conclusin
este tipo de declaraciones pueden ser de una o ms dimensiones.

El siguiente ejemplo muestra un vector de caracteres, o tambin conocido como una


cadena de caracteres:

char Texto[20]; //Cadena de caracteres con 20 posiciones de memoria.

De igual manera las cadenas de caracteres o de variables pueden ser declaradas


con un valor inicial, este tipo de declaracin se puede ver en el siguiente ejemplo:

char Texto[20] = Nuevo Texto; //Declaracin de una cadena de caracteres

//inicializada con el texto: Nuevo Texto.

int Enteros[5]={5,4,3,2,1}; //Declaracin de una cadena de enteros con

15
//valores iniciales.

float Decimales[3]={0.8,1.5,5.8}; //Declaracin de una cadena de nmeros con

//punto decimal inicializadas.

La declaracin de las variables debe respetar algunas reglas bsicas que evitan
errores y contradicciones en la compilacin del cdigo, para este fin tenga presente
las siguientes recomendaciones:

Las variables no deben tener nombres repetidos.

Las variables no deben empezar por un nmero.

Una variable no puede utilizar caracteres especiales como: / * ; { }-\! % &.

A continuacin se muestran ejemplos de declaraciones de variables que no se


pueden hacer:

bit 1_VARIABLE-;

char -CARCTER!;

int 3ENTERO*;

De igual manera es posible crear estructuras de informacin como un nuevo tipo de


variable creada por el desarrollador. Ests estructuras se pueden realizar con las
variables ya predefinidas y pueden ser declaraciones de variables o de arreglos de
variables. Este tipo de estructuras se declarar, por medio de la directriz: typedef
struct, y la forma de declarar una variable creada por el desarrollador es la siguiente:

16
typedef struct

char Nombre[10];

int Edad;

}Usuario;

La siguiente es la forma de usar una variable personalizada por el desarrollador:

Usuario U; U.Edad = 25; U.Nombre[0]=J;

U.Nombre[1]=u;

U.Nombre[2]=a;

U.Nombre[3]=n; U.Nombre[4]=0

2.4 Programacin de puertos con interfaces para el manejo de dispositivos


perifricos sin manejo de potencia.
Para que un computador pueda ejecutar un programa debe ser ubicado previamente
en la memoria, junto con los datos sobre los que opera, y para ello debe existir una
unidad funcional de entrada de informacin capaz de escribir en la memoria desde
el exterior. Anlogamente, para conocer los resultados de la ejecucin de los
programas, los usuarios debern poder leer el contenido de la memoria a travs de
otra unidad de salida de datos. La unidad de Entrada/Salida (E/S) soporta estas
funciones, realizando las comunicaciones del computador (memoria) con el mundo
exterior (perifricos). Los dispositivos perifricos que se pueden conectar a un
computador se suelen clasificar en tres grandes grupos:

Dispositivos de presentacin de datos. Son dispositivos con los que interactan los
usuarios, portando datos entre stos y la mquina, por ejemplo, ratn, teclado,
pantalla, impresora, etc.

Dispositivos de almacenamiento de datos. Son dispositivos que forman parte de la


jerarqua de memoria del computador. Interactan de forma autnoma con la

17
mquina, aunque tambin sirven para el intercambio de datos con el usuario, por
ejemplo, los discos magnticos.

Dispositivos de comunicacin con otros procesadores. Permiten la comunicacin


con procesadores remotos a travs de redes, por ejemplo, las redes de rea local o
global.

Dispositivos de adquisicin de datos. Permiten la comunicacin con sensores y


actuadores que operan de forma autnoma en el entorno del computador. Se
utilizan en sistemas de control automtico de procesos por computador y suelen
incorporar conversores de seales A/D y D/A.

Los dispositivos de transporte y presentacin de datos representan una carga muy


baja de trabajo para el procesador comparados con los dispositivos de
almacenamiento. La siguiente tabla muestra las velocidades de transferencia tpicas
para diferentes dispositivos:

Dispositivos Velocidad

Sensores 1 Bps 1 KBps

Teclado 10 Bps

Lnea de comunicaciones 30 Bps 20 MBps

Pantalla (CRT) 2 KBps

Impresora de lnea 1 5 KBps

Cinta (cartridge) 0.5 2 MBps

Disco 4.5 MBps

Cinta 3-6 MBps

Aunque la velocidad de transferencia de los dispositivos de presentacin de datos


ha sido tradicionalmente lenta comparada con la de los dispositivos de
almacenamiento, en los ltimos tiempos la situacin est cambiando. Cada vez

18
ms, los computadores se utilizan para manejar documentos multimedia que
constan de grficos, vdeos y voz. La siguiente tabla presenta algunos parmetros
de transferencia para los dispositivos modernos de E/S multimedia:

Medio Velocidad Retardo mximo

Grficos Vdeo

Voz 1 MBps

100 MBps

64 KBps 1 - 5 segundos

20 milisegundos

- 300 milisegundos

Los grficos requieren una gran capacidad de procesamiento de datos, hasta el


punto que se han diseado procesadores de propsito especial para manejar de
forma eficiente las representaciones grficas (GPU: Graphic Processor Unit).

El problema del vdeo es simplemente la animacin de los problemas grficos, ya


que debe crearse una nueva imagen cada 1/30 de segundo (33 milisegundos).

El procesamiento de la voz es tambin elevado porque exige la creacin o el


reconocimiento de varios fonemas en tiempo real. De hecho es el medio que ms
capacidad de procesamiento requiere debido a que presenta el mayor grado de
intolerancia por retrasos en el usuari

19
Los dispositivos perifricos que pueden conectarse a un computador para realizar
entrada y salida de informacin presentan, pues, las siguientes caractersticas:

Tienen formas de funcionamiento muy diferentes entre s, debido a las diferentes


funciones que realizan y a los principios fsicos en los que se basan.

La velocidad de transferencia de datos es tambin diferente entre s y diferente de


la presentada por la CPU y la memoria.

Suelen utilizar datos con formatos y longitudes de palabra diferentes

No obstante estas diferencias, existen una serie de funciones bsicas comunes a


todo dispositivo de E/S:

Identificacin nica del dispositivo por parte de la CPU

Capacidad de envo y recepcin de datos

Sincronizacin de la transmisin, exigida por la diferencia de velocidad de los


dispositivos de E/S con la CPU

La identificacin del dispositivo se realiza con un decodificador de direcciones. El


envo y la recepcin de datos tiene lugar a travs de registros de entrada y salida
de datos. Los circuitos de sincronizacin se manipulan por medio de registros de
estado y control. El siguiente esquema representa grficamente estas funciones:

Las tres funciones bsicas se pueden realizar a travs del bus del sistema que
conecta la memoria y la CPU, o bien se puede utilizar un bus especfico para las
operaciones de E/S. Estas alternativas se traducen en dos formas de organizacin
de los espacios de direcciones:

20
Espacios de direcciones unificados

Las unidades de E/S se ubican en el espacio nico de direcciones como si fuesen


elementos de memoria. A cada unidad de E/S se le asigna un conjunto de
direcciones (suficiente para diferenciar todos sus registros internos). La interaccin
entre CPU y unidad de E/S se realiza a travs de instrucciones de referencia a
memoria. El bus del sistema es nico.

bus del sistema

2.4.1 Displays de 7 segmentos.


El display de 7 segmentos, es un componente que se utiliza para la representacin
de nmeros en muchos dispositivos electrnicos.

Cada vez es ms frecuente encontrar LCDs en estos equipos (debido a su bajsima


demanda de energa), todava hay muchos que utilizan el display de 7 segmentos
por su simplicidad.

Este elemento se ensambla o arma de manera que se pueda activar cada segmento
(diodo LED) por separado logrando de esta manera combinar los elementos y
representar todos los nmeros en el display (del 0 al 9). El display de 7
segmentosms comn es el de color , por su facilidad de visualizacin.

Cada elemento del display tiene asignado una letra que identifica su posicin en el
arreglo del display. Ver el grfico arriba

Si se activan todos los segmentos: a,b,c,d,f,g se forma el nmero 8

Si se activan slo los segmentos: a,b,c,d,f, se forma el nmero 0

Si se activan slo los segmentos: a,b,g,e,d, se forma el nmero 2

Si se activan slo los segmentos: b,c,f,g, se forma el nmero 4

Si se activan slo los segmentos: a,b,g,c,d, se forma el nmero 3

Si se activan slo los segmentos: a,f,g,c,d, se forma el nmero 5

p.d. representa el punto decimal

21
El display de nodo comn

En el display nodo comn, todos los nodos de los diodos LED unidos y
conectados a la fuente de alimentacin. En este caso para activar cualquier
elemento hay que poner el ctodo del elemento a tierra a travs de una resistencia
para limitar la corriente que pasa por el elemento

El display de ctodo comn

El display ctodo comn tiene todos los nodos de los diodos LED unidos y
conectados a tierra. Para activar un segmento de estos hay que poner el nodo del
segmento a encender a Vcc (tensinde la fuente) a travs de una resistencia para
limitar el paso de la corriente

2.4.2 Displays LCD


LCD Display de Cristal Liquido. Liquid Crystal Display

Los Display LCD son visualizadores pasivos, esto significa que no emiten luz como
el visualizador o display alfanumrico hecho a base de un arreglo de diodos LEDs.
Es por esa razn que, algunas veces, cuando intentamos ver la hora en un reloj que
utiliza esta tecnologa, es necesario una fuente de luz adicional.

El Display LCD tiene muy bajo consumo de energa si se lo compara con el display
o visualizador alfanumrico y son compatibles con la tecnologa CMOS,
caracterstica que permite que se utilice en equipos porttiles (ejemplo: los relojes
de pulsera, calculadoras, etc.). Tiene una vida aproximada de 50,000 horas. Hay
diferentes tipos de presentaciones y son muy fciles de configurar. Hay desde
visualizadores comunes de 7 segmentos, hasta una matriz de puntos, todos ellos
muy delgados.

22
Cmo funciona un Display LCD?

El LCD modifica la luz que lo incide. Dependiendo de la polarizacin que se est


aplicando, el LCDreflejar o absorber ms o menos luz. Cuando un segmento
recibe la tensin de polarizacin adecuada no reflejar la luz y aparecer en la
pantalla del dispositivo como un segmento oscuro. Seguro que ms de un lector
habr visto este fenmeno en calculadoras, relojes, etc.

El lquido de un display LCD est entre dos placas de vidrio paralelas con una
separacin de unos micrones. Estas placas de vidrio tienen unos electrodos
especiales que definen, con su forma, los smbolos, caracteres, etc. que se
visualizarn. La superficie del vidrio que hace contacto con el lquido es tratada de
manera que induzca la alineacin de los cristales en direccin paralela a las placas.
Esta alineacin permite el paso de la luz incidente sin ninguna alteracin.

Cuando se aplica la polarizacin adecuada entre los electrodos, aparece un campo


elctrico entre estos electrodos (campo que es perpendicular a las placas) y esto
causa que las molculas del liquido se agrupen en sentido paralelo a este (el campo
elctrico) y cause que aparezca una zona oscura sobre un fondo claro (contraste
positivo). De esta manera aparece la informacin que se desea mostrar.

2.4.3 Teclados (Lineal Y Matrical)


Un teclado matricial es un simple arreglo de botones conectados en filas y
columnas, de modo que se pueden leer varios botones con el mnimo nmero de
pines requeridos. Un teclado matricial 4x4 solamente ocupa 4 lneas de un puerto
para las filas y otras 4 lneas para las columnas.

23
De este modo se pueden leer 16 teclas utilizando solamente 8 lneas de un
microcontrolador. Si asumimos que todas las columnas y filas inicialmente estn en
alto (1 lgico), la pulsacin de un botn se puede detectar al poner cada fila a en
bajo (0 lgico) y checar cada columna en busca de un cero, si ninguna columna
est en bajo entonces el 0 de las filas se recorre hacia la siguiente y as
secuencialmente.

Un modo simple de detectar la tecla presionada es incrementar una variable


con la cuenta de las teclas revisadas, de este modo al detectar una pulsacin el
valor de la cuenta ser el valor de la tecla presionada.

Si al final no se presion ninguna tecla la variable se pone a cero y la cuenta


vuelve a comenzar. El puerto B del microcontrolador 16f628 (as como en el 16f877)
viene preparado especialmente para el control de un teclado matricial 4x4.

Para tener siempre un valor de 1 lgico en las columnas del teclado (parte
alta del puerto B del pic) es necesario conectar resistencias de pull-up, sin embargo
el puerto B cuenta con resistencias de pull-up integradas, de ese modo es posible
trabajar con un teclado matricial sin necesidad de ningn componente externo.

Las resistencias de pull-up del puerto B se habilitan poniendo en 0 el bit


NOT_RBPU del registro OPTION_REG.Al mtodo aqui expuesto para detectar la
pulsacin de una tecla en un teclado matricial se le conoce como muestreo
secuencial.

Existen otros, sin embargo est es tal vez el ms sencillo. En el siguiente


ejemplo cada tecla del teclado matricial tiene un valor de 0 a F, valor que se
despliega en un display de 7 segmentos. El cdigo necesario para leer un teclado
matricial con un microcontrolador pic 16f628 es el siguiente.

Programa principal:

24
El programa principal es muy sencillo, simplemente configura el puerto A como
salida, la parte baja del puerto B tambin como salida y la parte alta del puerto B
como entrada. Adems de configurar los puertos tambin se habilitan las
resistencias de pull-up internas con la lnea bcf OPTION_REG, NOT_RBPU.

Despus de la configuracin se llama a una rutina llamada TECLADO


encargada de escanear el teclado y regresar el valor de la tecla pulsada para poder
desplegar el nmero correspondiente en un display de 7 segmentos y el programa
ah se queda en un ciclo llamando a la rutina TECLADO y despus desplegando y
repitiendo lo mismo cclicamente. La rutina TECLADO escanea el teclado matricial
usando el mtodo que ya se mencion.

Primero se carga un 0 a la primera fila, despus se checa columna a columna


si hay un cero, en caso de que no se detecte ningn cero, el cero de las filas se
recorre y se vuelven a revisar las columnas. Si no se detect ningn cero significa
que no se presion ninguna tecla y la rutina vuelve a comenzar.

Si se detect un cero significa que se presion una tecla y en ese momento


la salta a la rutina ANTIRREBOTES. Despus de eliminar los rebotes se decodifica
la tecla pulsada utilizando una tabla como la que se utiliz en el ejemplo del display
de 7 segmentos.

25
26
27
2.5 Programacin De Puertos Con Interfaces De Potencia Con:

2.5.1 Transistores
Los actuadores DC, requieren de corriente siempre directa es decir que siempre
circula en la misma direccin. Para el uso de estos actuadores se implementan
esencialmente dos tipos de dispositivos, los transistores de potencia o los
relevadores.

Los transistores pueden ser BJT, o MOSFET. Un transistor BJT, se


caracteriza por controlar una corriente por medio de otra corriente. Los MOSFET,
permiten controlar un flujo de corriente por medio de una diferencia de potencial.

Los transistores funcionan en tres zonas, conocidas como corte, saturacin


y activa. La zona activa es comn en los sistemas de amplificacin de seal. Sin
embargo para el caso de los actuadores se requieren en la mayora de los casos
ser activados y desactivados, o tener un comportamiento ON, OFF.

En otras palabras los transistores se usan en corte y saturacin. Bajo estos


trminos los transistores trabajan como interruptores de corriente, en las zonas de
corte y saturacin. La vista de los transistores en ISIS es la siguiente:

Los transistores MOSFET, controlan la corriente que circula entre la fuente


S, y el drenador0 D, por medio de la diferencia de potencial elctrico sobre la
compuerta G. Los transistores BJT, controlan la corriente que fluye entre el colector
C, y el emisor E, por medio de la corriente que circula por la base B. El uso de
cargas inductivas como motores, relevadores o solenoides, tienen la propiedad de
almacenar energa en forma de campo electromagntico, esto implica que cuando
las cargas inductivas son des energizadas, ests devuelven su energa por medio
de una corriente inversa, este fenmeno puede causar daos en los sistemas
controlados con transistores, para evitar este problema se debe usar un diodo

28
rectificador polarizado en inverso para descargar las cargas inductivas, este arreglo
se muestra en el siguiente circuito:

2.5.2 Relevadores
Los relevadores son dispositivos electromecnicos, que tienen un electroimn con
el cual se cierra o se abre un circuito elctrico por medio de uno o varios contactos.
Los relevadores son ideales para aislar los circuitos de potencia con la etapa de
control electrnico.

De igual manera son dispositivos de bajo rendimiento, dado que no pueden


hacer cambios de estado veloces, y con el uso constante los contactos elctricos
se deterioran con el tiempo. La apariencia fsica y la vista en ISIS, de estos
dispositivos es la siguiente:

Por ltimo el uso de estos dispositivos se debe hacer de forma final como se
puede observar en el siguiente circuito, que tiene una carga de 120V AC:

29
Los motores DC, son de naturaleza inductiva y por consiguiente merecen el
mismo tratamiento de los relevadores. En el siguiente ejemplo se puede apreciar
como un microcontrolador hace cambios de velocidad en un motor DC, para este
fin se implementa el mdulo PWM de un microcontrolador 16F628A, con oscilador
de 4MHz. El cdigo fuente en lenguaje C es el siguiente:

30
Para poder hacer la simulacin de este ejemplo se debe implementar en ISIS los
dispositivos: 16F628A, BUTTON, RES, 2N3904, 1N4001, y MOTOR ACTIVE.
Configurados como se puede apreciar en el siguiente circuito:

En funcin de la intensidad de corriente se puede cambiar el transistor para


optimizar el funcionamiento de los sistemas. Un transistor como el 2N3904 puede
controlar una corriente de 200m Amperios, y un TIP31 puede controlar una corriente
de 3 Amperios, en funcin de la referencia y sus caractersticas, se puede asumir
un mximo de corriente.

31
2.5.3 Optoacpladores
Para el uso de actuadores AC, se pueden usar esencialmente dos tcnicas, la
primera es la implementacin de relevadores con la limitacin de que solo pueden
hacerse acciones de conmutacin ON, OFF.

Sin embargo se pueden implementar dispositivos en estado solid como los


TRIAC, estos dispositivos permiten manipular cargas AC, y pueden regular su
potencia haciendo recorte de fase de la seal AC, que generalmente es de 60Hz.

Los TRIAC son de fcil implementacin y su uso puede hacerse aislando las
corrientes de potencia con opt acopladores como los MOC3011, 3010, 3021, etc.
Los TRIAC se pueden adquirir en capacidad de la mxima corriente que pueden
soportar.

Un TRIAC cuenta con tres terminales que son: A1, A2, y gate, los TRIAC
cortocircuitan las terminales A1, y A2, cuando una corriente circula entre el gate y
A1. Y solo se desconecta cuando la corriente de A2 se hace 0, esto es cosible
cuando la seal AC, hace su cruce por cero. La apariencia fsica y la vista en ISIS
de estos dispositivos es la siguiente:

Como se puede observar en la grfica los MOC, son dispositivos que


internamente tienen un TRIAC, pero la corriente que pueden soportar es
relativamente pequea, y a su vez lo suficientemente grande para disparar otro
TRIAC de mayor potencia.

Tambin se puede observar que la compuerta gate de los MOC, se activa


por medio de la luz emitida por un LED, este tambin est incorporado en el mismo
encapsulado. En conclusin un TRIAC de gran potencia puede ser activado por

32
medio de un circuito digital con solo la activacin de un LED. Para entender este
arreglo de forma clara, se puede observar el siguiente circuito:

Para lograr la regulacin de la potencia sobre una carga AC, se hace


necesario hacer un recorte sobre la fase, de la seal de poder seno. La red elctrica
comercial tiene 120V AC, y una frecuencia de 60Hz.

Lo que indica que un siclo de la red elctrica dura 1/60, es decir 16,666m
segundos. El trabajo de recorte de la fase se debe hacer sobre cada medio siclo es
decir en 8,333m segundos. Lo anterior indica que el recorte de fase se hace entre
0 y 180 grados, y se repite igual entre 180 y 360 grados. Para comprender de forma
clara este concepto se puede observar la siguiente grfica:

33
Para poder realizar el recorte de fase, es indispensable detectar el cruce por cero
de la seal seno, para sincronizarse con ella. Para detectar el cruce por cero existen
diversas estrategias, sin embargo en el prximo ejemplo se mostrar una que
implica la implementacin de opto acopladores.

El uso de opto acopladores es ideal para hacer un aislamiento elctrico de


la etapa de potencia con la etapa de electrnica de control. El siguiente programa
usa un PIC 16F628A, con frecuencia de reloj de 20MHz:

34
35
Para realizar la simulacin de este ejercicio se implementa en ISIS los dispositivos:
16F628A, RES, BUTTON, MOC3023, Q4006L4, B80C1000, OPTOCOUPLER-NPN,
VSINE, y el OSCILLOSCOPE. El circuito electrnico es el siguiente:

36
2.5.3 Puentes H Discretos E Integrados
Los puentes H son arreglos transistorizados que permiten invertir la polaridad sobre
una carga elctrica, con el suministro de solo una fuente sencilla. Los puentes H,
se pueden implementar en discreto con transistores o usar mdulos integrados que
se pueden conseguir comercialmente. Estos arreglos cuentan con dos seales de
control que permiten activar la polaridad positiva, y negativa. Un diseo discreto de
este arreglo se puede apreciar en el siguiente circuito:

37
Para activar una polaridad positiva, se activa el control 1, y se apaga el control 2,
para activar la polaridad negativa se hace la configuracin contraria con los pines
de control. Se debe tener presente que nunca se podrn activar los dos puntos de
control al mismo tiempo, est accin genera un corto circuito entre Vcc, y referencia,
produciendo daos considerables sobre los transistores. El siguiente ejemplo
muestra el control de giro sobre un motor DC, por medio de un microcontrolador
16F628A:

38
2.6 Desarrollo de aplicaciones para el manejo de:

2.6.1 Lmparas
Una lmpara incandescente consta un filamento conductor que se encuentra dentro
de una ampolla de vidrio sobre la cual se ha hecho vaco. El filamento est
conectado a la base de la lmpara, de forma tal que cuando hacemos pasar
corriente obtenemos luz. Cmo explica la fsica esto?

Bsicamente la explicacin sencilla sera la siguiente. Todo conductor se calienta


cuando por el mismo circula corriente. Esto, en fsica, se conoce como Efecto Joule.
La temperatura que alcanza el cuerpo est relacionada con la resistencia interna
del conductor (que acta oponindose al paso de la corriente) y la intensidad de la
corriente. As, a mayor resistencia del conductor mayor temperatura adquirir al
hacer pasar una corriente por el mismo. sta es precisamente la base del
funcionamiento de la lmpara incandescente. El filamento posee una alta
resistencia. Esto ocasiona que se caliente y adquiera una alta temperatura al hacer
circular una corriente por la lmpara. Ahora bien, Cmo se relaciona sta
temperatura con la luz emitida?
Para entenderlo hay que primero recordar que la luz es una radiacin
electromagntica, correspondiente a un rango de longitudes de onda en el espectro.
Pero tambin existen otros tipos de radiacin, correspondientes a distintas
longitudes de onda. stas son las ondas radio, infrarrojas, ultravioletas, etc. Ahora
bien, todo cuerpo emite radiacin electromagntica. Dicha radiacin depende de la
temperatura del cuerpo. As,a menor temperatura se emiten ondas de mayor
longitud de onda, y a mayor temperatura ondas de menor longitud de onda. Y as
terminamos entonces de explicar cmo emite luz el filamento una vez que es
calentado por el Efecto Joule. En efecto, al aumentar de temperatura el filamento
va emitiendo radiacin de cada vez menor longitud de onda, hasta llegar al rango
de luz visible. Es decir, el filamento se calienta a una temperatura a la cual emite

39
(principalmente) radiacin visible (luz). Esa es la luz que emite la lmpara
incandescente.

2.6.2 Zumbadores, vibradores, piezoelctricos, bocinas, etc


El buzzer o zumbador
El zumbador buzzer o piezo speaker en ingls-, es un elemento capaz de
transformar la electricidad en sonido.

Figura 2.6.2.1 Zumbador

El corazn de los buzzer piezoelctricos es un componente electrnico formado a


partir de la combinacin de dos discos de distintos materiales. Uno de ellos es
metlico y el otro, generalmente es de cermica, y ambos tienen propiedades
piezoelctricas. Cuando se le aplica un voltaje al componente, los materiales se
repelen produciendo un click audible (chasquido). Poniendo a cero la diferencia de
tensin, har que los materiales vuelvan a su posicin inicial, produciendo de nuevo
un sonido de click.

Si el disco es controlado por un circuito oscilante externo se habla de un transductor


piezo elctrico. Si el circuito oscilador est incluido en la carcasa, se le denomina
zumbador piezoelctrico.

40
Figura 2.6.2.2 componentes

Aplicaciones

Los generadores de sonidos piezoelctricos son dispositivos aptos para el diseo


de alarmas y controles acsticos de estrecho rango de frecuencia, por ejemplo en
aparatos domsticos y de medicina.

Montaje

Primero vamos a fijarnos en el buzzer, como veris tiene dos cables, el negro y el
rojo, que conectaremos:

El negro al GND o polo negativo de la pila.


El rojo al polo positivo.
Es importante recordar que la presencia de los dos colores de los cables revelan
que los piezos tienen polaridad, y que los cables indican precisamente como
conectar nuestro dispositivo a la placa

Piezoelctrico

Los cristales que adquieren carga elctrica cuando se comprimen, retuercen o


distorsionan, se dicen que son piezoelctricos. Este efecto transductor entre las
oscilaciones elctricas y mecnicas, tiene una utilidad prctica. El cuarzo muestra
esta propiedad y es extremadamente estable. Los cristales de cuarzo se utilizan en
los osciladores de relojes, y como cristales de frecuencia de referencia precisa, en
los transmisores de radio. La sal de Seignette, mediante su compresin, produce un

41
voltaje comparativamente grande, y se utiliz en los primeros micrfonos de cristal.
El titanato de bario, el zirconato de plomo, y el titanato de plomo, son materiales
cermicos que exhiben piezoelectricidad, y se utilizan en transductores
ultrasnicos, as como en micrfonos. Si se aplica una oscilacin mecnica a dichas
obleas cermicas, estas respondern con vibraciones mecnicas, las cuales
proporcionan de fuentes de sonidos ultrasnicos. El titanato zirconato de plomo
(PZT), ha sido el material piezoelctrico estndar en los procesos de formacin de
imgenes mdicas. Los materiales cermicos piezoelctricos, han encontrado uso
en la produccin de movimientos del orden de nanmetros, en el control de
los microscopios de efecto tnel.

La palabra piezo viene del griego "comprimir". El efecto conocido como


piezoelectricidad, fu descubierto por los hermanos Pierre y Jacques Curie cuando
tenan 21 y 24 aos de edad en 1880.

Hay una analoga magntica, donde el material ferromagntico responde


mecnicamente a los campos magnticos. Este efecto llamado magnetostriccin,
es el responsable del familiar zumbido de los transformadores, y otros aparatos de
AC que contienen ncleos de hierro.

Aplicaciones

Un disco piezoelctrico genera voltaje cuando es deformado (cambio drstico en la


forma).

Los sensores piezoelctricos se consideran herramientas verstiles para la


medicin de distintos procesos, por ejemplo en garantas de calidad, procesos de
control o investigacin y desarrollo en diferentes campos industriales. Aunque el
efecto piezoelctrico fue descubierto por Pierre Curie en 1880, no comenz a ser
implementado en las areas sensoriales de la industria hasta 1950. Desde
entonces, el uso de este principio de medicin se ha incrementado, debido a su fcil
manejo y su alto nivel de fiabilidad. Tiene aplicaciones en campos como la medicina,
la industria aeroespacial y la instrumentacin nuclear, as como en pantallas
tctiles detelfonos mviles. En la industria automovilstica, los elementos

42
piezoelctricos se utilizan para monitorear la combustin durante el desarrollo
de motores de combustin interna, bien montados directamente en hoyos
adicionales en la culata o en las bujas, que estn equipadas con un sensor
piezoelctrico en miniatura.

A pesar de que los sensores piezoelctricos son sistemas electromecnicos que


reaccionan a la compresin, los elementos sensoriales muestran una deflexin casi
nula. A ello se debe la alta precisin de estos sensores, ya tienen una frecuencia
natural muy alta y una buena linealidad en amplio rango. Adems, la tecnologa
piezoelctrica es insensible a campos electromagnticos y a la radiacin. Algunos
materiales usados (como el fosfato de galio o la turmalina), poseen un alto grado de
sensibilidad incluso al ser expuestos a altas temperaturas, permitiendo que el
sensor sea eficiente a temperaturas del orden de 1000 C. La turmalina tambin
posee piroelectricidad, por lo que se genera una seal elctrica cuando la
temperatura del cristal es alterada. Este efecto es muy comn en materiales
piezocermicos.

Una desventaja de los sensores piezoelctricos es que no se pueden utilizar para


mediciones de esttica, ya que una fuerza esttica resultara en una cantidad fija de
cargas sobre el material piezoelctrico. Al trabajar con dispositivos de visualizacin
convencionales y materiales aislantes imperfectos, as como por la reduccin de
la resistencia interna del sensor, resulta poco eficiente debido a la prdida constante
de electrones y el bajo rendimiento de la seal. Adems, las temperaturas elevadas
causan una falla adicional en la resistencia interna y en la sensibilidad de la
medicin. La principal consecuencia del efecto piezoelctrico es que cuando
aumenta significativamente la presin y la temperatura la sensibilidad se reduce
debido al llamado montaje gemelo (twin-formation).

Mientras que los sensores de cuarzo deben enfriarse a 300 C durante las
mediciones, existen cristales como el fosfato de galio que no presentan un montaje
gemelo hasta el punto de ebullicin del propio material. Se cree que en la naturaleza
tambin existen sensores piezoelctricos. La smithsonita o el carbonato de zinc son

43
piezoelctricos, y se piensa que puede llegar comportarse como sensores
biolgicos de fuerza.

2.6.3 Motores de CD
Los motores DC, son de naturaleza inductiva y por consiguiente merecen el mismo
tratamiento de los relevadores. En el siguiente ejemplo se puede apreciar como un
microcontrolador hace cambios de velocidad en un motor DC, para este fin se
implementa el mdulo PWM de un microcontrolador 16F628A, con oscilador de
4MHz. El cdigo fuente en lenguaje C es el siguiente:

void main( void )


{
unsigned short CU=0;
OPTION_REG = 0; //Se activan las resistencias PULL-UP.
PWM1_Init( 500 ); //Se inicia el mdulo PWM a 500Hz.
PWM1_Set_Duty(CU);
PWM1_Start();
while(1) //Bucle infinito.
{
//Bucle de incremento del PWM cuando se pulsa RB1.
while( Button( &PORTB, 1, 10, 0 ) )
{
CU++; if( CU==0 )CU=255;
PWM1_Set_Duty(CU);
delay_ms(10);
}
//Bucle de decremento del PWM cuando se pulsa RB0.
while( Button( &PORTB, 0, 10, 0 ) )
{
CU--; if( CU==255 )CU=0;
PWM1_Set_Duty(CU);
delay_ms(10);
}
}
}

44
Para poder hacer la simulacin de este ejemplo se debe implementar en ISIS los
dispositivos: 16F628A, BUTTON, RES, 2N3904, 1N4001, y MOTOR ACTIVE.
Configurados como se puede apreciar en el siguiente circuito:

Figura 2.6.3.1 circuito de un motor DC

En funcin de la intensidad de corriente se puede cambiar el transistor para


optimizar el funcionamiento de los sistemas. Un transistor como el 2N3904 puede
controlar una corriente de 200m Amperios, y un TIP31 puede controlar una corriente
de 3 Amperios, en funcin de la referencia y sus caractersticas, se puede asumir
un mximo de corriente.

2.6.4 Motores a pasos


Los motores paso, son dispositivos electromecnicos que permiten hacer giros
fraccionados por grados, los motores paso son de dos naturalezas; unipolares y
bipolares. Un motor unipolar cuenta con cuatro embobinados, que se energizan uno
o dos a la vez, y siempre con la misma polaridad. Los motores paso bipolares
cuentan con solo dos bobinas, las cuales se polarizan al mismo tiempo, pero
alternando la polaridad. Este efecto genera una secuencia en las bobinas y su
polaridad. Manipulando la velocidad de la secuencia se controla la velocidad de giro
del motor, y con el orden de la secuencia se controla la direccin de giro del motor.

45
En las siguientes grficas se puede apreciar la apariencia fsica de estos motores y
su vista en ISIS:

Figura 2.6.4.1 Motor a pasos

Los motores unipolares, cuentan generalmente con 5 o 6 terminales, de las cuales


4 corresponden a los embobinados, y 1 o 2 son terminales comunes. Las bobinas
de un motor unipolar se pueden apreciar en el siguiente circuito

Figura 2.6.4.2 Motor a pasos

La secuencia de activacin para los motores unipolares puede ser de dos formas;
con una sola entrada activa, o dos entradas activas simultneamente. Cuando se
activan dos entradas simultneamente el torque del motor es mayor pero al mismo
tiempo la corriente es mayor. La siguiente tabla muestra la forma de activar las
secuencias en los dos casos:

46
El siguiente ejemplo muestra cmo realizar el control de un motor unipolar con un
PIC 16F628A, que cuenta con una frecuencia de reloj de 4MHz, para este fin la
secuencia del motor se guarda en un arreglo. El cdigo en lenguaje C es el
siguiente:

//Constantes con la secuencia de pasos.


const unsigned short PASOS[4] =
{
0b00000001,
0b00000010,
0b00000100,
0b00001000
};
void main( void )
{
//Declaracin de variables.
unsigned short PASO=0;
//Inicio del puerto
TRISB = 0xF0;
PORTB = 0;
OPTION_REG = 0; //Activacin de las resistencias PULL-UP.

while(1)//Bucle infinito.
{
//Bucle while para hacer girar en un sentido
//por medio del pin RB6
while( Button( &PORTB, 6, 100, 0) )
{
PORTB = PASOS[PASO];
PASO++;
if( PASO==4 )PASO=0;
}
//Bucle while para hacer girar en un sentido contrario
//por medio del pin RB7
while( Button( &PORTB, 7, 100, 0) )
{
PORTB = PASOS[PASO];
PASO--;
if( PASO==255 )PASO=3;
}
}
}

47
Para simular este ejercicio se implementa en ISIS, el siguiente circuito electrnico,
con el MOTOR-STEPPER, BUTTON, y el driver ULN2003A:

Figura 2.6.4.3 simulacin de un motor a pasos

Para realizar el ejercicio con la secuencia de doble activacin simplemente se


cambia la secuencia en el arreglo del mismo programa y se usa la misma
simulacin. El nuevo arreglo es el siguiente:

//Constantes con la secuencia de pasos.


const unsigned short PASOS[4] =
{
0b00000011,
0b00000110,

0b00001100,
0b00001001
};

Para los motores bipolares se implementa un puente H doble, de tal forma que se
pueda hacer una secuencia con doble polaridad. La distribucin elctrica de este
tipo de motores es la siguiente:

Figura 2.6.4.4 polaridad del motor

48
Para el control de este tipo de motores se requiere de la siguiente secuencia de
polaridad:

Para realizar el ejercicio con este motor se implementa el mismo programa del motor
unipolar y se altera el arreglo de la secuencia, en este nuevo arreglo se asume un
1 lgico para los +V, de la tabla y un 0 lgico para los V. De esta forma se obtiene
el siguiente arreglo:

//Constantes con la secuencia de pasos.


const unsigned short PASOS[4] =
{
0b00000101,
0b00001001,
0b00001010,
0b00000110
};

Para la simulacin del sistema se implementa en ISIS un circuito similar, pero con
un motor bipolar y un driver para puente H integrado. Este integrado es el L293D,
que es un circuito integrado que tiene en su interior dos puentes H simultneamente,
caracterstica que lo hace ideal para este tipo de motores. La simulacin en ISIS,
implementa el 16F628A, BUTTON, MOTOR-BISTEPPER, y el L293D. El circuito
para simular es el siguiente:

49
2.6.5 Servomotores
Los servomotores son sistemas integrados que tienen un control de posicin
angular, y un sistema mecnico de piones para ofrecer mayor fuerza pero menor
velocidad. Un servomotor tiene incorporado un control de posicin angular, que
puede ser gobernado por medio de una seal PWM. Las aplicaciones de los
servomotores estn desde la robtica hasta los modelos a escala como aviones,
helicpteros y carros. Los servomotores cuentan con un terminal de tres pines para
la alimentacin, la referencia y la seal de control PWM. La apariencia fsica y la
vista en ISIS de estos dispositivos es la siguiente:

Figura 2.6.5.1 servomotor

La caracterstica de la seal de control es su periodo de PWM de 16m a 18m


segundos y el periodo til puede variar de 1 a 2 milisegundos, esto hace referencia
respectivamente a 0 y 180 grados en la posicin angular. La siguiente grfica ilustra
est situacin:

50
Figura 2.6.5.2 polaridades

A continuacin se muestra un ejemplo en lenguaje C, para controlar la posicin de


un servomotor:

//Funcin para generar el PWM de


//baja frecuencia, ajustado para
//cristal de 20MHz.
void Pwm_Sevo( float ang )
{
unsigned int n, max;
max = 1.61*ang;
PORTB.F0 = 1;
delay_ms(1);
for( n=0; n<max; n++ )
delay_us(1);
PORTB.F0=0;
delay_ms(15);
}
void main( void )
{
//Angulo inicial.
float ANGULO=90;
//Inicio del puerto
TRISB.F0 = 0;
//Se activan las resistencias PULL-UP.
OPTION_REG=0;
while(1)//Bucle infinito.
{
Pwm_Sevo(ANGULO); //Se genera un pulso.
//Si se pulsa el botn de RB6
//se decrementan 10 grados.

51
if( PORTB.F6==0 )
{
ANGULO-=10.0;
if( ANGULO<0.0 )ANGULO=0.0;
while( Button(&PORTB,6,5,0) );
}
//Si se pulsa el botn de RB7
//se incrementan 10 grados.
if( PORTB.F7==0 )
{
ANGULO+=10.0;
if( ANGULO>180.0 )ANGULO=180.0;
while( Button(&PORTB,7,5,0) );
}
}
}

Para simular este ejercicio, se implementa en ISIS, el PIC 16F628A, con frecuencia
de reloj de 20MHz, MOTOR-PWMSERVO, y el BUTTON. El circuito correspondiente
es el siguiente:

Figura 2.6.5.3 simulacin

52
BIBLIOGRAFIA
Microcontroladores Pic; E. Martn Cuenca, J. M. Angulo Usategui, I. Angulo Martinz;
Paraninfo, 5 edicin, 2001.
Microcontroladores: Fundamentos y aplicaciones con PIC; F. E. Valds Prez, R. Palls
Areny; Alfaomega; 2007.
Microcontroladores PIC: Diseo prctico de aplicaciones, 2 parte; J.M. Angulo Usategui, S.
Romero Yesa, I. Angulo Martnez; McGraw Hill; 2 edicin; 2006.
https://documents.tips/documents/23-tipos-y-distribucion-de-las-memorias-
internas.html

53