Está en la página 1de 13

 

Unidad 2 Microcontroladores
2.1 Arquitectura de los puertos de E/S.
Con el propósito
organización internadedelsincronizar el funcionamiento
microcontrolador deselos
de 8 bits, ellos puertosdede
agrupan, E/S con
manera la
similar
a los registros, en cinco puertos denotados con A, B, C, D y E. Todos ellos tienen las
siguientes características en común:

  Por las razones prácticas, muchos pines de E/S son multifuncionales. Si un pin
realiza una de estas funciones, puede ser utilizado como pin de E/S de propósito
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 correspo
correspondiente
ndiente 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
fácil de recordar: 0 = Entrada 1 = Salida.
 

2.2 Configuración y características eléctricas de los puertos de


E/S.
Los registros importantes en la configuración de los puertos son:
STATUS Dirección 0x3
PORTA Dirección 0X5
PORTB Dirección 0X6
TRISA Dirección 0X5
TRISB Dirección 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 deberás 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 asignación 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 más pequeños. Supongamos que es necesario escribir un programa para
el microcontrolador para medir la temperatura y visualizar los resultados en un LCD. El
proceso de medición se realiza por un sensor que convierte temperatura en voltaje. El
microcontrolador utiliza el convertidor A/D para convertir este voltaje (valor analógico) en
un número (valor digital) que luego se envía al LCD por medio de varios conductores. En
consecuencia, el programa se divide en cuatro partes, de las que cada una corresponde
a una acción específica:

1. Activar y configurar el convertidor A/D incorporado

2. Medir el valor analógico

3. Calcular temperatura; y

4. Enviar los datos en el formato apropiado


apropiado al LCD

Los lenguajes de programación de alto nivel como es C le permiten solucionar este


problema con facilidad al escribir cuatro funciones que se ejecutarán cíclicamente sin
parar.

La idea general es de dividir el problema en varios trozos, de los que cada uno se puede
escribir como una sola función. Todos los programas escritos contienen por lo menos
una función llamada main() que encierra entre llaves {} las sentencias a ser ejecutadas.
Esto es la primera función a ser ejecutada al iniciarse la ejecución de programa. Las otras
funciones se pueden llamar dentro de la función main. En otras palabras, podemos decir
que la función main() es obligatoria, mientras que las demás son opcionales. Si todavía
no ha escrito un programa en C, es probable que todo le resulte confuso. No se preocupe,
acéptelo tal como es por el momento y más tarde entenderá la sintaxis.
 

La manera de escribir el código en C es muy importante. Por ejemplo, C difiere entre minúsculas y
mayúsculas, así que la función main() no se puede escribir MAIN() o Main(). Además, note que dos
líneas del código
códig o dentro de la función terminan con
c on un punto y coma. En C todas las sentencias deben
terminar con un punto y coma ‘;’, así el compilador puede aislarlas y traducirlas a código máquina.  
 

 
 

2.4 Programación de puertos con interfaces para el manejo de


dispositivos periféricos 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 cátodo en
común. Dependiendo del tipo de display será la manera en que se enciendan sus segmentos, un display
de cátodo común requiere un 1 logico para encender mientras que uno de cátodo común 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 cátodo


cát odo común así que los segmentos encenderán con u unn 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, podríamos 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 números 0 a 15 en hexadecimal (0 a F) con un retardo
retar do de medio
segundo entre cada número. 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


declaran 4 variables, una se utiliza para llevar
llevar la cuenta del numero a desplegar y las demás
sirven para la rutina de retardo. Como ya se dijo se configura el puerto B como salida y
salida  y después se limpia
la variable Numero (clrf NUMER O ). Después 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 (mo
movfvf NUMER O,w ) y despues se manda llamar la tabla ( cal call DE SP LIE GA ), al volver el registro W tiene
el valor del numero a desplegar y simplementa se mueve al puerto B ( mo movwf
vwf POR TB ). 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 ( mo


movf vf NUMER O,w ).
). Esto se hace para realizar
una comparacion entre W y la literal 0x10  (16
  (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
program a se repite desde la etiqueta
Principal , si no es asi el programa regresa a la etiqueta Ciclo
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  s ublw 0x10 0x 10   si el
resultado es cero (en caso de que NUMERO=16 ) la bandera ZERO ZERO se se pone en 1 y es esa la
l a bandera que
se revisa en btbtfss
fss STA TUS,Z . 

2.4.2 Displays LCD


El LCD es actualmente el circuito más barato y confiable para mostrar datos en un proceso de monitoreo y
control. Su interfaz con los controladores se realiza a través de un conector de 14 pines.
Todos los fabricantes del display de cristal líquido (“Liquid Cristal Display”) LCD, han estandarizado sus señales
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,
presión, gasto, temperatura, etc.  
El LCD puede también emplearse para mostrar parámetros internos del sistema, de acuerdo a su aplicación o
para mostrar al usuario las opciones de configuración mientras lo opera. 

El módulo LCD lleva integrado a sus circ uitos 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. También tiene una RAM interna que almacena los caracteres y los exhibe en el módulo LCD. 

En la interfaz de 14 pines, 8 son señales para el envío de comandos ó datos. Los datos se manejan en códigos
ASCII y se escriben en la memoria del LCD en forma secuencial. A través de estas mismas señales pueden
enviarse también los comandos mostrados en la tabla. En seguida se adjuntan 2 tablas. En la primera, se
muestra la distribución de señales de la interfaz y en la segunda algunos de los comandos más comúnmente
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 programación:

*con RS=0, se mandan comandos de inicialización al display LCD.Los comandos típicos son los
mostrados en la tabla. Para enviar un comando,se escribe su código en los 8 bits RB0 ...RB7 y
luego se da un pulso bajo de al menos 10 milisegundos de duración a la señal EN (RA2). EN es
una señal que debe de estar normalmente ALTA.Es importante esperar unos 10 milisegundos a
que los datos estén estables antes de aplicar el pulso.

* con RS=1, se escribe los datos en código ASCII en las 8 líneas RB0 a RB7, con el mismo
 procedimiento señalado arriba. Los caracteres van apareciendo en el mismo orden en el que se
mandan. Para un LCD de dos renglones, cada renglón debe de manejarse con un comando
independiente. Para escribir en el primer renglón, debe previamente de enviarse el comando 80H
y para el segundo renglón, un C0H

* Las señales 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 haríamos 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 más significativos que funcionan
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 lógico 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 botón, 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 están diseñadas para este tipo de aplicaciones.  
 

2.6 Desarrollo de aplicaciones para el manejo de:

2.6.1 Lamparas
Una lámpara
conversión eléctrica
puede o bombilla
realizarse es un distintos
mediante dispositivo que produce
métodos luzcalentamiento
como el a partir de energía eléctrica,
por efecto Jouleesta
de
un filamento metálico, por fluorescencia de ciertos metales ante una descarga eléctrica o por otros
sistemas. En la actualidad se cuenta con tecnología para producir luz con eficiencias del 10 al 70%.1
En su uso técnico, es un componente reemplazable que produce luz de la electricidad. Es la forma
más común de la iluminación artificial y es esencial a la sociedad moderna, proporcionando la
iluminación interior para los edificios y la luz exterior para las comunidades humanas actuales.
La creación de la primera lámpara eléctrica 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 número 223.898. Otros inventores también habían 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 alemán, Heinrich Göbel ya había registrado
su propia bombilla incandescente en 1855, mucho antes por tanto que Thomas A. Edison. Tiempo
después, pero siempre antes que a Edison, el 11 de julio de 1874 se le concedió al ingeniero ruso
 Aleksandr Lodygin la patente nº1619 por una bombilla incandescente.
incandescente. El inventor ruso utilizó un
filamento de carbono.
Las tres principales categorías de luces eléctricas son las lámparas incandescentes, que producen
luz por un filamento calentado por la corriente eléctrica; las lámparas de descarga de gas que
producen luz mediante un arco eléctrico a través de un gas; y por último, las lámparas LED que
producen luz por un flujo de electrones a través de la brecha de banda en un semiconductor.
La lámpara eléctrica es uno de los inventos más utilizados por el hombre desde su creación hasta la
fecha. Según un ranking de la revista Life es la segunda invención más útil del siglo XIX.

2.6.2 Zumbadores, vibradores piezoeléctricos, bocinas, etc


Zumbadores
Zumbador, buzzer en inglés, es un transductor electroacústico que produce un sonido o zumbido
continuo o intermitente de un mismo tono (generalmente agudo). Sirve como mecanismo de
señalización o aviso y se utiliza en múltiples sistemas, como en automóviles o en electrodomésticos,
incluidos los despertadores. 
Inicialmente este dispositivo estaba basado en un sistema electromecánico que era similar a una
campana eléctrica pero sin el badajo metálico, el cual imitaba el sonido de una campana.
Su construcción consta de dos elementos,
elementos , un electroimán o disco piezoeléctri
piezoeléctrico
co y una lámina metálica
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 electroimán y produce un campo
magnético variable que hace vibrar la lámina de acero sobre la armadura, o bien, la corriente pasa
por el disco piezoeléctrico haciéndolo entrar en resonancia eléctrica y produciendo ultrasonidos que
son amplificados por la lámina de acero.
 

Vibradores piezoeléctricos
Un sensor piezoeléctrico es un dispositivo que utiliza el efecto piezoeléctr
piezoeléctrico
ico para medir presión, 
presión, 
aceleración, tensión
aceleración,  fuerza; transformando las lecturas en señales eléctricas. 
 tensión o fuerza; transformando
Los sensores piezoeléctricos se consideran herramientas versátiles para la medición de distintos
procesos, por ejemplo, en garantías de calidad, procesos de control o investigación y desarrollo en
diferentes campos industriales. Aunque el efecto piezoeléctrico fue descubierto por Pierre Curie en
1880, no comenzó a ser implementado en las aéreas sensoriales de la industria hasta 1950. Desde
entonces, el uso de este principio de medición se ha incrementado, debido a su fácil manejo y su alto
nivel de fiabilidad. Tiene aplicaciones en campos como la medicina, la industria aeroespacial y la
instrumentación nuclear, así como en pantallas táctiles de teléfonos móviles. En la industria
automovilística, los elementos piezoeléctricos se utilizan para monitorear la combustión durante el
desarrollo de motores de combustión interna, bien montados directamente en hoyos adicionales en
la culata o en las bujías, que están equipadas con un sensor piezoeléctrico en miniatura.
 A pesar de que los sensores piezoeléctricos son sistemas electromecánicos que reaccionan a la
compresión, los elementos sensoriales muestran una deflexión casi nula. A ello se debe la alta
precisión de estos sensores, ya tienen una frecuencia natural muy alta y una buena linealidad en
amplio rango. Además, la tecnología piezoeléctrica es insensible a campos electromagnéticos y a la
radiación. 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 también posee piroelectricidad, por lo que se
genera una señal eléctrica cuando la temperatura del cristal es alterada. Este efecto es muy común
en materiales piezocerámicos.
Una desventaja de los sensores piezoeléctricos es que no se pueden utilizar para mediciones de
estática, ya que una fuerza estática resultaría en una cantidad fija de cargas sobre el material
piezoeléctrico. Al trabajar con dispositivos de visualización convencionales y materiales aislantes
imperfectos, así como por la reducción de la resistencia interna del sensor, resulta poco eficiente
debido a la pérdida constante de electrones y el bajo rendimiento de la señal. Además, las
temperaturas elevadas causan una falla adicional en la resistencia interna y en la sensibilidad de la
medición. La principal consecuencia del efecto piezoeléctrico es que cuando aumenta
significativamente la presión 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 ebullición
del propio material. Se cree que en la naturaleza también existen sensores piezoeléctricos. La
smithsonita o el carbonato de zinc son piezoeléctricos, y se piensa que puede llegar comportarse
como sensores biológicos de fuerza.

Bocinas
Un altavoz (también conocido como parlante en América del Sur, Costa Rica, El Salvador, Honduras
) es un transductor electroacústico utilizado para la reproducción de sonido. Uno o varios altavoces
pueden formar una pantalla acústica. 
La transducción sigue un doble procedimiento: eléctrico-mecánico-acústico. En la primera etapa
convierte las ondas eléctricas en energía mecánica, y en la segunda convierte la energía mecánica
en ondas de frecuencia acústica. Es por lo mismo tanto la puerta por donde sale el sonido al exterior

desde los aparatos que posibilitaron su amplificación, su transmisión por medios telefónicos o
radioeléctricos, o su tratamiento.
 

El sonido se transmite mediante ondas sonoras, en este caso, a través del aire. El oído capta estas
ondas y las transforma en impulsos nerviosos que llegan al cerebro y se transforman en señales que
se identifican con cosas como música, sonidos y onomatopeyas. Si se dispone de una grabación de
voz, de música en soporte magnético o digital, o si se recibe estas señales por radio, se dispondrá a
la salida del aparato de señales eléctricas que deben ser convertidas en sonidos; para ello se utiliza
el altavoz.

2.6.3 Motores de CD
El motor de corriente continua (denominado también motor de corriente directa, motor CC o motor
DC por las iniciales en inglés direct current) es una máquina que convierte energía eléctrica en
mecánica, provocando un movimiento rotatorio, gracias a la acción de un campo magnético.  
Un motor de corriente continua se compone principalmente de dos partes. El estátor da soporte
mecánico al aparato y contiene los polos de la máquina, que pueden ser o bien devanado de hilo de
cobre sobre un núcleo de hierro, o imanes permanentes. El rotor es generalmente de forma cilíndrica,
también devanado y con núcleo, alimentado con corriente directa a través de delgas, que están en
contacto alternante con escobillas fijas (también llamadas carbones).
El principal inconveniente de estas máquinas es el mantenimiento, muy costoso y laborioso, debido
principalmente
principalme nte al desgaste que sufren las escobillas o carbones al entrar en contacto con llas
as delgas.
 Algunas aplicaciones
aplicaciones especiales de estos motores
motores son los motores
motores lineales, cuando
cuando ejercen
ejercen tracció
tracción
n
sobre un riel, servomotores y motores paso a paso. Además existen motores de DC sin escobillas
(brushless en inglés) 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 técnicas de control de motores
de corriente continua.

2.6.4 Motores a pasos


El motor paso a paso conocido también como motor de pasos es un dispositivo electromecánico que
convierte una serie de impulsos eléctricos 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-analógico
(D/A) y puede ser gobernado por impulsos procedentes de sistemas digitales. Este motor presenta
las ventajas de tener precisión y repetitividad en cuanto al posicionamiento. Entre sus principales
aplicaciones destacan los robots, drones, radiocontrol, impresoras digitales, automatización,
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
magnetización permanente, y el motor híbrido.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) más cercano(s) del rotor es (o
son) atraído(s) a la(s) bobina(s) del estator energizada(s) (obteniéndose por lo tanto, la ruta de menor
reluctancia). La respuesta de este motor es muy rápida, pero la inercia permitida en la carga es
pequeña. Cuando los devanados no están energizados, el par estático de este tipo de motor es cero.

El motor de pasos de rotor de imán permanente: Permite mantener un par diferente de cero cuando
el motor no está energizado. Dependiendo de la construcción del motor, es típicamente posible
 

obtener pasos angulares de 7.5, 11.25, 15, 18, 45 o 90°. El ángulo de rotación se determina por el
número de polos en el estator.
El motor de pasos híbrido: Se caracteriza por tener varios dientes en el estator y en el rotor, el rotor
con un imán concéntrico magnetizado axialmente alrededor de su eje. Se puede ver que esta
configuración es una mezcla de los tipos de reluctancia variable e imán permanente. Este tipo de
motor tiene una alta precisión y alto par, se puede configurar para suministrar un paso angular tan

pequeño como 1.8°.

2.6.5 Servomotores
Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que
tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse
estable en dicha posición. 
Un servomotor es un motor eléctrico que puede ser controlado tanto en velocidad como en posición.
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.
Características
Está conformado por un motor, una caja reductora y un circuito de control. También potencia
proporcional para cargas mecánicas. Un servo, por consiguiente, tiene un consumo de energía
reducido.
La corriente que requiere depende del tamaño del servo. Normalmente el fabricante indica cuál 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 añadido un sistema de control
(tarjeta electrónica), un potenciómetro y un conjunto de engranajes. Con anterioridad los
servomotores no permitían que el motor girara 360 grados, solo aproximadamente 180; sin embargo,
hoy en día existen servomotores en los que puede ser controlada su posición y velocidad en los 360
grados. Los servomotores son comúnmente usados en modelismo como aviones, barcos,
helicópteros y trenes para controlar de manera eficaz los sistemas motores y los de dirección.

2.5 Programación de puertos con interfaces de potencia con:


2.5.1 Transistores

También podría gustarte