M Microcontroladores ITSE 2023 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 69

UNAM

FACULTAD DE ESTUDIOS
SUPERIORES CUAUTITLAN

Departamento: Asignatura:
Ingeniería Microcontroladores

Sección: Clave de carrera: 130

Electrónica Clave de asignatura: 1919

Manual de Laboratorio de
Microcontroladores

Autores: M. en C. Leopoldo Martín del Campo Ramírez


Ing. Marcelo Bastida Tapia

Fecha de elaboración: enero 2015


Fecha de revisión: julio 2022
Semestre 2023-1
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores

Índice

Objetivos generales de la asignatura III

Objetivos del curso experimental III

Introducción III

Reglamento interno de laboratorios de electrónica IV

Criterios de evaluación del curso VI

Bibliografía VI

Práctica 0 Herramientas de simulación de microcontroladores


3.3. Registros internos.
3.4. Puertos de entrada y salida
-Microcontrolador PIC 1

Práctica 1 Manejo de señales multiplexadas


4.1. Multiplexación de señales.
-Microcontrolador PIC 10

Práctica 2 Puertos del microcontrolador


4.2. Descripción funcional de terminales.
-Microcontrolador PIC 15

Práctica 3 Temporizadores
5.3. Programación de microcontroladores.
-Microcontrolador PIC 21

Práctica 4 Interrupciones
5.4. Programación de los registros internos.
-Microcontrolador PIC 26

Práctica 5 Conexión con dispositivos de interfaz


6.2. Herramientas para desarrollo de programas con microcontroladores.
-Microcontrolador PIC 32

Práctica 6 Temporizadores y contadores


6.3. Elaboración de proyectos.
-Microcontrolador PIC 37

Índice I
Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 7 Control de motores a pasos


7.2. Diseño de interfaces de control de potencia eléctrica.
-Microcontrolador PIC 43

Práctica 8 Comparadores de voltaje


7.5. Control con optoacopladores.
-Microcontrolador PIC 49

Práctica 9 Convertidor Analógico – Digital


8.1. Conversión Analógico Digital con microcontroladores.
-Microcontrolador PIC 54

Práctica 10 Modulación por ancho de pulso


9.1. Modulación por ancho de pulso (PWM) empleando microcontroladores.
-Microcontrolador PIC 59

Índice II
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores

Prólogo

Objetivo general de la asignatura

➢ Al finalizar el curso el alumno conocerá y comprenderá la estructura y funcionamiento de los


microcontroladores y podrá aplicar dichos elementos en la solución de problemas de control
dedicado, así como la aplicación de diversas plataformas de desarrollo de sistemas
electrónicos, de telecomunicaciones y mecatrónica, entre otros.

Objetivos del curso experimental


➢ Conocer la arquitectura interna básica de los microcontroladores
➢ Conocer las características de los periféricos que integran al microcontrolador.
➢ Realizar programas en lenguajes de bajo y alto nivel para solucionar problemas de diseño.
➢ Programar los microcontroladores y comprobar que las soluciones propuestas a los retos de
diseño sean funcionales.
➢ Implementar sistemas basados en microcontroladores.

Introducción
Los circuitos digitales permiten la implementación de operaciones lógicas, combinacionales y
secuenciales, mediante la interconexión de circuitos integrados (IC’s) que contienen compuertas
lógicas, flip-flop’s y otros elementos. Sin embargo, conforme crecen las necesidades de diseño y la
complejidad de cada aplicación, esta se vuelve una solución impráctica y costosa.

Figura I. Ejemplos de flip-flop’s y circuitos combinacionales.

En la actualidad existe una serie de dispositivos conocidos como microcontroladores; estos reúnen
dentro de un solo chip muchas de las características propias de una computadora, como pueden ser
las memorias RAM y ROM o los puertos, además de otros elementos. El que se encuentren todos los
elementos del microcontrolador dentro de un solo chip indica que son dispositivos de muy alta
densidad de integración. Los microcontroladores suelen ser utilizados en aplicaciones de control
debido a que utilizan de manera más eficiente la memoria de que disponen además de poseer un
conjunto de instrucciones mucho más reducido en comparación con una computadora.

Prólogo III
Facultad de Estudios Superiores Cuautitlán UNAM

Otra característica que ha contribuido para que los microcontroladores hayan tomado la preferencia
de muchos usuarios es su bajo costo pues, aunque varía dependiendo de la capacidad de cada modelo
de microcontrolador, generalmente resultan ser muchas veces más baratos que otros medios de
control como pueden ser las computadoras o los controladores lógicos programables (PLC’s).

Los microcontroladores poseen una gran capacidad de adaptación a las distintas aplicaciones de
control que se presentan en la industria, a pesar de que sus capacidades son limitadas. Esto lo
compensan con la gran cantidad de modelos existentes, de los cuales se puede seleccionar aquel que
cubra las necesidades del sistema a controlar.

En estas prácticas se busca desarrollar sistemas basados en microcontroladores explotando su


capacidad de adquisición de datos, como pueden ser los puertos digitales y los convertidores
analógicos – digitales, además de sus capacidades de control, como por ejemplo el control de motores
de corriente directa y de motores de pasos, necesarios para la implementación de sistemas mecánicos
industriales o de robots.

Finalmente, el alumno deberá comprender la necesidad de interacción entre las diferentes áreas de
la Ingeniería para llevar a la práctica un sistema de control basado en microcontrolador. Entre estas
áreas se distinguen:

• Electrónica Analógica • Diseño de Software


• Ingeniería de Control • Electrónica de Potencia
• Control Digital • Mecánica
• Sistemas Digitales • Motores
• Computación • y algunas áreas adicionales.

Reglamento interno de laboratorios de electrónica


1. Dentro del laboratorio queda estrictamente prohibido.
a) Correr, jugar, gritar o hacer cualquier otra clase de desorden.
b) Dejar basura en las mesas de trabajo y/o pisos.
c) Sentarse sobre las mesas
d) Fumar, consumir alimentos y/o bebidas.
e) Realizar o responder llamadas telefónicas y/o el envío de cualquier tipo de mensajería.
f) La presencia de personas ajenas en los horarios de laboratorio.
g) Dejar los bancos en desorden.
h) Mover equipos o quitar accesorios de una mesa de trabajo a otra sin el consentimiento previo del
profesor de laboratorio en turno.
i) Usar o manipular el equipo sin el conocimiento previo del profesor.
j) Rayar las mesas del laboratorio.
k) Energizar algún circuito sin antes verificar que las conexiones sean las correctas (polaridad de las
fuentes de voltaje, multímetros, etc.).
l) Hacer cambios en las conexiones o desconectar equipo estando éste energizado.
m) Hacer trabajos pesados (taladrar, martillar, etc.) en las mesas de las prácticas.

2. Se permite el uso de medios electrónicos y equipo de sonido (celulares, tabletas, computadoras, etc.)
únicamente para la realización de las prácticas.

3. El alumno verificará las características de los dispositivos electrónicos con el manual.

Prólogo IV
Facultad de Estudios Superiores Cuautitlán UNAM

4. Es responsabilidad del profesor y de los alumnos revisar las condiciones del equipo del laboratorio al inicio
de cada práctica. El profesor reportará cualquier anomalía que pudiera existir (prendido, dañado, sin
funcionar, maltratado, etc.) al encargado de área correspondiente o al jefe de sección.

5. Es requisito indispensable para la realización de las prácticas, que el alumno cuente con su manual
completo y actualizado al semestre en curso, en formato digital o impreso, el cual podrá obtener en:
http://olimpia.cuautitlan2.unam.mx/pagina_ingenieria.

6. El alumno deberá traer su circuito armado para poder realizar la práctica, de no ser así no podrá realizar
dicha práctica (donde aplique) y tendrá una evaluación de cero en la práctica de la sesión
correspondiente.

7. Para desarrollar trabajos, o proyectos en las instalaciones de los laboratorios, es requisito indispensable
que esté presente el profesor responsable, en caso contrario no podrán hacer uso de las instalaciones.

8. Correo electrónico del buzón para quejas y sugerencias para cualquier asunto relacionado con los
laboratorios ([email protected]).

9. La evaluación de cada sesión se realizará en base a los criterios de evaluación de cada laboratorio y, en
caso de que el alumno no asista, tendrá falta y será indicada en el registro de seguimiento y control por
medio de guiones.

10. La evaluación final del laboratorio será en base a lo siguiente:

A – (Aprobado); Cuando el promedio total de todas las prácticas de laboratorio sea mayor o igual a 6 siempre y
cuando tengan el 90% de asistencia y el 80% de prácticas acreditadas en base a los criterios de evaluación.
NA – (No Aprobado); No se cumplió con los requisitos mínimos establecidos en el punto anterior.
NP – (No Presentó); No se entregó reporte alguno.

11. Los casos no previstos en el presente reglamento serán resueltos por el Jefe de Sección.

NOTA: En caso de incurrir en faltas a las disposiciones anteriores, el alumno será acreedor a las siguientes sanciones
por parte del profesor de laboratorio según sea el caso y la gravedad, baja temporal o baja definitiva del
grupo de laboratorio al que está inscrito.

Instrucciones para la elaboración del reporte


Será necesario incluir en cada actividad previa y reporte de práctica una portada (obligatoria) que
contenga la información mostrada en el ejemplo de la figura II.

Para la presentación del reporte se deberá cumplir con los requisitos indicados en cada una de las
prácticas, incluyendo:

• Introducción • Observaciones
• Procedimiento experimental • Esquemas
• Tablas de datos • Diagramas
• Mediciones • Cuestionario
• Gráficas • Conclusiones
• Comentarios • Bibliografía

y en general todos los elementos solicitados dentro del desarrollo de la práctica.

Prólogo V
Facultad de Estudios Superiores Cuautitlán UNAM

U. N. A. M.
F. E. S. C.

Laboratorio de: ________________________________________


Grupo: ________________________________________
Profesor: ________________________________________
Alumno: ________________________________________
Nombre de Práctica: ________________________________________
No. de Práctica: ________________________________________
Fecha de realización: ________________________________________
Fecha de entrega: ________________________________________
Semestre: ________________________________________

Figura II. Información necesaria para la portada de actividades previas y reportes de prácticas.

Criterios de evaluación del curso


C1 (Criterio de evaluación 1): Actividades previas (investigaciones y simulaciones) (30%)
C2 (Criterio de evaluación 2): Escritura y compilación de códigos con comentarios (20%)
C3 (Criterio de evaluación 3): Habilidad para el manejo del equipo e interpretación correcta de las
lecturas (10%)
C4 (Criterio de evaluación 4): Reporte entregado con todos los puntos indicados (40%)

Bibliografía
1) Programación de sistemas 4) AVR microcontroladores.
embebidos en C Configuración total de periféricos
Galeano, Gustavo López Chau, Ausdrubal
Alfaomega, 1º Edición Universidad Autónoma del Estado de
México, 2009 México UAEM
2) Compilador C CCS y Simulador México, 2006
Proteus para microcontroladores 5) Atmega8 Data Sheet
PIC Atmel Corporation, 2013
García, Eduardo 6) Embedded C Programming with the
Alfaomega, 1º Edición AVR Microcontroller
México, 2008 R. H. Barnett, S. Cox, y L. O’Cull
3) Microcontroladores, Fundamentos Cengage Learning 2ND Edition
y Aplicaciones con PIC Clifton Park, NY, 2006
Valdes Pérez, Fernando 7) Some Assembly Required:
Alfa Omega Assembly Language Programming
México, 2007 with the AVRMicrocontroller
T. S. Margush
CRC Press, 1ST Edition
Boca Raton, 2011

Prólogo VI
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 0
Herramientas de simulación de microcontroladores

Tema

3.3. Registros internos.


3.4. Puertos de entrada y salida.

Objetivos

Al término de esta práctica el alumno comprenderá:

➢ La forma de simular sistemas con microcontroladores.

➢ El uso de herramientas para detectar fallas en el código programado en un microcontrolador


tales como el debug.

Introducción

En el caso de los microcontroladores, una vez que el desarrollador ha terminado de realizar el código
con el cual será programado el circuito integrado, existen distintas formas de determinar si el
microcontrolador realizará el funcionamiento deseado por medio del uso de herramientas de
simulación y revisión de código. Cabe aclarar que estas simulaciones no son una garantía de que todo
funcione de manera correcta al realizarse la implementación final, pero son una excelente guía que le
indica al desarrollador si va por el camino correcto.

Lo anterior tiene varias ventajas pues permite la detección temprana de errores de programación,
errores de funcionamiento y errores de conexión con otros dispositivos ahorrando una gran cantidad
de tiempo al realizar las pruebas de manera física y evitando posibles daños a los dispositivos, lo que
también se traduce en menores costos de desarrollo.

Cuando un desarrollador escribe el código de un programa para el microcontrolador, pueden


presentarse errores de sintaxis dentro del código, como el mostrado en la figura 0.1, estos errores
serán detectados por las herramientas que posee el compilador donde se escribió el programa, sin
embargo, existen otros tipos de errores que no pueden ser detectados durante este proceso. Un
ejemplo de un error no sintáctico es cuando el programa entra en un ciclo o bucle no deseado, del cual
no puede salir por sí mismo, como se ve en la figura 0.2, esto se conoce como un error lógico que,
aunque en cuestión de sintaxis no existen problemas, provocará un funcionamiento incorrecto del
microcontrolador e incluso que éste entre en un estado de “bloqueo”.

Otro ejemplo de error no sintáctico puede ser cuando se definió de manera incorrecta uno de los
puertos del microcontrolador, esto se considera un error de funcionamiento pues no está mal escrito
el código, pero el puerto puede estar definido como salida cuando se requería de entrada. Por último,

Práctica 0 - Introductoria 1
Facultad de Estudios Superiores Cuautitlán UNAM

existen errores de conexión, que no tienen que ver con la programación, sino que simplemente las
líneas que unen al microcontrolador con otros dispositivos están dispuestas de manera incorrecta.

Error de sintaxis

Error corregido
Figura 0.1. Ejemplo de error de sintaxis.

Los primeros dos tipos de errores mencionados pueden ser detectados por medio de herramientas
llamadas debug, estas herramientas se encuentran incluidas dentro del software del compilador o
dentro del programa de simulación de circuitos. El debug no corrige de manera automática los
errores, pero le permite al desarrollador realizar una revisión sistemática del código del programa en
busca de posibles errores al mismo tiempo que observa el comportamiento que presentaría el
microcontrolador para determinar que su funcionamiento es el deseado. En cuanto al error de
conexiones, este se puede observar en el entorno del simulador.

Ciclo no Instrucción
deseado que no llega a
ser realizada
Figura 0.2. Ejemplo de error lógico.

Actividades previas a la práctica

1) Realice la lectura de la práctica.


2) Arme el circuito mostrado en la figura 0.10 del procedimiento en el simulador de circuitos.
Guarde el archivo y preséntelo al profesor al inicio de la práctica en una memoria USB.

NOTA: En esta práctica no se requiere el armado de circuitos en la tableta de conexiones, solo en


el simulador.

Equipo

1 Computadora con el siguiente software instalado:


- Compilador de lenguaje ensamblador MPLab IDE
- Simulador de circuitos electrónicos con capacidad para microcontroladores.

Procedimiento experimental

1. Abra el compilador MPLab IDE y seleccione la opción “New Project” para crear un proyecto,
como se muestra en la figura 0.3(a). A continuación, aparecerá una ventana donde se debe

Práctica 0 - Introductoria 2
Facultad de Estudios Superiores Cuautitlán UNAM

indicar un nombre para el proyecto y seleccionar la ubicación en la memoria de la


computadora donde será guardado, figura 0.3(b).

(a) (b)
Figura 0.3. Creación de un nuevo proyecto en MPLab IDE.

2. Haga clic en el menú “View” y seleccione la opción “Project” como se indica en la figura 0.4(a),
esto hará que se muestre la ventana de proyecto como la mostrada en la figura 0.4(b).

(a) (b)
Figura 0.4. Ventana de proyecto.

3. A continuación, cree un nuevo archivo usando la opción “New File” como se ve en la figura 0.5,
de esta manera aparecerá la página donde debe ser escrito el programa.
New File

Nueva página para


escribir el programa

Figura 0.5. Creación de un nuevo archivo.

4. Escriba en el nuevo archivo el programa que se muestra en la figura 0.6. Cuando termine
guarde el archivo dándole un nombre y cuidando de que debe de incluir la extensión “.asm”.

5. Haga clic derecho sobre la carpeta “Source Files” de la ventana de proyecto y seleccione la
opción “Add Files...”. Seleccione y agregue el archivo que acaba de escribir, como se muestra
en la figura 0.7.

Práctica 0 - Introductoria 3
Facultad de Estudios Superiores Cuautitlán UNAM

;*** *** Encabezado del programa *** ***;


List p=16F688 ;Definición del modelo de PIC.
INCLUDE "P16F688.inc" ;Incluir archivo al proyecto.
RADIX HEX ;Trabajar en base hexadecimal.
__CONFIG H'3FC4' ;Palabra de configuración.
DATO EQU 20 ;Variable para guardar datos.

ORG 0 ;Vector de Reset.


goto EMPIEZA
ORG 5 ;Inicio de la memoria de programa.

;*** *** Sección de configuraciones *** ***;


EMPIEZA bsf STATUS,RP0 ;Cambia al banco 1 de memoria.
bsf STATUS,RP1

clrf ANSEL ;Puertos en modo digital.

movlw 2F ;Carga a W con '00111111'.


movwf TRISA ;Configura a PORTA como entrada.

clrf TRISC ;Configura a PORTC como salida.

bcf STATUS,RP0 ;Cambia al banco 0 de memoria.


bcf STATUS,RP1

clrf PORTA ;Limpia ambos puertos para


clrf PORTC ;comenzar el programa principal.

;*** *** Programa principal *** ***;


REVISA btfsc PORTA,5 ;Realiza un ciclo donde revisa si
goto ENTRA ;se ha presionado el botón para
btfsc PORTC,5 ;ingresar un dato o el botón para
goto SALE ;extraer un dato y salta a la
goto REVISA ;rutina correspondiente.

ENTRA movf PORTA,W ;Leer el Puerto A y guárdalo en W.


andlw 0F ;Aplica una "máscara" a W.
movwf DATO ;Guarda la información en DATO.
goto REVISA ;Regresa al ciclo REVISA.

SALE movf DATO,W ;Lee el contenido de DATO en W.


movwf PORTC ;Escribe en el Puerto C el DATO.
goto REVISA ;Regresa al ciclo REVISA.

END ;Fin del programa.

Figura 0.6. Programa de prueba para la práctica.

Práctica 0 - Introductoria 4
Facultad de Estudios Superiores Cuautitlán UNAM

Figura 0.7. Agregar el archivo al proyecto.

6. Finalmente, realice la compilación del programa haciendo clic en el botón de la barra de


herramientas llamado “Build All”, ver figura 0.8, y cuando el compilador pregunte sobre el
tipo de código deseado se debe elegir la opción “Absolute”.

Figura 0.8. Compilar el programa dentro del proyecto.

7. Al realizar la compilación del programa se obtendrá uno de dos posibles resultados. El


primero es el mensaje “BUILD SUCCEEDED”, esto indica que el compilador no encontró
ningún error de sintaxis en el código y el proceso de compilación fue exitoso, lo cual producirá
una serie de archivos entre los cuales se encuentran uno con extensión “.hex” y otro con
extensión “.cof”, que son los que se emplearán durante la simulación.

8. El segundo resultado que puede entregar el compilador es un mensaje de error como el


mostrado en la figura 0.9, en caso de que este aparezca, ubique en la ventana emergente cada
una de las líneas donde se reporta un error. Haciendo doble clic en la línea de error el
compilador indicará automáticamente donde se encuentra dicho error.

Figura I.9. Mensaje de error al intentar compilar el programa.

9. En caso de presentarse errores, realice el procedimiento descrito en el punto 8 y corrija cada


error detectado hasta lograr una compilación exitosa.

10. Una vez que el programa quede compilado de manera exitosa, abra el software de simulación
y arme el circuito mostrado en la figura 0.10 usando los elementos de la lista.

Práctica 0 - Introductoria 5
Facultad de Estudios Superiores Cuautitlán UNAM

Figura 0.10. Circuito de prueba de la herramienta debug.

11. El circuito funciona de la siguiente manera, se coloca un dato de 4 bits en el “Puerto de


entrada” y al presionar el botón de entrada, el dato será almacenado dentro del
microcontrolador. Para extraer el dato del microcontrolador se debe presionar el botón de
salida para que se muestre en el “Puerto de salida”.

12. Haga doble clic en el microcontrolador y en la ventana emergente seleccione el archivo con
extensión “.hex” y complete la información que se muestra en la figura 0.11.

Figura 0.11. Ventana emergente del microcontrolador.

13. Inicie la simulación y compruebe que el funcionamiento del circuito corresponde con lo
descrito previamente. Realice algunas capturas de pantalla para agregarlas a su reporte.

14. Detenga la simulación y nuevamente haga doble clic en el microcontrolador. Cambie el archivo
con extensión “.hex” por el que tiene extensión “.cof”.

15. No inicie la simulación, en esta ocasión abra el menú “Debug” y seleccione la opción “Start
VSM Debugging” como se muestra en la figura 0.12.

Figura 0.12. Herramienta de simulación Debug.

Práctica 0 - Introductoria 6
Facultad de Estudios Superiores Cuautitlán UNAM

16. Abra nuevamente en el menú “Debug” y en la opción “PIC CPU” seleccione “Source code” y
“Registers”. En el área de trabajo del simulador deberán aparecer las ventanas que se
muestran en la figura 0.13.

Figura 0.13. Simulación empleando la herramienta Debug.

17. La ventana de “Source Code” permite observar la ejecución de cada una de las instrucciones
del programa mientras que la ventana “Registers” muestra cómo se modifica el contenido de
los registros más importantes de la memoria del microcontrolador.

18. Usando la opción “Step Into Source Line”, ver figura 0.14, que se encuentra en la parte superior
de la ventana “Source Code” avance una instrucción a la vez dentro del código del programa y
observe la manera en que se modifica el contenido de los registros dentro de la venta
“Registers”.

Figura 0.14. Opción “Step Into Source Line”.

19. En la figura 0.15 se observa como al avanzar hasta la línea 0006 del código se modifica
el contenido del registro STATUS.

20. Continúe observando los cambios en los registros internos del microcontrolador
hasta llegar a la rutina REVISA dentro del programa. Note que esta rutina en realidad
es un ciclo que monitorea los botones de entrada y salida de datos del sistema.

21. Coloque un dato en el puerto de entrada y presione el botón de entrada de dato, vuelva
a avanzar en la ejecución de las instrucciones del programa hasta que se encuentre en
la rutina llamada ENTRA. Como se muestra en la figura 0.16.

22. Una vez que termine el proceso para ingresar y guardar el dato el programa regresará
a la rutina REVISA, estando en esta parte presione el botón para extraer el dato de la
memoria del microcontrolador y que se muestre en el puerto de salida.

Práctica 0 - Introductoria 7
Facultad de Estudios Superiores Cuautitlán UNAM

Figura 0.15. Proceso de simulación mediante la herramienta Debug.

Figura 0.16. Rutina para ingreso de datos al microcontrolador.

23. Avance la ejecución de las instrucciones del programa hasta alcanzar la rutina SALE.
Observe con cuidado los cambios que ocurrente en los registros internos hasta que el dato
aparece en el puerto del microcontrolador como se observa en la figura 0.17.

Figura 0.17. Rutina para extraer datos del microcontrolador.

24. Finalmente, note que el dato presente en el puerto de salida del microcontrolador no cambiará
hasta que primero se ingrese un nuevo dato y se den las señales de control correspondientes.

Práctica 0 - Introductoria 8
Facultad de Estudios Superiores Cuautitlán UNAM

Cuestionario.

1) Investigue lo que son los procesos de ensamblado, compilación y ligado de programas y


explique por qué son necesarios.

2) Investigue lo que son los lenguajes de bajo nivel y de alto nivel, explique la diferencia entre
ambos y mencione ejemplos de cada uno.

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 0 - Introductoria 9
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 1
Manejo de señales multiplexadas

Tema

4.1. Multiplexación de señales.

Objetivos

Al término de esta práctica el alumno comprenderá:

➢ El uso de circuitos multiplexores y demultiplexores.

➢ La multiplicidad de funciones con que cuenta cada una de las terminales de un


microcontrolador y la importancia de su correcta configuración.

Introducción

Los microcontroladores, debido a la gran variedad de opciones especiales y módulos periféricos que
pueden llegar a contener, requerirían de una gran cantidad de terminales dedicadas a cada una de
estas funciones, lo cual los volvería imprácticos, de gran tamaño y costosos. Es por eso que es
necesaria la multiplexación de funciones en cada una de las terminales del microcontrolador. En la
figura 1.1 se muestran ejemplos de microcontroladores cuyas terminales están multiplexadas con
distintos funcionamientos tanto de entrada como de salida.

Figura 1.1. Microcontroladores con terminales multiplexadas.

Práctica 1 10
Facultad de Estudios Superiores Cuautitlán UNAM

La multiplexación es la combinación de dos o más canales de información en un solo medio de


transmisión. En el caso de los microcontroladores, donde pueden configurarse las terminales para
actuar como salidas o como entradas, también existe el proceso contrario, llamado demultiplexación
donde, usando un solo medio de transmisión, se separan varios canales de información. La figura 1.2
muestra un ejemplo de esto. La terminal o pin de la figura 1.2 del microcontrolador posee funciones
digitales de I/O pero adicionalmente esta multiplexada con funciones analógicas de entrada como
son el comparador de voltaje y el convertidor analógico digital.

Figura 1.2. Terminal multiplexada de un microcontrolador.

Actividades previas a la práctica

1) Realice la lectura de la práctica.

2) Investigue y tenga a la mano, ya sea en formato electrónico o impreso, la hoja técnica del
microcontrolador solicitado en la práctica teniendo especial interés en el diagrama de
terminales y las funciones de cada pin de puerto. Muéstresela a su profesor(a) al inicio de la
práctica.

3) En el software MPLAB IDE, escriba el código ensamblador mostrado en la figura 1.3, compile
el código y corrija los posibles errores de sintaxis que aparezcan.

4) Realice la simulación del circuito de la figura 1.4 empleando el archivo .hex obtenido de la
compilación del programa de la figura 1.3. Compruebe que se comporta de acuerdo con la
descripción del punto 2 del procedimiento experimental. Entregue una copia a su profesor
siguiendo las indicaciones que éste haya dado para su entrega.

5) Traer el circuito de la práctica previamente armado.

Práctica 1 11
Facultad de Estudios Superiores Cuautitlán UNAM

Equipo
1 PC con software instalado:
• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje bipolar de CD

Material
1 Microcontrolador PIC12F615
2 Resistencias de 1 kΩ, ½ watt
2 Resistencias de 0.33 kΩ, ½ watt
2 Botones tipo push
Tableta de Conexiones
Alambres y cables para conexiones

Procedimiento experimental
1. Escriba y compile el código mostrado en lenguaje ensamblador de la figura 1.3. Para crear el
proyecto en el software MPLAB IDE se puede basar en el procedimiento visto en la Práctica 0.

List p=12F615 ;Definición del modelo de PIC.


INCLUDE "P12F615.inc" ;Incluir archivo al proyecto.
RADIX HEX ;Trabajar en base hexadecimal.
__CONFIG H'3FE4' ;Palabra de configuración.

ORG 0 ;Vector de Reset.


goto START
ORG 5 ;Inicio de la memoria de programa.

;*** Sección de configuraciones ***;


START bsf STATUS,RP0 ;Cambio al Banco 0 de memoria.
clrf ANSEL ;Apaga las funciones analógicas.
movlw 04 ;Configura los pines de puerto.
movwf TRISIO
bsf STATUS,RP0 ;Configura al microcontrolador
movlw 0A0 ;para que trabaje como contador.
movwf OPTION_REG ;usando al registro OPTION_REG.
bcf STATUS,RP0
clrf GPIO ;Limpia el PortB.

;*** Programa principal ***;


LOOP movf TMR0,w ;Se encarga de realizar el conteo
andlw 03 ;y enviarlo al puerto de salida.
movwf GPIO
goto LOOP
END

Figura 1.3. Programa para el contador binario de 2 bits.

Práctica 1 12
Facultad de Estudios Superiores Cuautitlán UNAM

2. El código mostrado en la figura 1.3 permite que el microcontrolador entre en modo de


funcionamiento de contador binario, en este caso de dos bits. Cada vez que el circuito recibe
dos señales de entrada (pulsaciones) en la terminal GP2 el conteo mostrado en los pines de
puerto de salida se incrementa en 1.

3. Programe el microcontrolador con el archivo con extensión .hex obtenido como resultado de
la compilación del programa.

4. Arme el circuito mostrado en la figura 1.4 alimentando el circuito en las terminales VDD y VSS.
de acuerdo con lo que indica la hoja técnica del microcontrolador.

Figura 1.4. Circuito contador binario de 2 bits.

5. Note que, durante la ejecución de esta función, la terminal 5 del microcontrolador toma
una sola de las 7 funciones que posee, esto indica que las terminales en el
microcontrolador están multiplexadas.

6. Compruebe el funcionamiento del circuito e incluya fotografías en el reporte de la práctica.

7. A continuación, en el programa de la figura 1.3, comente la línea que apaga las funciones
analógicas. Compile nuevamente el programa y descárguelo en el microcontrolador.

8. Pruebe nuevamente el circuito de la figura 1.4 con la modificación en el programa, anotando


sus observaciones y comente sobre las razones del comportamiento que presenta el circuito.

9. Modifique el circuito anterior, para obtener el que se muestra en la figura 1.5.

Figura 1.5. Modificación del circuito para uso de pines de puerto.

Práctica 1 13
Facultad de Estudios Superiores Cuautitlán UNAM

10. Escriba un nuevo programa en donde se tenga como un pin de entrada digital a GP2 y como
pin de salida digital a GP0, esto representa otra de las funciones que pueden tomar las
terminales del microcontrolador. El funcionamiento del circuito es el siguiente, siempre que
en el pin de entrada exista un 0Log, en el pin de salida también deberá aparecer un 0Log, si en
el pin de entrada aparece un 1Log, en el pin de salida deberá observarse también un 1Log.

11. Incluya fotografías del funcionamiento de este último programa en su reporte.

Cuestionario.

1) Explique la diferencia entre un multiplexor y un demultiplexor y porqué es necesario aplicar


esta técnica en los circuitos microcontroladores.

2) Para el primer programa de la práctica, indique cuál de las funciones del pin GP2 es la que
esta activa y explique brevemente dicha función.

3) Para el microcontrolador PIC16F688 investigue cuáles son todas las funciones con las que
cuentan cada uno de sus pines del Puerto A, indicando si son de tipo analógico o digital.

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 1 14
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 2
Puertos del microcontrolador

Tema

4.2. Descripción funcional de terminales.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Manipular los puertos del microcontrolador para introducir y sacar datos de este mediante
lenguaje ensamblador.
➢ Configurar los diversos puertos del microcontrolador para que funcionen como puertos de
entrada o puertos de salida.
➢ Utilizar el software MPLAB IDE de Microchip para compilar microcontroladores.

Introducción

Los microprocesadores PIC tienen diversos puertos de entrada/salida paralelos de usos generales
denominados Puerto A, Puerto B, Puerto C, etc. El número de puertos depende del dispositivo que se
tenga. Por ejemplo, el PIC16F84A solo tiene dos puertos A y B; mientras que el PIC 16F887 tiene 5
puertos A, B, C, D y E. Para hacer una analogía, los puertos del microcontrolador son similares al ya
desaparecido puerto paralelo de la PC, en donde la información entra y sale a través de 8 líneas
independientes de datos.

Los puertos del microcontrolador PIC son el medio de comunicación con el mundo exterior, en ellos
se pueden conectar los periféricos o circuitos necesarios como por ejemplo los módulos LCD, motores
eléctricos, etc., pero estas conexiones no se pueden realizar arbitrariamente. Existen unas reglas
básicas que deberán cumplirse para que el microcontrolador no sufra daños o se destruya. Para ello
es necesario conocer los límites de corriente que puede manejar el microcontrolador.

Al realizar un programa en lenguaje ensamblador, que será compilado y cargado al microcontrolador


PIC, es necesario emplear una serie de directivas para especificar al programa algunos aspectos del
microcontrolador que se está empleando, el punto de inicio y fin del programa, etc. A continuación,
se describen las directivas más importantes y comúnmente empleadas.

• LIST (list p = <dispositivo>)


Sirve para indicarle al compilador MPLAB el archivo *.list, dentro del cual se especifican parámetros
como el tipo de procesador que se va a emplear, por ejemplo:

list p = 16Fxxx donde las x representan el modelo particular del microcontrolador

Práctica 2 15
Facultad de Estudios Superiores Cuautitlán UNAM

• INCLUDE (include <file>)


Sirve para incluir en el ensamblado el archivo indicado por el parámetro “file”. Se pueden incluir
diferentes tipos de archivos, pero el principal es aquel con extensión inc, este archivo contiene todos
los nombres de los registros de funciones especiales del microcontrolador y sus posiciones dentro de
la memoria, así como el nombre y posición de cada uno de los bits que conforman cada registro. El
parámetro “file” puede incluir el path o camino en el cual se encuentra el archivo a incluir. Un ejemplo
de lo anterior es el siguiente:

include <p16fxxx.inc>

• ORG (<etiqueta> ORG <exp>)


Es una abreviatura de “origen”, sirve para indicar la dirección de memoria en la cual será colocado el
código generado a continuación mediante el parámetro <exp>. Si el ORG no es indicado se empieza
en la dirección 0. El parámetro <etiqueta> es solo para el uso del programador y no es requerido para
poder realizar la compilación del programa, por lo tanto, es opcional. Como un ejemplo se tiene:

ORG 0x05
Inicio

Indica que el origen del programa se encontrará en la ubicación de la memoria indicada por la etiqueta
“Inicio”, es decir, se colocará en la dirección 0x05 de la memoria de programa.

• EQU (<identificador> EQU <exp>)


Permite crear un registro de propósito general dentro de la memoria de programa, para tal fin se
asigna el valor del parámetro <exp>, que representa la dirección de memoria deseada, al
identificador. En general, el identificador es un nombre que le es familiar al programador, por
ejemplo:

dato EQU 0x20

Asigna a la dirección 0x20 de la memoria el identificador “dato”, con esto se puede considerar que
dicha dirección funcionará como un registro de propósito general para el programador.

• END
Es de uso obligatorio y siempre se coloca al final del programa para marcar su finalización. El
compilador MPLAB solo reconoce las líneas de instrucciones que estén escritas previas a la aparición
de la directiva END.

Actividades previas a la práctica

1) Realizar la lectura de la práctica.

2) En general, la operación de configuración de los puertos implica la siguiente secuencia:


• Ingresar al banco 1
• Configurar los puertos (registros TRISA, TRISB, etc.).
• Regresar al banco 0
• Escribir o leer datos desde los puertos (registros PORTA, PORTB, etc.).

Práctica 2 16
Facultad de Estudios Superiores Cuautitlán UNAM

3) Desarrolle un programa que configure las líneas de un puerto cualquiera “X” como entrada y
las líneas de otro puerto “Y” como salida. El dato de entrada a través del Puerto X será dado
en formato BCDNAT de 4 bits mientras que en el Puerto Y será mostrado en formato Aiken.
Para realizar el programa siga los pasos que se describen a continuación.

Nota, los puertos del microcontrolador no están especificados,


cuando se menciona al “Puerto X” se habla de un puerto Inicio
cualquiera, seleccione el puerto con el que desee trabajar y
justifique sus razones.
Ir al banco 1
4) Si se desarrolla el algoritmo se reduce a:
a) Configurar PX como entrada y PY como salida
b) W= PX
c) Convertir dato a formato Aiken Configurar el puerto
d) PY=W X como entrada
e) Ir a paso b)

5) El diagrama de flujo que indica cómo se va a desarrollar el Configurar el puerto


programa es como el mostrado en la figura 2.1. Y como salida

6) Realice la simulación del sistema de microcontrolador y


entregue a su profesor una copia impresa o en formato
digital de los resultados obtenidos, de acuerdo con lo Ir al banco 0
indicado por el profesor, donde se aprecien diferentes
valores del código de entrada y sus correspondientes
salidas. Si la simulación tiene problemas con la barra de W=Puerto X
leds, reduzca el valor de R10.

7) Realice una modificación del código del microcontrolador


de modo que, al ingresar un dato por el Puerto X, en un Conversión del dato
Puerto Z aparezca de manera simultánea el dato en código
Gray. (El Puerto Y mantiene la función que tenía
anteriormente). Puerto Y=W

8) El circuito deberá ser armado previamente a la


realización de la práctica.
Figura 2.1. Diagrama de flujo del
programa de lectura y escritura de
puertos.

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD

Práctica 2 17
Facultad de Estudios Superiores Cuautitlán UNAM

Material

1 Microcontrolador PIC 16F887


6 Resistencias de 1 kΩ a ½ watt
1 Dip switch de al menos 4 interruptores
1 Push button
1 Barra de leds
Tableta de Conexiones (protoboard)
Alambres y cables para conexiones

Procedimiento experimental

1. Cree un nuevo proyecto en MPLAB IDE y escriba el programa solicitado en las actividades
previas, puede usar como guía el pseudo código mostrado en la figura 2.2 (a) y (b).

;***** Programa que lee un dato del puerto X y lo muestra en el puerto Y *****
list p=16FXXX ;Definir el PIC con el que se va a trabajar.
include "P16FXXX.INC” ;Archivo de direcciones con su respectiva etiqueta

;Definición de variables
dato equ 0x20 ;Asignar una dirección de memoria a la variable.

;Vectores de reset y de inicio de programa


org 0
goto Inicio ;Salta hacia la etiqueta ‘Inicio’ donde comienza
org 5 ;el programa.

;Configuración de puertos
Inicio bsf STATUS,RP0 ;Se posiciona en el banco 1 de la memoria.
movlw 0xFF ;Todos los bits de trisX en uno (1Log) configuran
movwf TRISX ;al puerto X como entrada.
movlw 0x00 ;Todos los bits de trisY en cero (0Log) configuran
movwf TRISY ;al puerto Y como salida.
bcf STATUS,RP0 ;Se posiciona en el banco 0 de la memoria.
;Programa principal
ciclo call leer_puerto_X ;Llama a la subrutina de lectura.
call convertir_dato ;Llama a la subrutina de conversión.
call escribir_puerto_Y ;Llama a la subrutina de escritura.
goto ciclo ;Regresa al ciclo principal.

;*** Área de subrutinas ***


;Subrutina para leer el puerto X y guardarlo en dato
leer_puerto_X
movf PORTX,0 ;Guarda el dato de entrada en el registro W.
movwf dato ;Envía el contenido del registro W a “dato”.
return ;Regresa de la subrutina.

Figura 2.2(a). Pseudo Código para la conversión de códigos.

Práctica 2 18
Facultad de Estudios Superiores Cuautitlán UNAM

;Área donde debe escribir la subrutina que convierta el dato de


entrada al formato de salida

;Leer el valor de dato y escribirlo en el puerto Y


escribir_puerto_Y
movf dato,0 ;Envía el contenido de “dato” al registro W.
movwf PORTY ;Escribe en el puerto Y el código de salida.
return ;Regresa de la subrutina.
END ;Fin del programa.

Figura 2.2(b). Pseudo Código para la conversión de códigos.

2. Proceda a armar el circuito en la protoboard de acuerdo con el diagrama de la figura 2.3 y los
puertos elegidos al desarrollar el código, programe el microcontrolador y verifique que
realice la lectura y escritura de puertos correctamente. Anote sus observaciones.

3. Tome algunas fotografías donde se observe el funcionamiento del circuito para distintos
valores en los puertos de entrada y salida.

Figura 2.3. Diagrama del circuito.

4. Realice los cambios necesarios al programa principal para que se realice la segunda
conversión. Recuerde que el dato a convertir es el del Puerto X, mismo que se convertirá
simultáneamente a código BCDNAT (que se mostrará en el Puerto Y) y a código Gray (que se
mostrará en el Puerto Z). Recuerde que X, Y y Z hacen referencia a cualquier puerto elegido,
no son puertos “reales” del microcontrolador.

Cuestionario.

1) Dibuje el diagrama de flujo del programa modificado en el punto 4 del procedimiento.

Práctica 2 19
Facultad de Estudios Superiores Cuautitlán UNAM

2) ¿Cuáles son los límites máximos de corriente y voltaje que puede soportar un pin de puerto
del PIC16F887? Consulte las características eléctricas en hoja técnica correspondiente.

3) De los distintos puertos con los que cuenta el microcontrolador usado en la práctica, explique
las razones para seleccionar los puertos empleados para realizar el programa de la práctica.

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 2 20
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 3
Temporizadores

Tema

5.3. Programación de microcontroladores.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Crear retardos a partir del temporizador básico de los microcontroladores PIC, el TIMER 0.

Introducción

Los Temporizadores o “Timers” se emplean para controlar periodos de tiempo (temporizadores) y


para llevar la cuenta de acontecimientos que suceden en el exterior (contadores).

Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor
se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo, esto lo hace
hasta que se desborde y llegue a 0, momento en el que se produce un aviso.

Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en
alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o
decrementando al ritmo de dichos impulsos.

El registro TMR0 es un contador de 8 bits, es decir, un tipo particular de registro cuyo contenido es
incrementado con una cadencia regular y programable directamente por el hardware del PIC. Como
es de 8 bits, el máximo de la cuenta está en 255. Este registro puede usarse para contar eventos
externos por medio de un pin de entrada especial (modo contador) o para contar pulsos internos de
reloj de frecuencia constante (modo timer). Además, en cualquiera de los dos modos, se puede
insertar un prescaler, es decir un divisor de frecuencia programable que puede dividir por 2, 4, 8, 16,
32, 64, 128 o 256. Este divisor puede ser utilizado alternativamente como prescaler o del TMR0 o
como postscaler del Watch Dog Timer, según se lo programe.

Una vez alcanzado el valor 255, el registro TMR0 es puesto a cero automáticamente comenzando
entonces a contar desde cero y no desde el valor originalmente cargado. La frecuencia de conteo es
directamente proporcional a la frecuencia de reloj aplicada al chip y puede ser modificada
programando adecuadamente algunos bits de configuración.

Práctica 3 21
Facultad de Estudios Superiores Cuautitlán UNAM

Actividades previas a la práctica

1) Realice la lectura de la práctica.

2) Desarrolle un programa que encienda y apague un led de forma intermitente con periodos de
0.7s en cada estado. Puede usar como guía la rutina de tiempo mostrada en la figura 3.1
ajustándola de acuerdo con sus necesidades. Incluya los cálculos realizados para
configurar el módulo del Timer0.

3) Si se desarrolla el algoritmo se reduce a:


• Elegir cualquier puerto, por ejemplo, el puerto X y configurar un pin como salida. El pin
elegido puede ser cualquiera de los de ese puerto por lo que se le llamará PX.Y.
• Configurar el tiempo del bit PX.Y en alto.
• Configurar el tiempo del bit PX.Y en bajo

4) Dibuje el diagrama de flujo del algoritmo anterior.

5) Cree un nuevo proyecto en MPLAB IDE y empleando las rutinas anteriores, realizar un
programa que permita, por medio de dos terminales de selección, multiplicar el periodo de
tiempo del programa anterior por 1, por 2, por 3 y por 4.

6) Compile el programa y corrija los posibles errores que surjan.

7) Realice la simulación del sistema de microcontrolador comprobando con ayuda del


osciloscopio o del medidor de frecuencia su correcto funcionamiento, guarde la simulación y
entregue a su profesor una copia impresa o en formato digital de los resultados obtenidos, de
acuerdo con lo indicado por el profesor, donde se aprecien las mediciones de voltaje,
periodo y frecuencia.

8) Aprovechando las rutinas de tiempo ya realizadas, cree un programa que controle tres pines
del Puerto X de modo que funcione como un semáforo con una escala de tiempo corta,
considere la secuencia de encendido y que los tiempos no los mismos para cada una de las
tres luces.

9) El circuito para el primer programa deberá ser armado previamente a la realización de


la práctica basándose en el diagrama representativo de la figura 3.2.

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD de 5V
1 Osciloscopio

Práctica 3 22
Facultad de Estudios Superiores Cuautitlán UNAM

Material

1 Microcontrolador PIC12F615
1 Resistencia de 1 kΩ, ½ watt
3 Resistencias de 330 Ω, ½ watt
1 Push button
3 Led’s (1 Amarillo, 1 Verde y 1 Rojo)
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Procedimiento experimental

1. Haciendo uso del primer proyecto creado anteriormente en las actividades previas, programe
el microcontrolador, puede basar el programa en la subrutina de retardo que aparece en la
figura 3.1. Recuerde que los valores del número de repeticiones (RR) y el valor de tiempo (TT)
mostrados en el código corresponden a los valores calculados en las actividades previas y que
PX.Y hace referencia al pin Y del puerto X, es decir, la terminal de salida que se eligió al crear
el programa.

;Subrutina de retardo
RETARDO movlw 0xRR
movwf 0x20
call DELAY
return
DELAY bcf INTCON,2
movlw 0xTT
movwf TMR0
DELAY_1 btfss INTCON,2
goto DELAY_1
decfsz 0x20,f
goto DELAY
return

Figura 3.1. Ejemplo de subrutina de retardo para el Timer0.

2. Pruebe el circuito previamente armado de acuerdo con el diagrama representativo de la figura


3.2 y, con ayuda del osciloscopio, grafique la señal de salida del pin PX.Y para el primer
programa desarrollado en las actividades previas, haga uso de los cursores del osciloscopio
para comprobar que los tiempos corresponden con los solicitados y con la simulación.

3. Tome una fotografía donde se observe el funcionamiento del circuito indicando el voltaje,
periodo y frecuencia de la señal.

Práctica 3 23
Facultad de Estudios Superiores Cuautitlán UNAM

Figura 3.2. Diagrama representativo del circuito del temporizador Timer0.

4. Modifique el circuito anterior para obtener el de la figura 3.2 y programe el microcontrolador


con el segundo programa de las actividades previas, de modo que se pueda realizar la prueba
que incluye los selectores de la frecuencia de salida.

5. Obtenga fotografías donde se observe el funcionamiento del circuito para las distintas
combinaciones de los selectores indicando en cada una el voltaje, periodo y frecuencia de
la señal.

Figura 3.2. Diagrama representativo del circuito temporizador con selectores de frecuencia.

6. Programe el microcontrolador con el tercer programa de las actividades previas y modifique


nuevamente el circuito para tener el sistema de semáforo.

7. Compruebe el correcto funcionamiento del semáforo. Tenga en cuenta que cada luz debe
de tener un tiempo de encendido distinto.

8. Con ayuda del osciloscopio compruebe que los tiempos asignados a cada luz corresponden
con los del programa que diseño y tome fotografías donde se observe el voltaje, periodo y
frecuencia de la señal en cada luz del semáforo.

Cuestionario

1) ¿Cuál es el valor máximo que puede tener la variable de tiempo “TT” para la subrutina de
retardo?

2) Explique el funcionamiento del prescaler del microcontrolador PIC12F615.

Práctica 3 24
Facultad de Estudios Superiores Cuautitlán UNAM

3) Determine el tiempo máximo de retardo que se puede lograr con el Timer0 del
microcontrolador empleado en la práctica teniendo en cuenta el valor máximo del prescaler
y la frecuencia de reloj interna máxima y explique cuáles son sus limitaciones de
funcionamiento.

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 3 25
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 4
Interrupciones

Tema

5.4. Programación de los registros internos.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Comprender el uso de interrupciones como señales de alta prioridad durante la ejecución de


programas.

➢ Hacer uso del puerto INT para detener un proceso y ejecutar una subrutina por medio de la
interrupción.

Introducción

Una interrupción es un evento que notifica al CPU del microcontrolador sobre la ocurrencia de una
situación excepcional de uno de sus periféricos, es decir, las
interrupciones son señales de alta prioridad que permiten
que, cuando se produzca un evento interno o externo, se
detenga la ejecución del programa principal en cualquier
momento. En el momento de producirse la interrupción, el
Pila

microcontrolador ejecuta un salto al vector de interrupción


Pila

de la memoria de programa y ejecuta la rutina de atención


a la interrupción, previamente definida por el
programador, donde se atenderá a la solicitud de la
interrupción. Cuando se termina de ejecutar dicha rutina, el
PIC retoma a la ejecución del programa principal en el
mismo punto donde se produjo la interrupción.

Los microcontroladores PIC de gama baja y media poseen


un único vector de interrupción situado en la dirección 04h
de la memoria de programa como se ve en la figura 4.1
donde se muestra el PIC12F615 de la gama media,
mientras que los de la gama alta tienen dos o tres vectores
de interrupción de distinta prioridad, alta y baja
respectivamente. Figura 4.1. Memoria de programa y la pila
del PIC12F615.

Práctica 4 27
Facultad de Estudios Superiores Cuautitlán UNAM

El número de fuentes de interrupción dependen del microcontrolador utilizado y se dividen en dos


tipos: interrupciones internas, generadas por los distintos periféricos con que cuenta el
microcontrolador; y las interrupciones externas, que son detectadas por las terminales del circuito
destinadas para esta función. En los microcontroladores PIC de gama media, es común que las
terminales con la función de detectar las interrupciones externas se encuentren en el puerto B, más
específicamente en el pin RB0.

Durante la interrupción, la dirección de retomo del programa principal se almacena en la pila y el


contador de programa se carga con la dirección 0004h.

Actividades previas a la práctica

1) Realice la lectura de la práctica.

2) Usando el microcontrolador indicado en la lista de material de la práctica, desarrolle un


programa en lenguaje C que haga que cuatro pines del Puerto X realicen la secuencia
mostrada en la figura 4.2, con un intervalo de 0.5s entre cada cambio, de forma cíclica y, por
medio de INT, se va a introducir una interrupción que provoque que el puerto completo
realice una secuencia de tres parpadeos con un intervalo de 1s. Al finalizar deberá regresar a
la rutina inicial justo en el punto donde se interrumpió.

Figura 4.2. Secuencia de funcionamiento del programa principal.

3) El desarrollo del algoritmo se reduce a:


• Indicar el vector de interrupciones.
• Configurar los pines del puerto X como salida.
• Configurar las interrupciones.
• Configurar el pin INT como entrada de interrupción.
• Crear la rutina de la interrupción.

4) Recuerde que cada vez que se activa la interrupción a través de INT el programa se dirige a
la dirección 0004 de la memoria de programa, como se mostró en la figura 4.1. En lenguaje C
no es necesario direccionar los vectores de interrupción como ocurre en lenguaje
ensamblador, pero es necesario que la función de interrupción se encuentre antes de la
función main( ). La función de interrupción se indica como se muestra en la figura 4.3.

Práctica 4 28
Facultad de Estudios Superiores Cuautitlán UNAM

/*Función de interrupción*/
#INT_EXT //Directiva de interrupción externa.
ext_isr( ){ //Función correspondiente a la interrupción.

Área donde se especifican las acciones a realizar


durante la interrupción.

}
/*Función principal*/
void main( ){ //La función de interrupción esta antes de main( )

Figura 4.3. Ejemplo de la forma para incluir la función de interrupción.

5) Tome en cuenta que para habilitar las interrupciones se debe colocar, dentro de la función
main( ), justo al inicio del programa principal las instrucciones para la configuración de las
interrupciones como se muestra en el ejemplo de la figura 4.4.

/* Función principal */
void main( ){
// Configuración de interrupciones
set_tris_A(0x0C); //Configura el Port A.
enable_interrupts(int_ext); //Habilita interrupción externa INT.
ext_int_edge(H_TO_L); //Interrupción por flanco de bajada.
enable_interrupts(global); //Habilita interrupciones globales.

// Programa principal – ciclo continuo.


while(True) {

Área donde se especifican las acciones que


realizará el programa principal.
} // Fin del ciclo while.
} // Fin de la función main( ).

Figura 4.4. Ejemplo de la forma de configuración de la función de interrupción.

6) Para obtener los tiempos de encendido en las secuencias del programa principal, puede
basarse en lo visto en la práctica anterior para el uso del Timer0.

7) Compile el programa con MPLAB IDE, corrigiendo los posibles errores.

8) Realice la simulación del sistema de microcontrolador basándose en el que se observa en la


figura 4.5 y, con ayuda de los cuatro canales del osciloscopio virtual, compruebe que cada
etapa del funcionamiento es correcta, guarde la simulación y entregue a su profesor una
copia impresa o en formato digital de los resultados obtenidos, de acuerdo con lo indicado
por el profesor, donde se aprecien las mediciones de voltaje, periodo, frecuencia y fase tanto
para el ciclo principal como para la interrupción INT.

9) El circuito deberá ser armado previamente a la realización de la práctica.

Práctica 4 29
Facultad de Estudios Superiores Cuautitlán UNAM

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD
1 Osciloscopio

Material

1 Microcontrolador PIC12F615
2 Resistencias de 1 kΩ, ½ watt
4 Resistencias de 330 Ω, ½ watt
2 Push button
4 Leds
Tableta de Conexiones
Alambres y cables para conexiones

Procedimiento experimental

1. Haciendo uso del proyecto creado anteriormente y siguiendo la lógica del algoritmo de las
actividades previas, programe el microcontrolador.

2. Con el circuito previamente armado, como el mostrado en la figura 4.5, verifique que realice
la secuencia de forma correcta y observe en el osciloscopio las señales de salida del
microcontrolador. Anote sus observaciones.

3. Tome fotografías donde se observe el funcionamiento del circuito e inclúyalas junto con las
imágenes del osciloscopio en su reporte.

Figura 4.5. Diagrama representativo del circuito secuencial con interrupción externa.

4. Cambie de alto a bajo el bit INT, explique lo que sucede con las señales en el puerto de salida.
Active varias veces la interrupción y anote sus observaciones.

Práctica 4 30
Facultad de Estudios Superiores Cuautitlán UNAM

Cuestionario.
1) De manera general, las interrupciones en un microcontrolador pueden dividirse en dos
grupos, mencione dichos grupos y las características de cada uno.

2) El microcontrolador PIC16F887 cuenta con numerosas fuentes de interrupción, describa


detalladamente al menos tres distintas a la empleada en la práctica. Revise la hoja técnica.

3) Investigue en la página del fabricante del microcontrolador usado en la práctica si existen


otros modelos que posean más de una fuente de interrupción externa. De ser así, de dos
ejemplos.

Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 4 31
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 5
Conexión con dispositivos de interfaz

Tema

6.2. Herramientas para desarrollo de programas con microcontroladores.

Objetivos

Al término de esta práctica el alumno podrá:

➢ El alumno aprenderá a programar el microcontrolador para que interactúe con otros


dispositivos haciendo uso de bibliotecas creadas en lenguaje C.

➢ Hacer uso de los dispositivos más comunes que sirven como interfaz con el usuario como
pueden ser el teclado y una pantalla LCD.

Introducción

Existe una gran variedad de aplicaciones en las que el microcontrolador debe proporcionar
información del estado de un proceso al usuario o simplemente, mostrar ciertos datos que se le han
solicitado. Además de lo anterior, también es deseable que exista la posibilidad de insertar datos de
parte del usuario para modificar el comportamiento del programa en curso e incluso cambiar el
programa por otro previamente almacenado en la memoria del microcontrolador.

Dos de los dispositivos más comunes que le permiten al humano interactuar con el
microcontrolador son los teclados y las pantallas. En la figura 5.1b se puede observar un teclado de
tipo “matricial”. Como su nombre lo indica, este tipo de teclado funciona como una matriz de cuatro
filas y tres columnas, al presionar alguno de los botones se cierran un par de interruptores internos
que corresponden con la posición vertical y horizontal que ocupa dicho botón. Al estar conectado
este dispositivo al puerto de un microcontrolador, es posible interpretar las señales que provienen
de éste, de acuerdo con la combinación específica en sus líneas de filas y columnas, y relacionarlas
con el botón que fue presionado. La figura 5.1a muestra las conexiones para cada fila y columna.

Por otro lado, en la figura 5.2, se muestra un ejemplo de una pantalla LCD, mejor conocida como
display LCD. Estas pantallas existen en una gran variedad de tamaños y capacidades, es común que
se cataloguen en función del número de caracteres que pueden contener por fila y el número de filas
o renglones que tienen, por ejemplo, en la figura 5.2 se muestra un display de tamaño16x2, es decir,
dos filas de dieciséis caracteres cada una. Cada display contiene un cierto número de líneas
dedicadas a alimentación, datos y control y comúnmente una línea que controla el contraste de la
pantalla.

Práctica 5 32
Facultad de Estudios Superiores Cuautitlán UNAM

Para facilitar la interacción de los microcontroladores con este tipo de dispositivos externos, se han
desarrollado bibliotecas en el lenguaje C que periten controlarlos sin un mayor esfuerzo de
programación, aunque siempre existe la posibilidad de que las bibliotecas no cumplan
completamente con nuestros requerimientos por lo que puede ser necesario realizar alguna
modificación, lo cual también resulta una tarea sencilla pues la mayoría de las bibliotecas son de
“código libre”.

C1 C2 C3
Color Función F1
Negro Común (GND)
Café Común (GND)
F2
Naranja Columna 1 (C1)
Rojo Columna 2 (C2)
Verde Columna 3 (C3) F3
Gris Fila 1 (F1)
Morado Fila 2 (F2) F4
Azul Fila 3 (F3)
Amarillo Fila 4 (F4)

Figura 5.1a. Conexiones del teclado matricial. Figura 5.1b. Teclado de tipo matricial.

Figura 5.2. Pantalla LCD de 16x2 (display).

Actividades previas a la práctica


1) Realice la lectura de la práctica.

2) Investigar lo que es el código ASCII e imprimir una tabla de este código.

3) Desarrolle un programa que permita que el microcontrolador funcione como una “agenda
electrónica”. Dentro del código del microcontrolador deberán incluirse el nombre y teléfono
ficticio de cada miembro del equipo, un familiar de cada uno, números de emergencia como
bomberos, policía u otro, el número de una pizzería y el de un médico; cada uno de estos

Práctica 5 33
Facultad de Estudios Superiores Cuautitlán UNAM

nombres y números deberán estar asociados a una tecla que al ser presionada mostrará la
información en el display. Además, en el momento del encendido o al presionar la tecla #
deberá mostrarse un mensaje de bienvenida y al presionar la tecla * deberá borrarse por
completo la pantalla. NO USE SUS DATOS PERSONALES REALES.

4) El diagrama de flujo que muestra cómo debe desarrollarse el programa se muestra en la


figura 5.3.

5) Al desarrollar el algoritmo del programa, todo se reduce a lo siguiente:


a. Incluir en las directivas de pre-
procesado las bibliotecas de control INICIO
del teclado y del display.
b. Mostrar el mensaje de bienvenida.
c. Crear un ciclo continuo que va a
contener la agenda. Declarar Directivas
d. El programa debe de tener un
segundo ciclo (anidado) que debe
estar pendiente del momento en que Mostrar mensaje de
se presione una tecla. bienvenida
e. Si no se presionó nada, el programa
debe regresar a la revisión del puerto
del teclado.
Leer el puerto del
f. Al presionarse cualquier tecla el
programa debe identificar cuál fue, teclado
esto se puede lograr de diferentes
maneras, por lo que no hay una
solución única. NO Identificar si se
g. Con la tecla identificada, mostrar la presionó alguna tecla
información asociada en el display.
h. Se repite todo el ciclo desde lo que se SI
indica en el inciso d). Identificar la tecla
6) Compile el programa con MPLAB IDE, presionada
corrigiendo los posibles errores.

7) Realice la simulación del sistema de agenda, Enviar la información


guarde la simulación y entregue a su profesor al puerto del display
una copia impresa o en formato digital de los
resultados obtenidos, de acuerdo con lo
indicado por el profesor, donde se aprecie el
funcionamiento para varios casos. Figura 5.3. Diagrama de flujo del programa

8) El circuito deberá ser armado previamente a la realización de la práctica.

NOTA1: Para el correcto funcionamiento del sistema se requiere cumplir con una de las siguientes
condiciones, que el driver de control para el teclado (kbd.c) haya sido modificado para
trabajar un puerto distinto al que usa el display LCD o que se emplee el driver flex_lcd.c
para controlar el display LDC y utilizar pines de puerto distintos al del teclado matricial.
NOTA2: En el caso del display LCD deberán de soldarse las terminales llamadas “headers”
previamente a la práctica.

Práctica 5 34
Facultad de Estudios Superiores Cuautitlán UNAM

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD
1 Teclado matricial 4x3

Material

1 Microcontrolador PIC16F887
1 Display LCD 16x2
1 Potenciómetro de 2 kΩ
5 Resistencias de 10 kΩ, ½ watt
1 Push button
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Procedimiento experimental

1. Haciendo uso del proyecto creado anteriormente y siguiendo la lógica del algoritmo de las
actividades previas, programe el microcontrolador.

2. Para el circuito representativo mostrado en la figura 5.4, tenga cuidado de que las
conexiones del display y del teclado correspondan con los pines de los puertos de entrada y
salida elegidos en el programa.

2k

Figura 5.4. Diagrama simbólico del circuito de la agenda electrónica.

3. No olvide incluir el circuito de reset para el microcontrolador en la terminal ̅̅̅̅̅̅̅̅


𝑀𝐶𝐿𝑅 como el
empleado en las prácticas anteriores.

Práctica 5 35
Facultad de Estudios Superiores Cuautitlán UNAM

4. Programe el microcontrolador y verifique que muestre la información contenida en la


memoria de la “Agenda Electrónica”. Anote sus observaciones.

5. Incluya algunas fotografías donde se observe el funcionamiento del circuito para varios
casos indicando la tecla presionada para cada uno.

6. Aplique una señal de reset y compruebe que el circuito continúe funcionando de manera
correcta.

Cuestionario.

1) Investigue la manera de conectar una memoria serial de tipo EEPROM al sistema para
incrementar su capacidad de almacenamiento.

2) Investigue si existen otros dispositivos de interfaz que puedan conectarse directamente a


alguno de los puertos de un microcontrolador e indique cuáles son las bibliotecas en
lenguaje C, sí existen, que los controlan.

3) ¿Cómo se pueden crear caracteres personalizados para el display utilizado en la práctica?


Consulte la hoja técnica del display.

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 5 36
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 6
Temporizadores y contadores

Tema

6.3. Elaboración de proyectos.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Crear rutinas de retardo a partir de programación en C para microcontroladores.

➢ Utilizar uno de los módulos de temporización en modo de contador para identificar eventos
que se produzcan de forma externa al microcontrolador.

Introducción

Los temporizadores son módulos periféricos que se encuentran dentro de los microcontroladores,
tienen la función de crear retardos de tiempo en base a registros que se incrementan de acuerdo con
un oscilador interno asociado a ellos. Típicamente, existen temporizadores de 8 y 16 bits y varía el
número de módulos con cada modelo de microcontrolador. Al tratarse de registros que se van
incrementando en cada evento del oscilador, es decir, con cada pulso de reloj, solo pueden ser
programados con valores de tiempo discretos de dicho oscilador, por lo que el microcontrolador
cuenta con otro dispositivo auxiliar llamado prescaler, el cual actúa como un divisor de frecuencia
para poder reducir la velocidad de cada evento. Hay que recordar que, como el registro del
temporizador cambia su valor en cada nuevo evento, estos temporizadores son de tipo ascendente.

Hay otras consideraciones que deben de tenerse en cuenta al programar el módulo del
temporizador, por ejemplo, el valor que puede tomar el prescaler, que se puede consultar de tablas
incluidas en las hojas técnicas del microcontrolador, la frecuencia del reloj con la que opera el µc, la
fuente del reloj y el lenguaje de programación en que se realiza el código. Es necesario realizar estas
consideraciones para poder obtener un resultado apropiado.

Otra forma de lograr retardos de tiempo es mediante software, usando la programación en


lenguaje C. Existen directivas de pre-procesado que, al ser incluidas dentro del código de
programación, permiten crear estos retardos simplemente especificando la frecuencia del oscilador
del microcontrolador y usando instrucciones específicas de retardo dentro del código. Hay que
tener en cuenta que, al ser de alto nivel el lenguaje C, no conocemos la forma exacta en la que genera
estos retardos, pues varía con cada compilador.

Práctica 6 37
Facultad de Estudios Superiores Cuautitlán UNAM

Existe una función adicional asociada a algunos temporizadores que permite usar señales externas
como la fuente de reloj del temporizador. Cuando se utiliza esta opción, se dice que el temporizador
funciona en modo de contador. Con cada evento externo, el valor del registro del temporizador se
incrementará en uno. Normalmente se destina para este modo de funcionamiento los
temporizadores de 16 bits.

Actividades previas a la práctica

1) Realice la lectura de la práctica.

2) Defina los términos: periodo, frecuencia, señal de reloj digital, flanco de subida, flanco de
bajada, tiempo de respuesta en circuitos digitales, niveles de voltaje TTL y efecto de rebote.

3) Para el correcto armado del circuito es importante la orientación de los elementos


optoelectrónicos, investigue en las hojas técnicas los valores del ángulo de dispersión y la
longitud de onda del led IR de la práctica. Incluya las gráficas de distribución espectral.

4) Desarrolle un programa que permita que el microcontrolador funcione como una “fuente de
reloj digital”. El circuito debe contar con dos entradas de selección que permitan cambiar la
frecuencia de la señal de salida con los valores de “apagado”, 6.2kHz, 15.5 kHz y 24 kHz.
NOTA. Considere que, debido al proceso de traducción del lenguaje C a lenguaje máquina y
los límites de operación del microcontrolador, es posible que en la prueba real en el
laboratorio existan errores dentro de un rango de ±3% en las frecuencias, esto es normal.

5) El algoritmo debe seguir la siguiente lógica:


• Configurar los pines de entrada del puerto PX.Y y PX.Z
• Configurar el pin de salida del puerto PX.W (NOTA: se está usando un solo puerto)
• Crear un ciclo que haga una revisión del estado de los pines de entrada PX.Y y PX.Z
• De acuerdo a la combinación de entrada, configurar los tiempos que permanecerá en
alto y en bajo el pin PX.W para la frecuencia seleccionada.
• En caso de que la combinación corresponda a “apagado”, suspender la emisión de
señales en el pin PX.W.

6) Realice el diagrama de flujo que indique cómo se va a desarrollar el programa.

7) Compile el programa con MPLAB IDE, corrigiendo los posibles errores.

8) La figura 6.1 muestra señales de


baja frecuencia con distintos
anchos de pulso, realice un nuevo
programa que permita generar
dichas señales con las
características indicadas. El
programa debe funcionar en base a
un interruptor para elegir el ancho
de la señal.
Figura 6.1. Señales de con ancho de pulso variable.

Práctica 6 38
Facultad de Estudios Superiores Cuautitlán UNAM

9) Compile el nuevo programa con MPLAB IDE, corrigiendo los posibles errores.

10) Escriba un tercer programa que, usando el temporizador de 16 bits, realice el conteo de una
serie de eventos externos al microcontrolador y muestre el valor del conteo en un display
por cada evento en una línea y en la otra línea un conteo por cada grupo de 8 eventos.

11) El algoritmo debe tener la siguiente lógica:


• Incluir en las directivas de pre-procesado la biblioteca de control del display.
• Configurar como entrada el pin de puerto correspondiente al TMR1.
• Configurar el display con cuidado de no usar el mismo puerto que el que usa el TMR1
• Mostrar, en las líneas del display, los mensajes del valor de ambos conteos.
• Crear un ciclo que haga una revisión del estado del pin de entrada del TMR1.
• En caso de se presente un flanco de subida en el pin de entrada, el conteo deberá
incrementarse en 1 y actualizarse en la primera línea del display y cada 8 eventos se
deberá actualizar el valor de la segunda línea de conteo

12) Compile el programa con MPLAB IDE, corrigiendo los posibles errores.

13) Realice la simulación del sistema de microcontrolador para los tres programas, guarde las
simulaciones y entregue a su profesor una copia impresa o en formato digital de los
resultados obtenidos, de acuerdo con lo indicado por el profesor, donde se aprecien las
mediciones de voltaje, periodo y frecuencia para los dos programas de temporizador y
ejemplos de distintos valores que indique el contador del tercer programa.

14) Los circuitos deberán ser armados previamente a la realización de la práctica. Si elige
con cuidado las conexiones del microcontrolador se pueden colocar todos los elementos
para los programas solicitados en un mismo circuito sin que haya necesidad de modificarlo
posteriormente.

NOTA: Dentro de la simulación, el diodo IR y el fototransistor se puede sustituir por el elemento


llamado "optocoupler" y un interruptor para aparentar la obstrucción del rayo de luz
infrarroja, como se muestra en la figura 6.2.

Figura 6.2. Optoacoplador para simulación.

Práctica 6 39
Facultad de Estudios Superiores Cuautitlán UNAM

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD
1 Osciloscopio

Material

1 Microcontrolador PIC 16F887


1 Display LCD 16x2
1 Potenciómetro de 2 kΩ
4 Resistencias de 10 kΩ, ½ watt
1 Resistencias de 0.33 kΩ, ½ watt
1 Diodo emisor de luz infrarroja, led IR333C.
1 Fototransistor infrarrojo, PT331C
1 Inversor Schmitt Trigger, 74LS14
1 Push button
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Procedimiento experimental

1. Haciendo uso del primer programa de las actividades previas y siguiendo la lógica de su
algoritmo programe el microcontrolador.

2. Con ayuda del osciloscopio, en acoplo de CD, verifique que el circuito de la figura 6.3 genere
de manera correcta las señales de reloj de salida considerando que, si la frecuencia no es
exacta, será aceptable mientras esté dentro de un rango de error de ±3%.

Figura 6.3. Circuito simbólico del sistema de reloj digital.

Práctica 6 40
Facultad de Estudios Superiores Cuautitlán UNAM

3. Incluya una imagen donde se observe el funcionamiento del circuito, acotando


cuidadosamente las características de la señal de reloj como son frecuencia, periodo,
tiempo en alto y tiempo en bajo.

4. Cambien la posición del interruptor de selección y observe en el osciloscopio el cambio de


frecuencia en la señal de salida.

5. Incluya una imagen donde se observe el cambio en la frecuencia de salida y acótela por
completo como en se realizó con la señal anterior.

6. Utilizando el mismo circuito del programa anterior, figura 6.3, cargue en el


microcontrolador el segundo programa de las actividades previas.

7. Con ayuda del osciloscopio compruebe el correcto funcionamiento del nuevo programa e
incluya una imagen de ambos casos donde estén indicadas todas las acotaciones
necesarias. En caso de existir errores en las frecuencias medidas con el osciloscopio,
procure reducirlos hasta donde sea posible, es decir, la mejor aproximación al valor pedido.

8. A continuación, para el circuito de la figura 6.4, cargue en el microcontrolador el tercer


programa de las actividades previas. NOTA: Al armar este circuito coloque el fototransistor
a una distancia de entre 5 y 10 cm del led infrarrojo.

9. Pruebe que, al interrumpir el haz de luz infrarroja, se incremente el valor del conteo
mostrado en la pantalla del display.

10. Aplique una señal de reset y observe el comportamiento del circuito.

11. Incluya fotografías del funcionamiento del circuito de conteo.

12. Coloque uno de los canales del osciloscopio a la salida del fototransistor y el otro a la salida
del circuito Schimth Trigger. Interrumpa el haz infrarrojo y observe ambas señales. Anote
sus observaciones e incluya una imagen.

Figura 6.4. Circuito simbólico del sistema de conteo con sensor infrarrojo.

Práctica 6 41
Facultad de Estudios Superiores Cuautitlán UNAM

Cuestionario.
1) Explique la diferencia entre generar retardos de tiempo por medio de la directiva delay y el
uso de alguno de los temporizadores del microcontrolador.

2) Escriba un programa en lenguaje C que, utilizando específicamente el módulo del Timer0,


realice el mismo funcionamiento que el primer programa realizado en esta práctica.

3) Si el límite del conteo de un sistema es mayor al que se puede alcanzar con el módulo del
Timer1 de la práctica, ¿cómo solucionaría dicha dificultad sin cambiar por otro circuito?

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 6 42
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 7
Control de motores a pasos

Tema

7.2. Diseño de interfaces de control de potencia eléctrica.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Controlar el sentido de giro y posición angular de un motor de pasos utilizando los modos de
operación a paso completo y medio paso.

➢ Implementar un sistema con un motor a pasos de tipo bipolar empleando un sistema de control
basado en un microcontrolador.

Introducción

Los motores a pasos son dispositivos electromecánicos que convierten una serie de impulsos
eléctricos en desplazamientos angulares discretos. Un ejemplo de estos motores se puede observar
en la figura 7.1. Estos motores presentan la ventaja de tener alta precisión y repetitividad en cuanto
al posicionamiento por lo que son ideales para la construcción de mecanismos en donde se
requieren movimientos muy precisos.

Figura 7.1. Motor a pasos

La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por
cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan
solo 1.8°, es decir, que se necesitarán 4 pasos en el primer caso y 200 pasos para el segundo caso,
para completar una rotación de 360°. Para mantener la marcha del motor es necesario cambiar
periódicamente la combinación de pulsos en sus terminales, como se ilustra en la figura 7.2.

Práctica 7 43
Facultad de Estudios Superiores Cuautitlán UNAM

Figura 7.2. Ejemplo de secuencia de activación de un motor a pasos (Full Step).

El ángulo de rotación del eje es directamente proporcional a la secuencia de pulsos insertados a las
bobinas y la velocidad de rotación es dependiente de la frecuencia de dichos pulsos. Los motores a
pasos son simples de operar en una configuración de lazo abierto y debido a su tamaño
proporcionan un excelente torque a baja velocidad.

En combinación con circuitos de control, además del movimiento ilustrado en la figura 7.2,
conocido como paso completo (full step), es posible lograr movimientos aún más precisos. Este otro
modo de operación se conoce como movimiento de medio paso (half step). Para lograrlo, se
polarizan las bobinas de a una y de a dos intercaladamente, como se muestra en la figura 7.3. Se
observa que también incluye los 4 pasos del modo full step. Obviamente esos son los momentos en
que hay dos bobinas polarizadas, en los otros 4 pasos, sólo se polariza una bobina. La ventaja de este
mecanismo respecto del modo Full step es que se pueden realizar movimientos de giro más finos.

Figura 7.3. Ejemplo de secuencia de activación a medio paso (Half Step)

En los sistemas de control moderno se presentan a menudo movimientos de tipo incremental, por
esto los motores de pasos se han convertido en elementos de acción importantes y en la actualidad
podemos encontrar estos motores en unidades de discos ópticos, unidades de disco duro,
impresoras, en gran variedad de máquinas herramientas además de ser fundamentales para
proporcionar movimiento a los robots.

Práctica 7 44
Facultad de Estudios Superiores Cuautitlán UNAM

Actividades previas a la práctica


1) Realice la lectura de la práctica.

2) Investigar la forma en que se pueden identificar las terminales de un motor a pasos y la


clasificación a la que pertenece.

3) Desarrolle un programa para que el microcontrolador realice el control del sistema de motor a
pasos de la figura 7.5 con las siguientes funciones:
• A través de una señal de control, se selecciona el modo de funcionamiento entre paso
completo y medio paso.
• Por medio de interruptores de selección, el motor debe girar de manera continua hacia
la derecha o izquierda, con una frecuencia en las señales de cada fase de 50 Hz.
• Al presionar alguno de los botones, el motor debe girar hacia la derecha o izquierda
exactamente 360° (1 vuelta), con una frecuencia en las señales de control de 50 Hz.
• Siempre que el motor esté activo, en el display deberá mostrase un mensaje que indique
el modo de funcionamiento, el sentido de giro y el tipo de paso.

4) Realizar la simulación de todos los puntos del desarrollo experimental usando el archivo con
extensión “.hex” que obtuvo al compilar el código, guarde la simulación y entregue a su profesor
una copia impresa o en formato digital de los resultados obtenidos, de acuerdo con lo indicado
por el profesor, donde se aprecien las señales de cada una de las fases del motor, el periodo y la
frecuencia, además del funcionamiento del display.

5) El circuito deberá ser armado previamente a la realización de la práctica.

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD
1 Osciloscopio
1 Multímetro
1 Motor bipolar de 200 pasos

Material

1 Microcontrolador PIC16F887
1 Controlador dual de puente completo L298N
1 Pantalla LCD de 16x2
1 Resistencia de 10 K a ½ W
5 Resistencias de 1 K a ½ W
1 Potenciómetro de 2 K
2 Capacitores de 0.1 F

Práctica 7 45
Facultad de Estudios Superiores Cuautitlán UNAM

3 Push Button normalmente abiertos


8 Diodos 1N4004
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Nota: Puede sustituirse el controlador L289N, los diodos 1N4004 y los capacitores de 0.1F por un
módulo integrado como el mostrado en la figura 7.4.

Figura 7.4. Módulo de control de motor a pasos.

Procedimiento experimental

1. De acuerdo con lo investigado en las actividades previas, determine la secuencia de las fases
del motor a pasos de la práctica.

2. Haciendo uso del programa desarrollado en las actividades previas, y siguiendo la lógica de
su algoritmo, programe el microcontrolador.

3. Conecte las salidas de las fases del circuito L298 a las conexiones del motor de pasos, figura
7.5, siguiendo la secuencia determinada en el punto 1 del procedimiento.

4. Compruebe que, para el circuito mostrado en la figura 7.6, las conexiones correspondan con
las terminales de los puertos elegidos al realizar el programa, como entrada (Puerto X),
salida (Puerto Y) y para el display (Puerto Z).

Figura 7.5. Fases del motor bipolar a pasos.

5. Pruebe el correcto funcionamiento del circuito, comenzando por las funciones de giro
continuo, tanto para paso completo como medio paso.

Práctica 7 46
Facultad de Estudios Superiores Cuautitlán UNAM

LCD1 LM016L

+5

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
+5

1
2
3

4
5
6

7
8
9
10
11
12
13
14
R5 R4
+5 1k 1k
P1

para vuelta
Vuelta Der.

Botones

50%
2k

R1 R2 R3
1k 1k 1k Vuelta Izq.
Puerto X
Full - 1 / Half - 0

Cont. Der.

Puerto Z
Cont. Izq.

PIC16F887
Puerto Y

MCLR

+5 +7
Interruptores
Selección del
tipo de paso

C1 C2 +7
R6 +5
de giro

0.1uF 0.1uF 10k


9 4
D1 D3 D5 D7
5 1N4004 1N4004 1N4004 1N4004
IN1 VCC VS Fase 1 Fase 2
7 2
IN2 OUT1
10
IN3 Fase 3 Fase 4
12 3
IN4 OUT2
6
+5 11
ENA
13
ENB OUT3 +88.8

1 14
SENSA OUT4
15
SENSB GND

U2 D2 D4 D6 D8
L298 8 1N4004 1N4004 1N4004 1N4004

Figura 7.6. Circuito simbólico de control de motor a pasos.

6. La tabla 7.1 presenta el funcionamiento que debe de tener el motor de acuerdo con el
circuito de control de la figura 7.6, observe que la tabla usa lógica inversa.

Tabla 7.1. Lógica de funcionamiento del programa.


Paso Botones Interruptores
Full/Half Izq. Der. Izq. Der. Función
0 1 1 1 0 Giro continuo a la derecha medio paso
0 1 1 0 1 Giro continuo a la izquierda medio paso
0 1 0 1 1 Vuelta y media a la derecha medio paso
0 0 1 1 1 Vuelta y media a la izquierda medio paso
X X X 1 1 Motor detenido
1 1 1 1 0 Giro continuo a la derecha paso completo
1 1 1 0 1 Giro continuo a la izquierda paso completo
1 1 0 1 1 Vuelta y media a la derecha paso completo
1 0 1 1 1 Vuelta y media a la izquierda paso completo

Práctica 7 47
Facultad de Estudios Superiores Cuautitlán UNAM

7. Con ayuda de ambos canales del osciloscopio, en acoplo de CD, verifique que el circuito
genere de manera correcta las señales de salida en fases consecutivas que van hacia el
circuito L298 y mida su frecuencia, periodo. Esto debe comprobarse para ambos modos,
paso completo y medio paso.

8. A continuación, compruebe que, al presionar alguno de los botones de giro a la derecha o


izquierda, el motor realice una vuelta de forma exacta y se detenga. Esto debe comprobarse
para ambos modos, paso completo y medio paso.

Cuestionario.
1) ¿Cuáles son las ventajas y desventajas de la operación FULL step con respecto al modo HALF
step?

2) Escriba en lenguaje C una subrutina para controlar el movimiento del motor de modo que, cada
que reciba un pulso proveniente de un nuevo botón agregado al sistema, la posición se
incremente en un solo paso (esto se conoce como Jogging).

3) ¿Qué es la sincronía en motores a pasos y por qué es importante mantenerla?

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 7 48
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 8
Comparadores de voltaje

Tema

7.5. Control con optoacopladores.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Implementar un control de iluminación empleando elementos LDR y el módulo del


comparador de voltaje del PIC16F688 usando lenguaje C.

➢ Construir y calibrar un controlador con punto de ajuste independiente.

Introducción

En la naturaleza, todos los fenómenos que se producen se presentan de manera analógica, es decir,
son procesos continuos que van cambiando con el tiempo, por ejemplo, los cambios de temperatura,
las ondas de sonido, con su amplitud y frecuencia variables, el flujo del agua, etc.

Los comparadores de voltaje son usados como interfaz entre circuitos analógicos y circuitos
digitales, comparan la magnitud de dos voltajes analógicos proveyendo una indicación de tipo
digital o binaria en su salida, como se observa en la figura 8.1. La salida de voltaje se modifica dentro
de los límites fijados por los voltajes de saturación del amplificador, +𝑉𝑠𝑎𝑡 y −𝑉𝑠𝑎𝑡 . Aunque se debe
de tener en cuenta que la limitante de estos circuitos es que la rapidez de respuesta a su salida es
relativamente lenta comparada con otros circuitos.

Figura 8.1 Ejemplo de un comparador de voltaje Figura 8.2. Ejemplo de una fotorresistencia LDR.

Práctica 8 49
Facultad de Estudios Superiores Cuautitlán UNAM

En el caso de los microcontroladores, los comparadores son muy útiles pues permiten obtener una
funcionalidad analógica independientemente de la ejecución del programa.

Los LDR (Light Dependent Resistors), o fotorresistencias, son ampliamente empleados en circuitos
de detección de luz/oscuridad. Normalmente la resistencia de un LDR es muy alta, llegando a mega
Ohms, pero cuando reciben luz de alguna fuente luminosa, la resistencia cae dramáticamente. Los
LDR están fabricados con un material semiconductor de alta resistencia que, al recibir suficiente luz,
los fotones son absorbidos por el semiconductor permitiendo que los electrones salten a la banda de
conducción del material y creando un efecto de disminución de la resistencia.

Actividades previas a la práctica

1) Realice la lectura de la práctica.

2) Desarrolle un programa que permita que el microcontrolador funcione como un “sistema de


control de iluminación”. El programa debe hacer uso de los módulos de comparación de
voltaje integrados en el microcontrolador, además, el circuito debe contar con entradas de
calibración para los voltajes de referencia como se muestra en la figura 8.3. Revise la hoja
técnica del microcontrolador para elegir el modo de operación más apropiado.

3) El algoritmo debe seguir las siguientes especificaciones:


• El comparador C1 deberá tener su entrada de voltaje a través del canal 1 (terminal
C1IN1-) y su referencia deberá estar ligada al exterior (terminal C1IN+) con un
voltaje de 2.5V. De acuerdo con el resultado de la comparación, la salida deberá
mostrarse por programación en el pin de puerto correspondiente (terminal C1OUT)
donde deberá estar conectado uno de los LED’s. La polaridad seleccionada debe ser
no invertida.
• El comparador C2 deberá tener su entrada de voltaje a través del canal 2 (terminal
C2IN2-) y su referencia deberá estar ligada al exterior (terminal C2IN+) con un
voltaje de 4.5V. De acuerdo con el resultado de la comparación, la salida deberá
mostrarse por programación en el pin de puerto correspondiente (terminal C2OUT)
donde deberá estar conectado a otro LED. La polaridad seleccionada debe ser no
invertida.

4) Realice el diagrama de flujo que indica cómo se va a desarrollar el programa.

5) Compile el programa con MPLAB IDE, corrigiendo los posibles errores.

6) Realice la simulación del sistema de microcontrolador donde se observe en el osciloscopio


virtual las tres señales del comparador (entrada, referencia y salida), usando tres canales
distintos, en el momento del cambio, guarde la simulación y entregue a su profesor una
copia impresa o en formato digital de los resultados obtenidos, de acuerdo con lo indicado
por el profesor.

7) Incluya junto con las actividades previas, el diagrama de terminales del Led RGB empleado.

8) El circuito deberá ser armado previamente a la realización de la práctica.

Práctica 8 50
Facultad de Estudios Superiores Cuautitlán UNAM

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD
1 Multímetro

Material

1 Microcontrolador PIC 16F688


1 Amplificador operacional LM339
2 Fotorresistencias LDR de 2 MΩ (también llamada fotoceldas)
3 Potenciómetros de 10 kΩ
3 Resistencias de 1 kΩ a ½ watt
2 Resistencia de 100 kΩ a ½ watt
2 Resistencias de 330 Ω a ½ watt
2 Led (de preferencia ultra brillantes)
1 Led RGB de cátodo común
1 Push button
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Procedimiento experimental

1. Haciendo uso del programa de las actividades previas y siguiendo la lógica de su algoritmo
programe el microcontrolador.

2. Para el circuito mostrado en la figura 8.3, compruebe que las conexiones correspondan con
las terminales de las entradas y salidas de los comparadores de voltaje indicadas en las
actividades previas.

3. Ajuste los potenciómetros P1 y P2 para igualar los voltajes de referencia Ref 1 y Ref 2 a los
indicados en las actividades previas.

4. Acerque una fuente luminosa poco a poco a los sensores de luz y, con ayuda del multímetro,
mida el voltaje en el que se produzca un cambio en cada uno de los led’s.

5. Repita el punto 4 del desarrollo con la diferencia de que ahora debe comenzar con la fuente
de luz sobre los sensores y después alejarla poco a poco. Incluya fotografías del
funcionamiento del circuito.

6. Revise nuevamente la hoja técnica del microcontrolador para cambiar el modo de


funcionamiento de modo que se utilice una sola entrada de referencia para ambos
comparadores (referencia común) y que la salida de cada comparador conecte de forma
directa con pines del circuito integrado, es decir, conexión física y no por programación,
como en el primer programa.

Práctica 8 51
Facultad de Estudios Superiores Cuautitlán UNAM

Figura 8.3. Circuito simbólico de control de iluminación.

7. Arme el circuito comparador discreto de la figura 8.4, utilizando como entrada una señal
triangular de 5Vpp y un offset de 2.5VCD, de modo que no tenga parte negativa, y una
frecuencia de 100Hz. La salida del comparador será llamada C3OUT.

Figura 8.4. Circuito comparador discreto.

8. Desconecte las señales de entrada Vin1 y Vin2 y en su lugar conecte en la terminal común de
referencia la misma señal triangular del comparador discreto. Conecte las salidas C1OUT,
C2OUT del microcontrolador y C3OUT del comparador discreto a las tres terminales de
entrada del LED RGB como se muestra en la figura 8.5.

9. Ajuste los potenciómetros para obtener cada uno de los tres colores independientes que
forman al led RGB, es decir, rojo, verde y azul. Incluya imágenes del circuito donde se
aprecie el funcionamiento del circuito para estos tres casos.

10. Varíe los voltajes de referencia por medio de los tres potenciómetros para obtener al menos
4 colores diferentes en el led RGB (diferentes a los tres ya obtenidos) y con ayuda del
osciloscopio observe y grafique las señales presentes en las terminales de C1OUT, C2OUT y
C3OUT, indicando el ancho de pulso correspondiente, que corresponden a cada pin del
led cuya combinación fue la que proporcionó el color elegido.

Práctica 8 52
Facultad de Estudios Superiores Cuautitlán UNAM

11. Anote sus observaciones acerca del comportamiento del led RGB agregando fotografías y
explique a que se debe.

Figura 8.5. Circuito simbólico de control de color.

12. Por último, lleve al máximo el ancho de pulso de las tres de salida que van hacia el
led para obtener el color blanco, que resulta de la combinación de todos los colores
con que cuenta el led e incluya una imagen donde se muestre el resultado.

Cuestionario.
1) Defina el concepto de histéresis en comparadores de voltaje.

2) De acuerdo con las cuatro mediciones realizadas en los puntos 4 y 5 de la práctica,


determine el valor de resistencia de los LDR en el momento de los cambios en los Led’s e
incluya los cálculos realizados.

3) Investigue dos modelos de sensores de luz comerciales e incluya sus principales


características como son voltaje y corriente de operación, sensibilidad, etc.

4) Revise los módulos periféricos que contiene el PIC16F887 y explique cuál sería capaz de
reproducir las señales observadas en el punto 9 del procedimiento.

Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía
Elabore una lista de las referencias bibliográficas consultadas.

Práctica 8 53
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 9
Convertidor Analógico – Digital

Tema

8.1. Conversión Analógico Digital con microcontroladores.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Configurar el módulo de conversión analógica – digital con que cuentan los


microcontroladores PIC de gama media.

➢ Implementar un termómetro digital empleando un sensor de temperatura, una pantalla LCD


y el módulo del ADC del PIC16F688 usando lenguaje C.

Introducción

En los sistemas digitales, que trabajan únicamente con señales de 1’s y 0’s, cierto y falso, 0V y 5V,
no es posible manejar magnitudes continuas. Para integrar ambos mundos existen dispositivos
conocidos como convertidores analógicos – digitales con la capacidad de interpretar señales
continuas y traducirlas en valores numéricos binarios que pueden ser comprendidos por los
sistemas digitales. El proceso de conversión de una señal se realiza en varias etapas, como se
muestra en la figura 9.1. A partir del sistema físico se obtiene una señal con magnitud continua, por
ejemplo, la temperatura. Esta magnitud puede ser de naturaleza variada por lo que, para ser
compatible con un sistema electrónico, es necesario transformarla a una magnitud eléctrica como
son el voltaje o la corriente. Para realizar esta transformación se utiliza un elemento llamado
transductor. Un transductor convierte la señal del sensor en una señal de voltaje, que también es
analógica.

El siguiente paso es acondicionar la señal, esto normalmente implica etapas de amplificación y


filtrado de la señal. Por último, la señal acondicionada entra al convertidor A/D de donde se obtiene
una señal digital en formato binario.

Figura 9.1. Diagrama de bloques del proceso de conversión A/D.

Práctica 9 54
Facultad de Estudios Superiores Cuautitlán UNAM

La selección del tipo de convertidor A/D depende de muchos factores que se determinan a través
de la naturaleza del sistema físico. Además, se deben tener en cuenta factores como la exactitud, la
resolución deseada (el número de bits), el error de cuantización máximo, el tiempo de conversión y
la linealidad, que representa la desviación de los códigos de salida respecto al trazo de una línea
recta desde cero hasta el valor a plena escala.

Actividades previas a la práctica

1) Realice la lectura de la práctica.

2) Investigue las equivalencias entre las escalas Celsius, Farenheit, Kelvin, Rankine y Reaumur.

3) Desarrolle un programa que, utilizando lenguaje C, permita interpretar señales de voltaje


analógico por medio del módulo del convertidor A/D del microcontrolador y mostrar los
datos resultantes de la conversión en un display LCD. Recuerde emplear el driver flex_lcd.

4) Dibuje el diagrama de flujo que muestre el desarrollo del programa de conversión


analógica – digital.

5) Al desarrollar el algoritmo del programa, todo se reduce a lo siguiente:


• Declarar las variables que sean necesarias para el desarrollo del programa teniendo
cuidado con el tipo de dato que va a asignarse a cada una.
• Configurar el convertidor A/D del microcontrolador especificando la resolución del
convertidor, el canal analógico que se va a utilizar y la fuente de reloj del
convertidor.
• Habilitar el display LCD para comenzar el envío de datos.
• Crear un ciclo continuo donde se realice el proceso de conversión y se muestre en el
display el valor binario que resulta de la conversión además del valor del voltaje
analógico de entrada y la temperatura equivalente a ese nivel de voltaje. La figura 9.2
muestra un ejemplo de la información que debe mostrar el display LCD.
• El sensor empleado puede medir temperaturas de 0C a 100C, con un rango de
voltaje en su salida de 0V a 1000mV. Debido a que el convertidor se empleará con un
voltaje de referencia máximo de 5V entonces se requiere que la señal del sensor se
amplifique 5 veces para obtener un rango de 0V a 5V. Los detalles correspondientes
al sensor de la práctica se pueden ver en la figura 9.3.
• No olvide dar un retardo de tiempo entre cada medición para permitirle al usuario
leer la información mostrada en el display.
• Por último, el circuito debe contar con una sola señal de selección para elegir si la
temperatura se muestra en Celsius (°C), Fahrenheit (°F) o Kelvin (K) de forma cíclica.

Figura 9.2. Información desplegada en el display LCD después de la conversión A-D.

Práctica 9 55
Facultad de Estudios Superiores Cuautitlán UNAM

6) Compile el programa con MPLAB IDE, corrigiendo los posibles errores.

7) Realice la simulación del sistema de microcontrolador basándose en la figura 9.4, guarde la


simulación y entregue a su profesor una copia impresa o en formato digital de los resultados
obtenidos, de acuerdo con lo indicado por el profesor, donde se aprecien el voltaje a la salida
del operacional medido con un multímetro y los datos mostrados en el display para
diferentes valores de entrada del sensor de temperatura.

8) El circuito deberá ser armado previamente a la realización de la práctica.

𝑮𝒂𝒏𝒂𝒏𝒄𝒊𝒂[𝑮𝒓𝒂𝒅𝒐𝒔℃(𝑭𝒂𝒄𝒕𝒐𝒓 𝒅𝒆 𝑬𝒔𝒄𝒂𝒍𝒂)] = 𝑽𝒐𝒍𝒕𝒂𝒋𝒆 𝒅𝒆𝒍 𝑪𝒐𝒏𝒗𝒆𝒓𝒕𝒊𝒅𝒐𝒓

𝒎𝑽
𝟓 [𝟏𝟎𝟎℃ (𝟏𝟎 )] = 𝟓𝑽

Figura 9.3. Características del sensor de temperatura LM35D.

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD
1 Multímetro

Material

1 Microcontrolador PIC 16F688


1 Sensor de temperatura LM35D
1 Display LCD 16x2
1 Amplificador operacional LM358
3 Resistencias de 10 kΩ a ½ watt
1 Resistencia de 1 kΩ a ½ watt
1 Resistencia de 39 kΩ a ½ watt
1 Resistencia de 82 Ω a ½ watt
1 Potenciómetro de 2 kΩ
1 Capacitor de 1µF a 25V
2 Push button
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Práctica 9 56
Facultad de Estudios Superiores Cuautitlán UNAM

Procedimiento experimental

1. Haciendo uso del primer programa de las actividades previas y siguiendo la lógica de su
algoritmo programe el microcontrolador.

2. Compruebe que en el circuito de la figura 9.4 la conexión de entrada al microcontrolador


que viene desde el sensor sea un pin de puerto con función de entrada analógica y que no
interfiera con las terminales que emplea el display, esto para prevenir daños al
microcontrolador.

Figura 9.4. Diagrama simbólico del termómetro digital con microcontrolador.

3. Sin tocar el sensor del termómetro digital, anote los datos obtenidos para todas las escalas
de temperatura programadas, estos corresponden al valor de la temperatura ambiente.

4. Compruebe con ayuda del multímetro que el voltaje analógico mostrado en el display LCD
sea correcto.

5. Modifique el programa para que, empleando el mismo selector, muestre las lecturas de
temperatura en grados Rankine y Reaumur además de en grados Celsius del programa
original.

6. Utilizando el termómetro digital con el cambio de programación, registre la temperatura de


cuatro objetos diferentes, empleando todas las escalas en cada para cada una, y anótelas en
una tabla donde se muestren todos los datos obtenidos.

7. Incluya fotografías del funcionamiento del termómetro digital para las diversas escalas de
temperatura.

Práctica 9 57
Facultad de Estudios Superiores Cuautitlán UNAM

Cuestionario.
1) Determine el rango de voltaje, la resolución y el error máximo del convertidor A/D
empleado, incluya los cálculos realizados.

2) De acuerdo con los resultados de las preguntas anteriores, ¿cuál sería el valor de
temperatura mostrado en el display en grados Celsius y el valor de conversión si a la salida
del amplificador hay 1.2V? Incluya los cálculos.

3) Explique el funcionamiento de un convertidor A/D de aproximaciones sucesivas.

4) ¿Qué se tiene que modificar en el programa si se desea usar más de un canal analógico?

Conclusiones

Redacte las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 9 58
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores
Práctica 10
Modulación por ancho de pulso

Tema

9.1. Modulación por ancho de pulso (PWM) empleando microcontroladores.

Objetivos

Al término de esta práctica el alumno podrá:

➢ Configurar el módulo de Captura, Comparación y PWM (módulo CCP) en modo de generador


de señales PWM.

➢ Implementar un control de velocidad para motores de CD empleando modulación por ancho


de pulsos empleando el módulo CCP del PIC16F887 usando lenguaje C.

Introducción

Por lo general, todo sistema que procesa información binaria para controlar un proceso analógico
requiere una etapa de entrada analógica – digital y una etapa de salida digital – analógica
(convertidores ADC y DAC). Para reducir costos en los diseños que no requieren alta resolución en
la etapa de salida, es posible sustituir el DAC por un algoritmo de Modulación por Ancho de Pulsos
(PWM – Pulse Width Modulation). Una unidad PWM permite asignar cierta duración de tiempo en
alto o en bajo a un dato digital de n bits que se considera salida de la etapa de control.

La modulación por ancho de pulsos permite generar señales de frecuencia y ciclo de trabajo
variados. Las principales características de una señal de tipo PWM son su periodo y el ciclo de
trabajo, como se observa en la figura 10.1.

Figura 10.1. Periodo y ciclo de trabajo de la modulación por ancho de pulso (PWM).

El periodo se relaciona con la frecuencia de la señal, lo que indica el número de pulsos generado
por unidad de tiempo, mientras que el ciclo de trabajo, también conocido en inglés como duty cycle,

Práctica 10 59
Facultad de Estudios Superiores Cuautitlán UNAM

determina la anchura de cada pulso. Hay que remarcar que el ancho del pulso es independiente de la
frecuencia de la señal.

El voltaje promedio suministrado por el generador PWM es proporcional a dicha señal, es decir, el
voltaje es directamente proporcional ancho del pulso. Como resultado, también la potencia
entregada es directamente proporcional, de modo que entre más ancho el pulso (mayor ciclo de
trabajo), mayor será la potencia suministrada. Un ejemplo de lo anterior puede observarse en la
figura 10.2.

La modulación por ancho de pulso (PWM) es una técnica para controlar circuitos analógicos con
una salida digital. Se utiliza en múltiples aplicaciones, algunas como controlar la intensidad de una
luz y regular la velocidad de los motores de CD.

Figura 10.2. Relación Voltaje promedio – Ancho de pulso de una señal PWM.

Actividades previas a la práctica

1) Realice la lectura de la práctica.

2) Realice los cálculos necesarios y escriba un programa para generar una señal PWM
mediante el módulo CCP1 del PIC16F887 con las siguientes características: Frecuencia de 12
kHz y ciclo de trabajo del 25%.

3) Al desarrollar el algoritmo del programa, todo se reduce a lo siguiente:


• Configurar el puerto C como salida.
• Configurar el valor del ciclo de trabajo.
• Configurar el Timer2 para el ciclo de trabajo.
• Habilitar el módulo CCP1 para que trabaje como PWM.

Práctica 10 60
Facultad de Estudios Superiores Cuautitlán UNAM

4) Para configurar el periodo de trabajo se utiliza la instrucción:

setup_timer_2(T2_DIV_BY_x,PR2,TMR2)

donde el valor de PR2 se tiene que calcular de acuerdo con la ecuación de periodo que se
indica en las hojas de datos técnicos.

5) Para indicar el ciclo de trabajo se utiliza la instrucción:

set_pwm1_duty(valor_ciclo)

donde valor_ciclo se tiene que determinar mediante la ecuación de PWM duty cicle de la
hoja de datos técnicos.

6) Desarrolle un segundo programa cuyo algoritmo proporcione, de manera automática, el


perfil de velocidad mostrado en la figura 10.3 al presionar el botón de Inicio. Se puede
apreciar que, del estado de reposo, el motor debe aumentar su velocidad paulatinamente en
dos fases hasta el punto deseado, mantener esa velocidad durante un periodo de tiempo y
luego desacelerar hasta terminar en la posición de reposo.

Figura 10.3. Perfil de velocidad controlado mediante PWM.

7) El programa debe iniciar al presionar un botón de arranque y debe de permitir seleccionar


el sentido de giro del motor por medio de un selector que controle las señales D1 y D2.

8) Realice la simulación de todos los puntos del procedimiento experimental empleando la


herramienta gráfica del simulador, NO USE LA SIMULACIÓN EN TIEMPO REAL, guarde la
simulación y entregue a su profesor una copia impresa o en formato digital de los resultados
obtenidos, de acuerdo con lo indicado por el profesor, donde se aprecien las mediciones de
periodo, frecuencia y ciclo de trabajo (DC).

9) El circuito deberá ser armado previamente a la realización de la práctica.

Práctica 10 61
Facultad de Estudios Superiores Cuautitlán UNAM

Equipo

1 PC con software instalado:


• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje de CD
1 Osciloscopio
1 Multímetro

Material

1 Microcontrolador PIC 16F887


2 Resistencia de 10 kΩ a ½ watt
4 Diodos 1N4004
1 Driver L298
1 Push button
1 Motor de CD (de 10V o 12V)
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Nota: Puede sustituirse el controlador L289N y los diodos 1N4004 por un módulo integrado como
el que se mostró en la figura 7.4 de la práctica 7.

Procedimiento experimental

1. Haciendo uso del primer programa de las actividades previas y siguiendo la lógica de su
algoritmo programe el microcontrolador.

2. Proceda a armar el circuito en la protoboard, basándose en el mostrado en la figura 10.4,


tenga cuidado de que la salida corresponda con la terminal de salida del módulo CCP1.

3. Encienda el circuito y con ayuda del osciloscopio, mida la terminal de salida para comprobar
que la señal tiene la frecuencia y el ciclo de trabajo indicados en las actividades previas y
grafíquela.

Figura 10.4. Diagrama simbólico del generador de señales PWM.

Práctica 10 62
Facultad de Estudios Superiores Cuautitlán UNAM

4. Programe nuevamente el microcontrolador, ahora con el programa del perfil de velocidades.

5. Modifique el armado del circuito según se muestra en la figura 10.5.

6. Encienda el sistema y observe si el comportamiento del motor corresponde con el esperado,


anote sus observaciones.

7. Con ayuda de un multímetro mida la corriente y voltaje promedio suministrados al motor en


cada fase del perfil de velocidades. Anote cada uno de los valores.

8. Incluya fotografías del funcionamiento del sistema de regulación de velocidad.

Figura 10.5. Circuito simbólico de control de velocidad para motor de CD.

Cuestionario.
1) Para el primer programa de las actividades previas, si se deseara cambiar el ciclo de trabajo
entre el valor original y el 45% por medio de un selector, explique qué modificaciones
tendría que hacer usted al código y por qué e incluya el programa ya modificado.

2) Investigue y explique la forma en que se puede controlar la posición angular de un


servomotor empleando señales PWM.

3) Empleando los datos obtenidos en el punto 7 del desarrollo, calcule la potencia media
suministrada al motor para cada ancho de pulso utilizado.

Conclusiones

Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Práctica 10 63

También podría gustarte