Está en la página 1de 13

Unidad 2 Microcontroladores

2.1 Arquitectura de los puertos de E/S.


Con el propsito de sincronizar el funcionamiento de los puertos de E/S con la
organizacin interna del microcontrolador de 8 bits, ellos se agrupan, de manera similar
a los registros, en cinco puertos denotados con A, B, C, D y E. Todos ellos tienen las
siguientes caractersticas en comn:

Por las razones prcticas, muchos pines de E/S son multifuncionales. Si un pin
realiza una de estas funciones, puede ser utilizado como pin de E/S de propsito
general.
Cada puerto tiene su propio registro de control de flujo, o sea el registro TRIS
correspondiente: TRISA, TRISB, TRISC etc. lo que determina el comportamiento de
bits del puerto, pero no determina su contenido.
Al poner a cero un bit del registro TRIS (pin=0), el pin correspondiente del puerto se
configurar como una salida. De manera similar, al poner a uno un bit del registro TRIS
(bit=1), el pin correspondiente del puerto se configurar como una entrada. Esta regla es
fcil de recordar: 0 = Entrada 1 = Salida.
2.2 Configuracin y caractersticas elctricas de los puertos de
E/S.
Los registros importantes en la configuracin de los puertos son:

STATUS Direccin 0x3


PORTA Direccin 0X5
PORTB Direccin 0X6
TRISA Direccin 0X5
TRISB Direccin 0X6

Por defecto el PIC tendr todos los I/O port's (es decir los puertos RA y RB), colocados como entrada
de datos, y si queremos cambiarlos habr que configurarlos.

Al configurar los puertos debers tener en cuenta que:


Si asignas un CERO (0) a un pin, ste quedar como salida y...
Si le asignas un UNO (1), quedar como entrada
Esta asignacin se hace en:
TRISA para los pines del PUERTO A (5 bits)
TRISB para los pines del PUERTO B (8 bits)

CONFIGURACION ELECTRICA
2.3 Estructura de los programas para microcontrolador.
La idea principal de escribir un programa en C es de romper un problema mayor en
varios trozos ms pequeos. Supongamos que es necesario escribir un programa para
el microcontrolador para medir la temperatura y visualizar los resultados en un LCD. El
proceso de medicin se realiza por un sensor que convierte temperatura en voltaje. El
microcontrolador utiliza el convertidor A/D para convertir este voltaje (valor analgico) en
un nmero (valor digital) que luego se enva al LCD por medio de varios conductores. En
consecuencia, el programa se divide en cuatro partes, de las que cada una corresponde
a una accin especfica:

1. Activar y configurar el convertidor A/D incorporado

2. Medir el valor analgico

3. Calcular temperatura; y

4. Enviar los datos en el formato apropiado al LCD

Los lenguajes de programacin de alto nivel como es C le permiten solucionar este


problema con facilidad al escribir cuatro funciones que se ejecutarn cclicamente sin
parar.

La idea general es de dividir el problema en varios trozos, de los que cada uno se puede
escribir como una sola funcin. Todos los programas escritos contienen por lo menos
una funcin llamada main() que encierra entre llaves {} las sentencias a ser ejecutadas.
Esto es la primera funcin a ser ejecutada al iniciarse la ejecucin de programa. Las otras
funciones se pueden llamar dentro de la funcin main. En otras palabras, podemos decir
que la funcin main() es obligatoria, mientras que las dems son opcionales. Si todava
no ha escrito un programa en C, es probable que todo le resulte confuso. No se preocupe,
acptelo tal como es por el momento y ms tarde entender la sintaxis.
La manera de escribir el cdigo en C es muy importante. Por ejemplo, C difiere entre minsculas y
maysculas, as que la funcin main() no se puede escribir MAIN() o Main(). Adems, note que dos
lneas del cdigo dentro de la funcin terminan con un punto y coma. En C todas las sentencias deben
terminar con un punto y coma ;, as el compilador puede aislarlas y traducirlas a cdigo mquina.
2.4 Programacin de puertos con interfaces para el manejo de
dispositivos perifricos sin manejo de potencia.

2.4.1 Displays de 7 segmentos.


Un display de 7 segmentos no es otra cosa que 7 leds conectados entre si con su nodo o su ctodo en
comn. Dependiendo del tipo de display ser la manera en que se enciendan sus segmentos, un display
de ctodo comn requiere un 1 logico para encender mientras que uno de ctodo comn un 0 as que
dependiendo del display que se utilice cambiar la rutina encargada de controlarlo, pero en cualquier caso
al momento de cambiar el tipo de display solo debemos cambiar los ceros por unos y viceversa.

Aqu supondremos que se usa un display de ctodo comn as que los segmentos encendern con un 1.
El display estar conectado al puerto B, el segmento A estar conectado al bit RB0, el B al RB1, el C al
RB2, el D al RB3 y as sucesivamente hasta llegar al G que estar conectado al bit RB6.

Encender y apagar los segmentos del display es igual que encender y apagar leds, podramos hacerlo de
la misma manera que en el tutorial 1, pero una manera mas eficaz de controlar un display es mdiante una
tabla. Haremos que el display muestre los nmeros 0 a 15 en hexadecimal (0 a F) con un retardo de medio
segundo entre cada nmero. Para eso se declara el puerto B como salida. Una vez hecho eso se crea la
rutina encargada de mandar llamar el numero correspondiente de una tabla y de desplegar el numero
correspondiente por el puerto B. El programa principal es el siguiente:
Al principio se declaran 4 variables, una se utiliza para llevar la cuenta del numero a desplegar y las dems
sirven para la rutina de retardo. Como ya se dijo se configura el puerto B como salida y despus se limpia
la variable Numero (clrf NUMERO). Despus el programa entra en una subrutina que se encarga de leer
la tabla y de desplegar el numero en el puerto. Primero se mueve el valor de la variable Numero al registro
W (movf NUMERO,w) y despues se manda llamar la tabla (call DESPLIEGA), al volver el registro W tiene
el valor del numero a desplegar y simplementa se mueve al puerto B (movwf PORTB). Se llama a la rutina
de retardo (call RETARDO) y al volver de esta se incrementa el valor de la variable Numero (incf
NUMERO,f) y despues se transfiere ese valor al registro W (movf NUMERO,w). Esto se hace para realizar
una comparacion entre W y la literal 0x10 (16 en valor decimal) para saber si la variable Numero ya fue
incrementada 16 veces, si es asi se salta la siguiente instruccion y el programa se repite desde la etiqueta
Principal, si no es asi el programa regresa a la etiqueta Ciclo. De este modo el numero se incrementa de
0 a F y al llegar a F regresa a 0. La comparacion se realiza mediante la instruccion sublw 0x10 si el
resultado es cero (en caso de que NUMERO=16) la bandera ZERO se pone en 1 y es esa la bandera que
se revisa en btfss STATUS,Z.

2.4.2 Displays LCD


El LCD es actualmente el circuito ms barato y confiable para mostrar datos en un proceso de monitoreo y
control. Su interfaz con los controladores se realiza a travs de un conector de 14 pines.
Todos los fabricantes del display de cristal lquido (Liquid Cristal Display) LCD, han estandarizado sus seales
en el conector de 14 pines, as como sus comandos de control para el manejo del mismo
En el LCD se pueden mostrar datos como la hora y la fecha, as como valores de variables tales como nivel,
presin, gasto, temperatura, etc.
El LCD puede tambin emplearse para mostrar parmetros internos del sistema, de acuerdo a su aplicacin o
para mostrar al usuario las opciones de configuracin mientras lo opera.

El mdulo LCD lleva integrado a sus circuitos una memoria ROM conocida como generador de caracteres
que habr de generar los patrones de la matriz de puntos (5 x 7 7 x 9) que forman los caracteres en la
pantalla. Tambin tiene una RAM interna que almacena los caracteres y los exhibe en el mdulo LCD.

En la interfaz de 14 pines, 8 son seales para el envo de comandos datos. Los datos se manejan en cdigos
ASCII y se escriben en la memoria del LCD en forma secuencial. A travs de estas mismas seales pueden
enviarse tambin los comandos mostrados en la tabla. En seguida se adjuntan 2 tablas. En la primera, se
muestra la distribucin de seales de la interfaz y en la segunda algunos de los comandos ms comnmente
empleados.

PIN FUNCION PIN FUNCION


1 Tierra 8 DB1 (RB1)
2 5 volts. 9 DB2 (RB2)
3 INT Control intensidad 10 DB3 (RB3)
4 RS (RA1) 0=comando 1=datos 11 DB4 (RB4)
5 R/W 0=escribir , 1=leer 12 DB5 (RB5)
6 EN (RA2) Enable modo pulso 13 DB6 (RB6)
7 DB0 (RB0) 14 DB7 (RB7)
COMANDO FUNCION HEXA
CLEAR LIMPIA DISPLAY 01H
HOME POSICIONA CURSOR AL INICIO DEL LCD 03H
CURSOR MUESTRA CURSOR CON PARPADEO 0FH
8 BITS SELECCIONA INTERFAZ DE 8 BITS 38H
RENGLON1 SELECCIONA ESCRITURA EN EL PRIMER 80H
RENGLON
RENGLON2 SELECCIONA ESCRITURA EN EL SEGUNDO C0H
RENGLON

Para escribir en el LCD, debe de seguirse la siguiente secuencia en la programacin:

*con RS=0, se mandan comandos de inicializacin al display LCD.Los comandos tpicos son los
mostrados en la tabla. Para enviar un comando,se escribe su cdigo en los 8 bits RB0 ...RB7 y
luego se da un pulso bajo de al menos 10 milisegundos de duracin a la seal EN (RA2). EN es
una seal que debe de estar normalmente ALTA.Es importante esperar unos 10 milisegundos a
que los datos estn estables antes de aplicar el pulso.

* con RS=1, se escribe los datos en cdigo ASCII en las 8 lneas RB0 a RB7, con el mismo
procedimiento sealado arriba. Los caracteres van apareciendo en el mismo orden en el que se
mandan. Para un LCD de dos renglones, cada rengln debe de manejarse con un comando
independiente. Para escribir en el primer rengln, debe previamente de enviarse el comando 80H
y para el segundo rengln, un C0H

* Las seales de control RS y EN, se manejan por medio de los pines RA1 y RA2

2.4.3 Teclados

El funcionamiento es sencillo y es similar a lo que haramos para multiplexar leds o dipslays de 7


segmentos. El programa configura el puerto B del PIC de la siguiente forma: RB4 a RB7 funcionan
como salidas y la otra mitad (RB0-RB3) como entradas. Las filas (horizontal) del teclado matricial se
conectan a los bits ms significativos que funcionan como salidas, mientras que las columnas (vertical)
se conectan a los bits menos significativos del puerto que funcionan como entradas con resistencias
pull-down. Cualquier tecla que se oprima en una columna causar que uno de los bits menos
significativos del puerto (RB0 RB3) cambie de un estado lgico bajo a un estado alto.
todos los pines tienen conectada una resistencia pull-down, por lo que se mantienen en estado
bajo (0) cuandoel teclado esta en reposo. Cuando se presiona un botn, el estado del pin cambia a
estado alto (1). Esto puede hacerse de manera inversa, utilizando las resistencias pull-up incluidas
internamente en el puerto B de muchos PIC que estn diseadas para este tipo de aplicaciones.
2.6 Desarrollo de aplicaciones para el manejo de:

2.6.1 Lamparas
Una lmpara elctrica o bombilla es un dispositivo que produce luz a partir de energa elctrica, esta
conversin puede realizarse mediante distintos mtodos como el calentamiento por efecto Joule de
un filamento metlico, por fluorescencia de ciertos metales ante una descarga elctrica o por otros
sistemas. En la actualidad se cuenta con tecnologa para producir luz con eficiencias del 10 al 70%.1
En su uso tcnico, es un componente reemplazable que produce luz de la electricidad. Es la forma
ms comn de la iluminacin artificial y es esencial a la sociedad moderna, proporcionando la
iluminacin interior para los edificios y la luz exterior para las comunidades humanas actuales.
La creacin de la primera lmpara elctrica incandescente no la cre Thomas Alva Edison, sin
embargo l cre la nica que funcionaba. . El 27 de enero de 1880 le fue concedida la patente, con
el nmero 223.898. Otros inventores tambin haban desarrollado modelos que funcionaban en
laboratorio, incluyendo a Joseph Swan, Henry Woodward, Mathew Evans, James Bowman Lindsay,
William Sawyer y Humphry Davy. Cabe recordar que el alemn, Heinrich Gbel ya haba registrado
su propia bombilla incandescente en 1855, mucho antes por tanto que Thomas A. Edison. Tiempo
despus, pero siempre antes que a Edison, el 11 de julio de 1874 se le concedi al ingeniero ruso
Aleksandr Lodygin la patente n1619 por una bombilla incandescente. El inventor ruso utiliz un
filamento de carbono.
Las tres principales categoras de luces elctricas son las lmparas incandescentes, que producen
luz por un filamento calentado por la corriente elctrica; las lmparas de descarga de gas que
producen luz mediante un arco elctrico a travs de un gas; y por ltimo, las lmparas LED que
producen luz por un flujo de electrones a travs de la brecha de banda en un semiconductor.
La lmpara elctrica es uno de los inventos ms utilizados por el hombre desde su creacin hasta la
fecha. Segn un ranking de la revista Life es la segunda invencin ms til del siglo XIX.

2.6.2 Zumbadores, vibradores piezoelctricos, bocinas, etc


Zumbadores
Zumbador, buzzer en ingls, es un transductor electroacstico que produce un sonido o zumbido
continuo o intermitente de un mismo tono (generalmente agudo). Sirve como mecanismo de
sealizacin o aviso y se utiliza en mltiples sistemas, como en automviles o en electrodomsticos,
incluidos los despertadores.
Inicialmente este dispositivo estaba basado en un sistema electromecnico que era similar a una
campana elctrica pero sin el badajo metlico, el cual imitaba el sonido de una campana.
Su construccin consta de dos elementos, un electroimn o disco piezoelctrico y una lmina metlica
de acero. El zumbador puede ser conectado a circuitos integrados especiales para as lograr distintos
tonos. Cuando se acciona, la corriente pasa por la bobina del electroimn y produce un campo
magntico variable que hace vibrar la lmina de acero sobre la armadura, o bien, la corriente pasa
por el disco piezoelctrico hacindolo entrar en resonancia elctrica y produciendo ultrasonidos que
son amplificados por la lmina de acero.
Vibradores piezoelctricos
Un sensor piezoelctrico es un dispositivo que utiliza el efecto piezoelctrico para medir presin,
aceleracin, tensin o fuerza; transformando las lecturas en seales elctricas.
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 de telfonos mviles. En la industria
automovilstica, los elementos 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 piezoelctricos, y se piensa que puede llegar comportarse
como sensores biolgicos de fuerza.
Bocinas
Un altavoz (tambin conocido como parlante en Amrica del Sur, Costa Rica, El Salvador, Honduras
) es un transductor electroacstico utilizado para la reproduccin de sonido. Uno o varios altavoces
pueden formar una pantalla acstica.
La transduccin sigue un doble procedimiento: elctrico-mecnico-acstico. En la primera etapa
convierte las ondas elctricas en energa mecnica, y en la segunda convierte la energa mecnica
en ondas de frecuencia acstica. Es por lo mismo tanto la puerta por donde sale el sonido al exterior
desde los aparatos que posibilitaron su amplificacin, su transmisin por medios telefnicos o
radioelctricos, o su tratamiento.
El sonido se transmite mediante ondas sonoras, en este caso, a travs del aire. El odo capta estas
ondas y las transforma en impulsos nerviosos que llegan al cerebro y se transforman en seales que
se identifican con cosas como msica, sonidos y onomatopeyas. Si se dispone de una grabacin de
voz, de msica en soporte magntico o digital, o si se recibe estas seales por radio, se dispondr a
la salida del aparato de seales elctricas que deben ser convertidas en sonidos; para ello se utiliza
el altavoz.

2.6.3 Motores de CD
El motor de corriente continua (denominado tambin motor de corriente directa, motor CC o motor
DC por las iniciales en ingls direct current) es una mquina que convierte energa elctrica en
mecnica, provocando un movimiento rotatorio, gracias a la accin de un campo magntico.
Un motor de corriente continua se compone principalmente de dos partes. El esttor da soporte
mecnico al aparato y contiene los polos de la mquina, que pueden ser o bien devanado de hilo de
cobre sobre un ncleo de hierro, o imanes permanentes. El rotor es generalmente de forma cilndrica,
tambin devanado y con ncleo, alimentado con corriente directa a travs de delgas, que estn en
contacto alternante con escobillas fijas (tambin llamadas carbones).
El principal inconveniente de estas mquinas es el mantenimiento, muy costoso y laborioso, debido
principalmente al desgaste que sufren las escobillas o carbones al entrar en contacto con las delgas.
Algunas aplicaciones especiales de estos motores son los motores lineales, cuando ejercen traccin
sobre un riel, servomotores y motores paso a paso. Adems existen motores de DC sin escobillas
(brushless en ingls) utilizados en el aeromodelismo por su bajo par motor y su gran velocidad.
Es posible controlar la velocidad y el par de estos motores utilizando tcnicas de control de motores
de corriente continua.

2.6.4 Motores a pasos


El motor paso a paso conocido tambin como motor de pasos es un dispositivo electromecnico que
convierte una serie de impulsos elctricos en desplazamientos angulares discretos, lo que significa
que es capaz de girar una cantidad de grados (paso o medio paso) dependiendo de sus entradas de
control. El motor paso a paso se comporta de la misma manera que un conversor digital-analgico
(D/A) y puede ser gobernado por impulsos procedentes de sistemas digitales. Este motor presenta
las ventajas de tener precisin y repetitividad en cuanto al posicionamiento. Entre sus principales
aplicaciones destacan los robots, drones, radiocontrol, impresoras digitales, automatizacin,
fotocomponedoras, preprensa, etc.

Tipos de motores paso a paso


Existen 3 tipos fundamentales de motores paso a paso: el motor de reluctancia variable, el motor de
magnetizacin permanente, y el motor hbrido.1
El motor de pasos de reluctancia variable (VR): Tiene un rotor multipolar de hierro y un estator
devanado, opcionalmente laminado. Rota cuando el (o los) diente(s) ms cercano(s) del rotor es (o
son) atrado(s) a la(s) bobina(s) del estator energizada(s) (obtenindose por lo tanto, la ruta de menor
reluctancia). La respuesta de este motor es muy rpida, pero la inercia permitida en la carga es
pequea. Cuando los devanados no estn energizados, el par esttico de este tipo de motor es cero.
El motor de pasos de rotor de imn permanente: Permite mantener un par diferente de cero cuando
el motor no est energizado. Dependiendo de la construccin del motor, es tpicamente posible
obtener pasos angulares de 7.5, 11.25, 15, 18, 45 o 90. El ngulo de rotacin se determina por el
nmero de polos en el estator.
El motor de pasos hbrido: Se caracteriza por tener varios dientes en el estator y en el rotor, el rotor
con un imn concntrico magnetizado axialmente alrededor de su eje. Se puede ver que esta
configuracin es una mezcla de los tipos de reluctancia variable e imn permanente. Este tipo de
motor tiene una alta precisin y alto par, se puede configurar para suministrar un paso angular tan
pequeo como 1.8.

2.6.5 Servomotores
Un servomotor (tambin llamado servo) es un dispositivo similar a un motor de corriente continua que
tiene la capacidad de ubicarse en cualquier posicin dentro de su rango de operacin, y mantenerse
estable en dicha posicin.
Un servomotor es un motor elctrico que puede ser controlado tanto en velocidad como en posicin.
Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no
tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a
estos dispositivos.
Caractersticas
Est conformado por un motor, una caja reductora y un circuito de control. Tambin potencia
proporcional para cargas mecnicas. Un servo, por consiguiente, tiene un consumo de energa
reducido.
La corriente que requiere depende del tamao del servo. Normalmente el fabricante indica cul es la
corriente que consume. La corriente depende principalmente del par, y puede exceder un amperio si
el servo est enclavado.
En otras palabras, un servomotor es un motor especial al que se ha aadido un sistema de control
(tarjeta electrnica), un potencimetro y un conjunto de engranajes. Con anterioridad los
servomotores no permitan que el motor girara 360 grados, solo aproximadamente 180; sin embargo,
hoy en da existen servomotores en los que puede ser controlada su posicin y velocidad en los 360
grados. Los servomotores son comnmente usados en modelismo como aviones, barcos,
helicpteros y trenes para controlar de manera eficaz los sistemas motores y los de direccin.

2.5 Programacin de puertos con interfaces de potencia con:


2.5.1 Transistores