Está en la página 1de 109

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
Ing. José Luis Barbosa

Fecha de elaboración: enero 2015


Fecha de revisión: enero 2018
Facultad de Estudios Superiores Cuautitlán UNAM

Laboratorio de Microcontroladores

Índice

Objetivos generales de la asignatura II

Objetivos del curso experimental II

Introducción II

Reglamento interno de laboratorios III

Criterios de evaluación del curso VI

Bibliografía VI

Práctica 1 Manejo de señales multiplexadas


4.1. Multiplexación de señales.
-Microcontrolador PIC 1
-Microcontrolador AVR 54

Práctica 2 Puertos del microcontrolador


4.2. Descripción funcional de terminales.
-Microcontrolador PIC 5
-Microcontrolador AVR 58

Práctica 3 Temporizadores
5.3. Programación de microcontroladores.
-Microcontrolador PIC 14
-Microcontrolador AVR 64

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

Práctica 5 Conexión con dispositivos de interfaz


6.2. Herramientas para desarrollo de programas con microcontroladores.
-Microcontrolador PIC 22
-Microcontrolador AVR 73

Práctica 6 Temporizadores y contadores


6.3. Elaboración de proyectos.
-Microcontrolador PIC 27
-Microcontrolador AVR 77

Í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 33
-Microcontrolador AVR 83

Práctica 8 Comparadores de voltaje


7.5. Control con optoacopladores.
-Microcontrolador PIC 39
-Microcontrolador AVR 88

Práctica 9 Convertidor Analógico – Digital


8.1. Conversión Analógico Digital con microcontroladores.
-Microcontrolador PIC 44
-Microcontrolador AVR 93

Práctica 10 Modulación por ancho de pulso


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

Í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 y las características de sus


periféricos.
 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

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

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.

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

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 y recibir 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.

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

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

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.

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 (electronica@fesc.cuautitlan2.unam.mx).

9. La evaluación 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ó); con o sin asistencia pero que no haya entregado reporte alguno.

10. 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 a continuación.

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: ________________________________________

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

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.

Criterios de evaluación del curso

C1 (Criterio de evaluación 1): Actividades previas a la práctica (40%)


C2 (Criterio de evaluación 2): Habilidad en el armado y funcionalidad de los sistemas (10%)
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 5) 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 6) Atmega8 Data Sheet
PIC Atmel Corporation
García, Eduardo 2013
Alfaomega, 1º Edición 7) Embedded C Programming with the
México, 2008 AVR Microcontroller
3) Microcontroladores PIC, Diseño R. H. Barnett, S. Cox, y L. O’Cull
práctico de aplicaciones Cengage Learning 2ND Edition
Angulo Usastegui, José Ma. / Angulo Clifton Park, NY, 2006
Martínez, Ignacio 8) Some Assembly Required:
Mc. Graw Hill, 2ª Edición Assembly Language Programming
México, 2006 with the AVRMicrocontroller
4) Microcontroladores, Fundamentos T. S. Margush
y Aplicaciones con PIC CRC Press, 1ST Edition
Valdes Pérez, Fernando Boca Raton, 2011
Alfa Omega
México, 2007

Prólogo VI
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 1
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) El alumno realizará la lectura de la práctica.

2) Investigue e imprima la hoja técnica del circuito CD4052 teniendo especial interés la tabla de
funcionamiento del circuito y las terminales de alimentación.

3) Realice la simulación del circuito multiplexor/demultiplexor siguiendo cada uno de los


puntos del procedimiento experimental. Guarde la simulación y entregue una copia impresa
de la misma.

4) El alumno deberá traer el circuito de la práctica previamente armado.

Equipo

1 Fuente de voltaje bipolar de CD


1 Generador de funciones
1 Osciloscopio

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

Material

1 Multiplexor/Demultiplexor CD4052
1 Temporizador LM/NE555
1 Diodo de alta velocidad 1N4148
2 Resistencias de 10 kΩ, ½ watt
2 Resistencias de 2.2 kΩ, ½ watt
2 Capacitores de 0.15 µF
1 Dip switch de 2 o más interruptores
Tableta de Conexiones
Alambres y cables para conexiones

Procedimiento experimental

1. Arme el circuito mostrado en la figura 1.3 alimentando el circuito multiplexor con 10VCD.

Figura 1.3. Circuito multiplexor/demultiplexor.

2. Calibre el generador de funciones para obtener a su salida una señal de 2.5 sin 6283.18 𝑡 +
2.5𝑉𝐶𝐷 .

3. Conecte el generador de funciones en la terminal X2, como se indica en la figura 1.3 y adicione
una fuente de 10VCD en la terminal X1.

4. Con ayuda del osciloscopio, observe y grafique la señal de salida Vs acotándola correctamente
para cada una de las combinaciones de los selectores A y B del circuito multiplexor.

5. Modifique el circuito anterior, interconectando las terminales X y Y, para obtener el que se


muestra en la figura 1.4.

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

Figura 1.4. Modificación del circuito multiplexor.

6. Para las mismas señales de entrada, observe en el osciloscopio las salidas Vs1, Vs2, Vs3 y Vs4
y grafíquelas acotándolas cuidadosamente para cada una de las combinaciones de los
selectores del circuito multiplexor.

Cuestionario.

1) Investigue en las hojas técnicas del circuito multiplexor utilizado en la práctica ¿cuáles son los
límites de los voltajes de polarización y cómo influyen en los valores máximo y mínimo de las
señales de entrada?

2) ¿Cuál es la diferencia entre un multiplexor y un demultiplexor? Explique.

3) Para el microcontrolador PIC16F887 investigue cuáles son todas las funciones con las que
cuentan los puertos D y E, 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 4
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 del mismo
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 parecidos al
puerto paralelo de la PC, en los cuales la información sale y entra a través de 8 líneas 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 las
características 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
Sirve para indicarle al MPLAB cuál es el formato del archivo *.list dentro de los parámetros está el tipo de
procesador que se va a emplear.
list p=16Fxxx

• INCLUDE
include <file>

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

Sirve para incluir en el ensamblado el archivo indicado por el parámetro “file”. Es como si el “file” fuera
parte del archivo, como si se hubiera situado en la posición en la cual la directiva aparece. El parámetro
“file” puede incluir el path o camino en el cual se encuentra el archivo a incluir.

include <p16fxxx.inc>

Incluye el archivo “p16Fxxx.inc” que contiene las etiquetas genéricas del PIC16Fxxx

• ORG
[<etiqueta>] ORG <exp>

Sirve para indicar la dirección de memoria en la cual será colocado el código generado a continuación. Si
el ORG no es indicado se empieza en la dirección 0. Ejemplo

ORG 0x05
inicio

Indica que la inicio “inicio” se colocará en la dirección 0x05 de la dirección de programa.

• EQU
<identificador> EQU <expresion>

Permite asignar el valor de expresión al identificador. El general el identificador es un nombre que le es


más familiar al programador. Ejemplo:

dato equ 0x20

Crea el identificador “dato” y lo asigna a la dirección 0x20.

• END
END

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

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) La operación de configuración de los puertos en general 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.).

3) Desarrolle un programa que configure las líneas del Puerto X como entrada y las líneas del
Puerto Y como salida. El dato de entrada a través del Puerto X será dado en formato Aiken
mientras que en el Puerto Y será mostrado en formato 84-2-1.

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

4) Si se desarrolla el algoritmo se reduce a:


a) Configurar PX como entrada y PY como salida Inicio
b) W= PX
c) Convertir dato a formato Gray
d) PY=W Ir al banco 1
e) Ir paso b)

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


el programa queda como el mostrado en la figura 2.1. Configurar el puerto
X como entrada
6) Realice la simulación del sistema de microcontrolador,
guarde la simulación y entregue una copia impresa de la
misma. Si la simulación tiene problemas con la barra de Configurar el puerto
leds, reduzca el valor de R10. Y como salida
7) El alumno deberá traer el circuito previamente armado.
Ir al banco 0

Equipo
W=Puerto X
1 PC con software instalado:
• MPLAB IDE
1 Grabador universal o grabador de PICs Conversión del dato
1 Fuente de voltaje de CD

Puerto Y=W
Material

1 Microcontrolador PIC 16F887 Figura 2.1. Diagrama de flujo del programa


20 Resistencias de 1 kΩ, ½ watt de lectura y escritura de puertos.
1 Dip switch de 8
1 Push button
2 Barras de leds
Tableta de Conexiones (protoboard)
Alambres y cables para conexiones

Procedimiento experimental

1. Crea un nuevo proyecto en MPLAB IDE, para ello ejecuta el programa y en la barra superior
elije la opción “Proyect” ”Proyect Wizard”, como se muestra en la figura 2.2.

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

Figura 2.2. Crear un nuevo proyecto.

2. En la primera ventana se muestra una pantalla de bienvenida, selecciona siguiente y a


continuación selecciona el PIC con el cual se va a trabajar, y da clic en siguiente (figura 2.3).

Figura 2.3. Selección del dispositivo a usar.

3. Selecciona las herramientas con las cuales se va a compilar el programa, estas son las
mostradas en la figura 2.4, en caso de que no se encuentran habilitadas, se pueden encontrar
en la carpeta C:\Program Files\Microchip\MPASM Suite.

Figura 2.4. Herramientas para compilar el programa.

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

4. En la siguiente pantalla, figura 2.5, da un clic en Browse e indica en que carpeta se va a


guardar el proyecto, así como el nombre que llevará el mismo.

Figura 2.5. Selección de carpeta en la cual se guardará el proyecto.

5. A continuación, se debe agregar los archivos que se van a incluir en el proyecto, por el
momento solo se va a incluir el archivo “p16fxxx.inc”, que se encuentra en la carpeta
C:\Program Files\Microchip\MPASM Suite, mostrado en la figura 2.6.

Figura 2.6. Adicción de los archivos necesarios para el proyecto.

6. Por último, se da clic en “Finalizar”.

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

7. continuación se va a crear el archivo asm, para ello crea un nuevo archivo (figura 2.7) y en la
ventana que se abre escribe código que se muestra a continuación, respetando las
tabulaciones.

Figura 2.7. Creación de un nuevo archivo.

;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" ;Archivos con direcciones con su respectiva etiqueta
;Definición de variables
dato equ 0x20 ;Dirección de variable en un registro de memoria
;Vectores de interrupción o de arranque
org 0
goto Inicio ;Salta hacia la etiqueta ‘Inicio’
org 5 ;donde se va a iniciar el programa.
;Configuración de puertos
Inicio bsf status,rp0 ;Se posiciona en el banco 1.
movlw 0xff ;Todos los bits de trisX en uno (1 Log)
movwf trisX ;configuran el puerto X como entrada.
movlw 0x00 ;Todos los bits de trisY en cero (0 Log)
movwf trisY ;configuran el puerto Y como salida.
bcf status,rp0 ;Se posiciona en el banco 0.
;Programa principal
ciclo call leer_puerto_X ;Llama a la subrutina.
call convertir_dato ;Llama a la subrutina.
call escribir_puerto_Y ;Llama a la subrutina.
goto ciclo ;Regresa al ciclo.
;Área de subrutinas
;Subrutina para leer el puerto X y guardarlo en dato
leer_puerto_X
movf portX,0 ;Guarda un dato en el registro W.
movwf dato ;Envía el acumulador al registro dato.
return ;Regresa de la subrutina.

;***Área para 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 dato al registro W.
movwf portY ;Escribe el dato en puerto Y.
return
end

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

8. Una vez escrito el programa se guarda con extensión asm y se agrega al proyecto.

9. Para agregarlo, selecciona el menú “Window” y selecciona Puertos.mcp. Da clic con el botón
derecho sobre la carpeta “Source files”, selecciona “Add Files” y agrega el archivo que se
acaba de crear con la extensión asm (figura 2.8).

Figura 2.8. Agregar archivos al proyecto.

10. Se procede a compilar el programa para generar el archivo .hex necesario para programar el
dispositivo. Primero se selecciona el menú “configure” (figura 2.9) y se selecciona el
dispositivo con el cual se va a trabajar.

Figura 2.9. Selección del menú “Configure”.

11. La ventana para selección del dispositivo muestra varias opciones, que por el momento no
interesan, solo hay que seleccionar el PIC con el cual se va a trabajar (figura 2.10).

Figura 2.10. Selección del dispositivo para compilar.

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

12. Una vez seleccionado, se compila mediante el comando “Make” que se encuentra en la barra
de menú superior como se muestra en la figura 2.11.

Figura 2.11. Compilación del programa y creación del archivo .asm.

13. Proceda a armar el circuito en la protoboard de acuerdo al diagrama de la figura 2.12,


programe el microcontrolador y verifique que realice la lectura y escritura de puertos
correctamente. Anote sus observaciones.

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

Figura 2.12. Diagrama del circuito.

15. Realice una modificación del código del microcontrolador de modo que, al ingresar un dato
por el Puerto X, en un Puerto Z aparezca de manera simultánea el dato en código EXC3. El
Puerto Y mantiene la función que tenía anteriormente.

Cuestionario.

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

2) ¿Qué se tiene que hacer si se desea que algunos pines de un solo puerto sean de entrada y
otros de salida?

3) Si se desea usar un puerto cuyos bits tienen más de una función, que registro o registros se
deben configurar. De dos ejemplos.

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

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 13
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 haciendo uso 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 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 particular tipo 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 14
Facultad de Estudios Superiores Cuautitlán UNAM

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Desarrollar un programa que encienda y apague un led de forma intermitente con periodos
de 0.25s en cada estado. Incluya los cálculos realizados para configurar el módulo del
Timer0.

3) Si se desarrolla el algoritmo se reduce a:


• Configurar un pin del puerto X como salida.
• 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 y por 4. Incluya los cálculos realizados para
configurar el módulo del Timer0.

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 una copia impresa de la misma.

8) El alumno deberá traer el circuito previamente armado.

Equipo

1 PC con software instalado:


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

Material

1 Microcontrolador PIC 16F887


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

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

Procedimiento experimental

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

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

2. Para el circuito previamente armado de acuerdo al diagrama de la figura 3.1 y, con ayuda del
osciloscopio, grafique la señal de salida del pin PX.Y para los programas desarrollados en las
actividades previas, haga uso de los cursores para comprobar que los tiempos corresponden
con los calculados y con la simulación.

3. Tome una fotografía donde se observe el funcionamiento del circuito para cada programa.

Figura 3.1. Diagrama del circuito de retardo.

4. Aprovechando las rutinas de los códigos realizados en las actividades previas, cree un
programa que controle tres pines del Puerto X de modo que funcione como un semáforo.

5. Modifique el circuito de la figura 3.1 para realizar la prueba del sistema de semáforo.

Cuestionario

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

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

2) Explique el funcionamiento del prescaler del microcontrolador PIC16F887.

3) Determine el tiempo mínimo de retardo que se puede lograr con el Timer0 del
microcontrolador empleado en la práctica 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 17
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 RB0/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
microcontrolador ejecuta un salto al vector de interrupción
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,
mientras que los de la gama alta tienen dos vectores de
interrupción de distinta prioridad, alta y baja
respectivamente.
Figura 4.1. Memoria de programa y la pila
del PIC16F887.

Práctica 4 18
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) El alumno realizará la lectura de la práctica.

2) Desarrollar un programa en lenguaje C que haga que el Puerto X funcione como un registro
de corrimiento a la derecha, con un intervalo de 0.5 segundos entre cada cambio, de forma
continua, y por medio de RB0 se va a introducir una interrupción que provoque que se
realice un ciclo completo de corrimiento en el sentido opuesto. Al finalizar deberá regresar a
la rutina de corrimiento inicial justo en el punto donde se interrumpió.

3) El desarrollo del algoritmo se reduce a:


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

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

5) Cada vez que se activa la interrupción a través de RB0/INT el programa se dirige a la


dirección 0x04, en lenguaje C no es necesario direccionar los vectores de interrupción, pero
es necesario que se indique mediante la directiva:

#INT_EXT //Interrupción externa por RB0

E inmediatamente después se coloca la rutina de interrupción que comprende la siguiente


estructura:

// Función de Interrupción

ext_isr( ){
 Código de la rutina de interrupción 
}

6) Para habilitar las interrupciones se deben colocar al inicio del programa principal las
instrucciones para la configuración de las interrupciones.

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

// Configuración de interrupciones
set_tris_B(0x01); //Habilita RB0 como entrada.
enable_interrupts(int_ext); //Habilita interrupción externa RB0.
ext_int_edge(H_TO_L); //Interrupción por flanco de bajada.
enable_interrupts(global); //Habilita interrupciones globales.

7) Diseñe el programa principal, de acuerdo a lo visto en la práctica anterior.

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

9) Realice la simulación del sistema de microcontrolador comprobando que los tiempos en


cada etapa del funcionamiento son correctos, guarde la simulación y entregue una copia
impresa de la misma.

10) El alumno deberá traer el circuito de la práctica previamente armado.

Equipo

1 PC con software instalado:


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

Material

1 Microcontrolador PIC16F887
3 Resistencias de 1 kΩ, ½ watt
2 Push button
1 Barra de 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, coloque la barra de leds en el puerto X y un interruptor


en RB0/INT, como el mostrado en la figura 4.2.

3. Programe el microcontrolador y verifique que realice el corrimiento de forma correcta.


Anote sus observaciones.
4. Tome fotografías donde se observe el funcionamiento del circuito.

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

Figura 4.2. Diagrama del circuito de conteo e interrupción.

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

Cuestionario.

1) Describa que son y cuál es la función de PIR1 y PIE1 en el microcontrolador PIC16F887.

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


detalladamente al menos tres distintas a la empleada en la práctica.

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


modelos que posean más de una fuente de interrupción externa.

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 21
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.1a 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 a 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.1 también 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 22
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
F1
Color Función
Negro Común (GND)
Café Común (GND) F2
Naranja Columna 1 (C1)
Rojo Columna 2 (C2) F3
Verde Columna 3 (C3)
Gris Fila 1 (F1)
F4
Morado Fila 2 (F2)
Azul Fila 3 (F3)
Amarillo Fila 4 (F4)

Figura 5.1. Teclado de tipo matricial

Figura 5.2. Pantalla LCD de 16x2 (display)

Actividades previas a la práctica

1) El alumno realizará 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
de cada uno de los miembros del equipo, un familiar de cada uno, un número de emergencia

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

como bomberos, policía u otro, el número de una pizzería y el de un médico; cada uno de
estos 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, mostrar una serie de guiones en la línea superior del
display y mostrar la leyenda “En espera…” en la segunda línea del display.

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 Enviar la información


microcontrolador, guarde la simulación y al puerto del display
entregue una copia de la misma.

8) El alumno deberá traer el circuito


previamente armado.
Figura 5.3. Diagrama de flujo del programa

NOTA: 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 utilizando pines de puerto distintos al del teclado matricial.

Práctica 5 24
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

Material

1 Microcontrolador PIC16F887
1 Display LCD 16x2
1 Teclado matricial 4x3
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 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 esquemático del circuito de la agenda electrónica.

3. No olvide incluir el circuito de reset del microcontrolador como el empleado en las prácticas
anteriores.

Práctica 5 25
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.

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

Cuestionario.

1) ¿Qué diferencia existe entre un display de 14 pines con respecto al de 16 pines?

2) Investigue en manuales y hojas técnicas al menos dos tipos de memorias que podrían ser
adicionadas al sistema de modo que se pueda ampliar la capacidad de almacenamiento de
datos en la agenda. Indique las principales características de cada una.

3) 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.

4) ¿Cómo se pueden crear caracteres personalizados para el display utilizado en 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 5 26
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 a
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 27
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) El alumno realizará 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 una entrada de selección que permita cambiar
entre una señal de salida con una frecuencia de 15.25 kHz y una con frecuencia de 24.34 kHz

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


• Configurar el pin de entrada del puerto PX.Z
• Configurar el pin de salida del puerto PX.Y
• Crear un ciclo que haga una revisión del estado del pin de entrada PX.Z
• En caso de que PX.Z esté en un nivel alto, configurar los tiempos que permanecerá en
alto y en bajo el pin PX.Y para una frecuencia de 25 kHz.
• En caso de que PX.Z esté en un nivel bajo, configurar los tiempos que permanecerá
en alto y en bajo el pin PX.Y para una frecuencia de 10 kHz.

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) Escriba un 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.

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


• Incluir en las directivas de pre-procesado la biblioteca de control del display
• Configurar el pin de entrada del puerto PX.Y
• Configurar el puerto de salida Z
• Mostrar los mensajes del valor de ambos conteos en las líneas del display
• Crear un ciclo que haga una revisión del estado del pin de entrada PX.Y
• En caso de se presente un flanco de subida en el pin PX.Y, 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

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

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

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

12) Realice la simulación del sistema de microcontrolador para ambos programas, guarde las
simulaciones y entregue una copia impresa de las mismas.

13) El alumno deberá traer los circuitos de la práctica previamente armados.

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.1.

Figura 6.1. Optoacoplador para simulación.

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Ω
3 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 Schimth Trigger, 74LS14
1 Push button
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

Práctica 6 29
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. Con ayuda del osciloscopio, en acoplo de CD, verifique que el circuito de la figura 6.2 genere
de manera correcta las señales de reloj de salida.

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.

Figura 6.2. Circuito de reloj digital.

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. La figura 6.3 muestra las señales de control de baja frecuencia que requiere un servomotor
para funcionar, realice un programa que permita generar dichas señales con las
características indicadas en la figura 6.3.

7. El programa debe tener un interruptor para elegir el ancho de la señal, lo que corresponde a
la posición angular del servomotor.

Figura 6.3. Señales de control de un servomotor

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

8. 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.

9. A continuación, para el circuito de la figura 6.4, programe el microcontrolador usando el


segundo programa de las actividades previas.

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

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

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

13. 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 de conteo con sensor infrarrojo.

Cuestionario.
1) ¿Cuál es el valor máximo que permite un retardo utilizando las instrucciones delay_ms y
delay_us?

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?

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

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 32
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 (90°) y 200 para el segundo caso
(1.8°), para completar un giro completo de 360°. Para mantener la marcha del motor es necesario
cambiar periódicamente la combinación de voltajes en sus terminales, como se ilustra en la figura
7.2.

Práctica 7 33
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, solo 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 y son dispositivos fundamentales para
proporcionar movimiento a los robots.

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

Actividades previas a la práctica


1. El alumno realizará 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.4 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 todas las señales de salida de 40 Hz.
• De acuerdo al botón que se presione, el motor debe girar hacia la derecha o izquierda
exactamente 315° (7/8 de vuelta), con una frecuencia en las señales de control de 40 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 una copia
impresa de la misma.

5. El alumno deberá traer el circuito de la práctica previamente armado.

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 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
3 Push Button normalmente abiertos
8 Diodos 1N4004
1 Motor bipolar de 200 pasos
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

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

Procedimiento experimental

1. De acuerdo a 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. Compruebe que para el circuito mostrado en la figura 7.4, 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).

4. 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.

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
Vuelta Der. P1
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
C1 C2 +7
R6 +5

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.4. Circuito de control de motor a pasos.

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

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

Figura 7.5. Fases del motor bipolar a pasos.

6. La tabla 7.1 presenta el funcionamiento que debe de tener el motor de acuerdo al circuito de
control que contiene el programa realizado.

Tabla 7.1. Lógica de funcionamiento del programa.


Full/Half Izquierda Derecha Función
1 0 1 Giro a la izquierda paso completo
1 1 0 Giro a la derecha paso completo
X 1 1 Motor detenido
0 0 1 Giro a la izquierda medio paso
0 1 0 Giro a la derecha medio paso

7. Con ayuda del osciloscopio, en acoplo de CD, verifique que el circuito genere de manera
correcta las señales de salida que van hacia el circuito L298 y mida su frecuencia.

8. A continuación, compruebe que el motor complete una vuelta exacta y se detenga al


presionar unos de los botones de giro a la derecha o izquierda. 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 de un nuevo botón, 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?

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

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 38
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 PIC16F887 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 39
Facultad de Estudios Superiores Cuautitlán UNAM

Por otro lado, los amplificadores operacionales han evolucionado en su diseño para funcionar
perfectamente aún con la presencia de ruido en sus entradas.

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, ver
figura 5.3. 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) El alumno realizará 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, circuito debe contar con entradas de
calibración para los voltajes de referencia como se muestra en la figura 8.3.

3) El algoritmo debe seguir las siguientes especificaciones:


• El comparador C1 deberá tener su entrada de voltaje a través del canal 1 (terminal
C12IN1-) y su referencia deberá estar ligada al exterior (terminal C1IN+) con un
voltaje de 2V. La salida deberá conectarse por programación al pin de puerto
correspondiente (terminal C1OUT) donde deberá estar conectado uno de los LED’s.
La polaridad seleccionada no debe ser negativa.
• El comparador C2 deberá tener su entrada de voltaje a través del canal 1 (terminal
C12IN2-) y su referencia deberá estar ligada al exterior (terminal C2IN+) con un
voltaje de 4.1V. La salida deberá conectarse por programación al pin de puerto
correspondiente (terminal C2OUT) donde deberá estar conectado a otro LED. La
polaridad seleccionada no debe ser negativa.

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 microprocesador, guarde la simulación y entregue una


copia impresa de la misma.

7) Imprima el diagrama de terminales del Led RGB y entréguelo junto con las otras actividades
previas.

8) El alumno deberá traer los circuitos de la práctica previamente armados.

Práctica 8 40
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 16F887


1 Amplificador operacional LM339
2 Fotorresistencias LDR de 2 MΩ (también llamada fotoceldas)
3 Potenciómetros de 10 kΩ
1 Resistencia de 1 kΩ a ½ watt
1 Resistencia de 10 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
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 RV1 y RV2 para igualar los voltajes de referencia Ref1 y Ref2 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.

6. Incluya fotografías del funcionamiento del circuito.

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

Figura 8.3. Circuito de control de iluminación.

7. Desconecte las señales de entrada Vin1 y Vin2 y en su lugar conecte en ambas terminales el
generador de funciones con una señal triangular de 5Vpp y un offset de 2.5VCD, de modo que
no tenga parte negativa, y una frecuencia de 100Hz.

8. Arme el circuito comparador discreto de la figura 8.4, utilizando la misma señal triangular
usada en el punto anterior y conecte las salidas C1OUT, C2OUT del microcontrolador y
C3OUT del comparador discreto a las tres terminales de alimentación del led RGB.

9. Varíe los voltajes de referencia por medio de los tres potenciómetros para obtener al menos
5 colores diferentes en el led RGB y con ayuda del osciloscopio observe y grafique las
señales presentes en las terminales de C1OUT, C2OUT y C3OUT que corresponden a cada pin
del led.

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

Figura 8.4. Circuito comparador discreto.

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

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 43
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 PIC16F887 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 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 44
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) El alumno realizará la lectura de la práctica.

2) 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.

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


analógica – digital.

4) 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 en 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, se muestre en el
display el valor binario que resulta de la conversión, el 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 señal de selección para elegir si la
temperatura se muestra en °C o en °K.

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

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

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

6) Realice la simulación del sistema de microprocesador, guarde la simulación y entregue una


copia impresa de la misma.

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

𝐺𝑎𝑛𝑎𝑛𝑐𝑖𝑎[𝐺𝑟𝑎𝑑𝑜𝑠℃(𝐹𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝐸𝑠𝑐𝑎𝑙𝑎)] = 𝑉𝑜𝑙𝑡𝑎𝑗𝑒 𝑑𝑒𝑙 𝐶𝑜𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑜𝑟

𝑚𝑉
5 [100℃ (10 )] = 5𝑉

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

8) El alumno deberá traer el circuito de la práctica previamente armado.

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 16F887


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 46
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 8.3 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. Termómetro digital con microcontrolador.

3. Sin tocar el sensor del termómetro digital, anote los datos obtenidos para ambas escalas de
temperatura, 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 Farenheit y Reaumur además de los Celsius y Kelvin.

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 47
Facultad de Estudios Superiores Cuautitlán UNAM

Cuestionario.
1) Calcule la ganancia de voltaje del circuito amplificador de la práctica y la resolución del
convertidor A/D empleado.

2) De acuerdo a los resultados de las preguntas anteriores, ¿cuál sería el valor de temperatura
si a la salida del sensor hay 0.47mV?

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 una entrada analógica?

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 48
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 49
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 – Ancho de pulso de una señal PWM.

Actividades previas a la práctica

1) El alumno realizará 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 18
kHz y ciclo de trabajo del 55%.

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 50
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 a la fórmula 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 fórmula de PWM duty cicle de la hoja
de datos técnicos.

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

7) Realice la simulación de todos los puntos del desarrollo experimental, guarde la simulación
y entregue una copia impresa de la misma.

8) Desarrolle un algoritmo que proporcione, de manera automática, el perfil de velocidad


mostrado en la figura 10.3 al presionar el botón de Inicio.

Figura 10.3. Perfil de velocidad controlado mediante PWM.

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.

9) 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.

10) El alumno deberá traer el circuito de la práctica previamente armado.

Práctica 10 51
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

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, como 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. Circuito generador de señales PWM.

4. Programe nuevamente el microcontrolador, ahora con el programa para producir el perfil de


velocidades.

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

5. Modifique el armado del circuito para tener el mostrado 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 de control de velocidad para motor de CD.

Cuestionario.
1) Si se deseara cambiar la frecuencia de trabajo a 12KHz, con un ciclo del 45%, ¿qué valores se
tendrían que poner el valor_ciclo y PR2?

2) Si se desea trabajar con CCP2 ¿Qué modificaciones se le tendrían que hacer al programa
principal?

3) Si se deseara variar el ciclo de trabajo del módulo PWM de forma externa, ¿qué es lo que
podría hacer para lograrlo?

4) 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 53
Facultad de Estudios Superiores Cuautitlán UNAM

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

Tema

4.1. Multiplexado de señales.

Objetivos

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

 El uso de circuitos multiplexores y de-multiplexores.

 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

Cuando trabajamos con dispositivos microcontroladores, el número de entradas y salidas es un


factor que limita nuestra capacidad para el diseño de un sistema tanto en hardware como software.
Muchos dispositivos se diseñan para reducir el número de pines requeridos para interconectar
módulos de entrada y salida. La manera de tener pocos pines en un dispositivo sin tener que
sacrificar la variedad de funciones del microcontrolador, es asignar varias funciones a un mismo
pin; lo cual se logra mediante el multiplexado de dichas funciones. En la figura 1.1 se puede apreciar
este concepto.

Figura 1.1. Microcontrolador Atmega8 con terminales multiplexadas.

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

Multiplexado 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 de-multiplexado
donde, usando un solo medio de transmisión, se separan varios canales de información. La figura 1.2
muestra un ejemplo de esto.

Figura 1.2. Terminal multiplexada de un microcontrolador Atmega8.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Investigue e imprima la hoja técnica del circuito CD4052 teniendo especial interés la tabla
de funcionamiento del circuito y las terminales de alimentación.

3) Realice la simulación del circuito multiplexor/demultiplexor, siguiendo cada uno de los


puntos del procedimiento experimental. Guarde la simulación y entregue una copia de la
misma.

4) El alumno deberá traer el circuito de la práctica previamente armado.

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

Equipo

1 Fuente de voltaje bipolar de CD


1 Generador de funciones
1 Osciloscopio

Material

1 Multiplexor/Demultiplexor CD4052
1 Temporizador LM/NE555
1 Diodo de alta velocidad 1N4148
2 Resistencias de 10 kΩ, ½ watt
2 Resistencias de 2.2 kΩ, ½ watt
2 Capacitores de 0.15 µF
1 Dip switch de 2 o más interruptores
Tableta de Conexiones
Alambres y cables para conexiones

Procedimiento experimental

1. Arme el circuito mostrado en la figura 1.3 alimentando el circuito multiplexor con 10VCD.

Figura 1.3. Circuito multiplexor/demultiplexor.

2. Calibre el generador de funciones para obtener a su salida una señal de 2.5 sin 6283.18 𝑡.

3. Conecte el generador de funciones como se indica en la figura 1.3 y adicione una fuente de
10VCD en la terminal X2.

4. Con ayuda del osciloscopio, observe y grafique la señal de salida Vs acotándola


correctamente para cada una de las combinaciones de los selectores del circuito multiplexor.

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

5. Modifique el circuito anterior para obtener el que se muestra en la figura 1.4.

Figura 1.4. Modificación del circuito multiplexor.

6. Para las mismas señales de entrada, observe en el osciloscopio las salidas Vs1, Vs2, Vs3 y
Vs4 y grafíquelas acotándolas cuidadosamente para cada una de las combinaciones de los
selectores del circuito multiplexor.

Cuestionario.

1) Investigue en las hojas técnicas del circuito multiplexor utilizado en la práctica ¿cuáles son
los límites de los voltajes de polarización y cómo influyen en los valores máximo y mínimo
de las señales de entrada?

2) ¿Cuál es la relación entre el número de entradas y el número de selectores de un


multiplexor?

3) Para el microcontrolador Atmega8 investigue cuál es el número de funciones con las que
cuentan los puertos B, C y D e indique cuáles son de tipo analógico y cuáles son digitales.

Conclusiones

Elabore 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 57
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 del mismo
mediante lenguaje ensamblador.
 Configurar los diversos puertos del microcontrolador para que funcionen como puertos de
entrada o puertos de salida.
 Utilizar el software Atmel Studio IDE para compilar y ensamblar los programas del
microcontrolador.

Introducción

Existen diversos fabricantes de microcontroladores y dentro de un mismo fabricante podemos


tener diferentes “sabores” dependiendo de la cantidad y tipo de recursos con que cuenta el
microcontrolador particular. Dentro de los fabricantes más importantes de acuerdo con el tamaño
de ventas en el mercado de diseño con sistemas embebidos, están: Texas Instruments, Freescale,
Microchip, Atmel (ahora como parte de Microchip), Intel, STMElectronics, etcétera. Nos referimos a
los recursos del microcontrolador cuando hablamos de la cantidad de puertos y funciones de los
mismos (convertidores, temporizadores, interfaces de comunicación, etcétera), cantidad de
memoria, velocidad, cantidad de bits (8, 16, 32 ó 64), etcétera.

Debido a que es imposible abarcar todos los fabricantes y tipos de microcontroladores, nos
enfocaremos en un fabricante y un microcontrolador particular de ese fabricante. Cuando
diseñamos con sistemas embebidos, escogemos el microcontrolador que mejor se adapte a la
solución que vamos a implementar. Es decir, de acuerdo con la cantidad de puertos y tipos de
funciones que necesitamos para interconectar nuestros dispositivos periféricos.

Para el desarrollo de éstas prácticas utilizaremos el microcontrolador de gama media y tamaño de


registros de 8 bits como el Atmega8 de Atmel, cuyas características generales son:
 Memoria: 8 KBYTES flash, 512 BYTES EEPROM y 1 KBYTE de SRAM.
 Puertos de entrada-salida: B (8 bits), C (7 bits) y D (8 bits).
 Temporizadores: 2 de 8 bits y 1 de 16; así como 3 canales PWM.
 Convertidor analógico digital: 6 canales de 10 bits de resolución.
 Interfaces: TWI (I2C), SPI y USART.
 1 comparador analógico.

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

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.


2) Descargar e instalar el ambiente de desarrollo Atmel Studio.
3) Descargar e instalar Win AVR.
4) La operación de configuración de los puertos se realiza mediante la siguiente secuencia:
 Definir qué pines del puerto deseamos como salida (escribiendo un 1 lógico) y
cuáles como entrada (escribiendo un 0 lógico).
 Escribir la palabra de control en el registro de dirección de datos (DDRx) del puerto
correspondiente.
 Escribir (PORTx)o leer (PINx) datos, hacia o desde, los puertos programados para
tal fin.

5) Desarrolle un programa que configure las líneas del puerto B como entrada y las líneas del
puerto D como salida, mostrando en todo momento la entrada del puerto B en el puerto D en
formato GRAY.

6) El pseudocódigo se puede escribir como :

//Configura puerto B como entrada (DDRB)


//Configura puerto D como salida (DDRD)
//Repite indefinidamente la siguiente secuencia:
{
//Lee dato del puerto B (PINB)
//Convierte datos del puerto B a código GRAY
//Escribe dato en el puerto D (PORTD)
}

7) Realice la simulación del sistema de microcontrolador, guarde la simulación y entregue una


copia de la misma.

8) El alumno deberá traer el circuito previamente armado.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD

Material

1 Microcontrolador Atmega8
8 Resistencias de 1 kΩ, ½ watt
9 Resistencias de 330 Ω, ½ watt
1 Dip switch de 8
1 Push button
Barra de LEDs

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

Tableta de Conexiones
Alambres y cables para conexiones

Procedimiento experimental

1. Crea un nuevo proyecto en Atmel Studio, para ello ejecuta el programa y en la barra superior
elije la opción “File” ”New” ”Project”, como se muestra en la figura 2.2.

Figura 2.1. Crear un nuevo proyecto.

2. Aparece una nueva ventana en la que debemos seleccionar “Assembler”, “AVR Assembler
Project”; además en la parte inferior escribimos el nombre de nuestro proyecto,
seleccionamos la ruta para depositar nuestra carpeta, seleccionamos “Create directory for
solution” y oprimimos “OK” (figura 2.2).

Figura 2.2. Tipo de archivo dentro del proyecto y datos de la ruta.

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

3. Aparece una nueva ventana en la que podemos realizar la búsqueda y selección del
dispositivo para el cuál se escribirá el código, como se muestra en la figura 2.3.

Figura 2.3. Selección el dispositivo.

4. Cuando oprimimos “OK”, se genera un archivo con extensión ".asm”, como ejemplo,
escribimos el código de un
programa que lee el contenido
del puerto B y lo muestra en el
puerto D:

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

5. Se procede a ensamblar el programa para generar el archivo .hex, necesario para programar
el dispositivo. En la barra superior, seleccionamos “Build” ”Build Solution” (figura 2.4).
Otra manera es oprimiendo la tecla “F7”.

Figura 2.4. Selección del menú “Build”.

6. Proceda a armar el circuito en la protoboard de acuerdo al diagrama de la figura 2.5,


programe el microcontrolador y verifique que realice la lectura y escritura de puertos
correctamente. Anote sus observaciones.

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

Figura 2.5. Diagrama del circuito.

8. Realice la modificación del código del microcontrolador de modo que al ingresar un dato por
el puerto B, en el puerto C aparezca el dato en código EXC3. El puerto D mantiene la función
que tenía anteriormente.

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

Cuestionario.

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

2) ¿Qué se tiene que hacer si se desea que algunos pines de un puerto sean de entrada y otros
de salida?

3) ¿Si se desea usar un puerto cuyos bits tienen más de una función, qué registro o registros se
deben configurar? Dé dos ejemplos.

Conclusiones

Elabore 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 63
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 haciendo uso del temporizador básico de los microcontroladores, el TIMER 0.

Introducción

Un temporizador (timer en inglés) es simplemente un contador digital y su ventaja radica en que el


reloj de entrada y la operación del temporizador son independientes de la ejecución del programa.
El microcontrolador Atmega8, cuenta con dos temporizadores de 8 bits (TIMER0, TIMER2) y uno de
16 bits (TIMER1); lo cual significa que los temporizadores de 8 bits pueden contar de 0 a 255,
mientras que el temporizador de 16 bits podrá hacer una cuenta de 0 a 65,535. No siempre la mayor
cantidad de bits es la mejor, porque podemos tener aplicaciones en las que una resolución de 8 bits
sea suficiente, además si utilizamos 16 bits en donde no se requiera, estamos sobre cargando al
microcontrolador innecesariamente.

La velocidad de conteo de los temporizadores puede ser controlada mediante técnicas de división
de frecuencias (prescaling). Con esta técnica, nuestra frecuencia del reloj que alimenta al contador
puede ser dividida por un factor de 8, 64, 256 y 1024 (figura 3.1).
Básicamente el control del TIMER0 se lleva a cabo mediante el registro TCCR0 (Timer/Counter 0
Control Register) y en ése registro,
los bits CS00, CS01 y CS02 (Clock
Select) controlan el valor del
divisor de frecuencia. Una vez
activado el contador, el registro
TCNT0 (Timer/Counter Register)
comienza a incrementarse en 1 a
la frecuencia definida por el reloj.
Existen varias aplicaciones y
varios modos de operación de los
temporizadores; sin embargo, en
ésta práctica se utilizará el “modo
normal”.
Figura 3.1. Diagrama del prescaler.

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

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Desarrollar un programa que encienda y apague un LED de forma intermitente con periodos
de medio segundo en cada estado. Incluya los cálculos realizados para configurar el módulo
del TIMER0.

3) El pseudocódigo se puede escribir como :


//Configura el puerto como salida
//Repite indefinidamente la siguiente secuencia:
{
//Escribe un “1” en el bit configurado como salida
//Espera 0.5 segundos
// Escribe un “0” en el bit configurado como salida
//Espera 0.5 segundos
}

4) Dibuje el diagrama de flujo del algoritmo anterior.

5) Crear un nuevo proyecto en Atmel Studio y empleando las rutinas anteriores, realizar un
programa que permita mantener encendido el LED durante tres segundos y apagado otros
dos segundos de forma intermitente. Incluya los cálculos realizados para configurar el
módulo del TIMER0.

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

7) Realice la simulación del sistema de microcontrolador, guarde la simulación y entregue una


copia impresa de la misma.

8) El alumno deberá traer el circuito previamente armado.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD

Material

1 Microcontrolador Atmega8
4 Resistencias de 330 Ω, ½ watt
1 Push button
3 LEDs
Tableta de Conexiones
Alambres y cables para conexiones

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

Procedimiento experimental

1. Haciendo uso del proyecto creado anteriormente y siguiendo la lógica de las actividades
previas, programe el microcontrolador tomando como base la rutina de retardo siguiente:

2. Para el circuito previamente armado de acuerdo al diagrama de la figura 3.2, y con ayuda del
osciloscopio, grafique la señal de salida del pin 14, acotándola correctamente.

3. Tome una fotografía donde se observe el funcionamiento del circuito.

Figura 3.2. Diagrama del circuito de retardo.

4. Aprovechando las rutinas de los códigos realizados en las actividades previas, escriba un
programa que controle tres pines del puerto B de modo que funcione como un semáforo.

5. Modifique el circuito de la figura 3.2 para realizar la prueba del sistema de semáforo.

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

Cuestionario.

1) Explique brevemente el funcionamiento y el porqué de los valores en la subrutina “retardo”.

2) Explique el funcionamiento del prescaler del microcontrolador.

3) Determine el tiempo mínimo de retardo que se puede lograr con el microcontrolador


empleado en la práctica y explique cuáles son sus limitaciones de funcionamiento.

Conclusiones

Elabore 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 67
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 de la entrada INT0 para detener un proceso y ejecutar una subrutina por medio
de la interrupción.

Introducción

Las interrupciones son básicamente eventos que requieren atención inmediata por parte del
microcontrolador. Cuando ocurre una interrupción, el microcontrolador detiene el proceso que está
haciendo y atiende la interrupción
mediante la ejecución de una
subrutina (Interrupt Service Routine),
cuando termina de ejecutar esta
subrutina, el microcontrolador
regresa al proceso y continúa con la
operación posterior a donde pausó el
proceso.
El microcontrolador puede atender
dos fuentes de interrupciones:
internas y externas. Las
interrupciones internas están
asociadas con los dispositivos
periféricos del propio
microcontrolador como el
temporizador/contador, el
comparador analógico, etcétera. Por
otro lado, las interrupciones externas
son provocadas por dispositivos
conectados a los pines externos del
microcontrolador.
Figura 4.1 Vectores de interrupción del Atmega8.

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

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Desarrollar un programa que realice un conteo ascendente en 8 bits, con un intervalo de 0.5
segundos entre cada incremento, de forma continua, y por medio de INT0 se va a introducir
una interrupción que provoque que todos las salidas del puerto se enciendan durante un
segundo y se apaguen durante un segundo en un periodo de 10 segundos. Al finalizar deberá
regresar a la rutina de conteo justo en el punto donde se interrumpió.

3) El proyecto se crea de la manera descrita en la práctica 2, excepto que el tipo de proyecto


(punto 2 de la práctica 2) ahora deberá ser:

Figura 4.2. Tipo de archivo dentro del proyecto y datos de la ruta.

4) El pseudocódigo se puede escribir como :

//Configura un pin de cualquier puerto como salida


//Configura el pin para la interrupción (INT0 ó INT1) como entrada
//Activa resistencia de PULLUP de esa entrada
//Habilita interrupciones generales (sei)
//Habilita interrupción externa (INT0 ó INT1)
//Define el nivel con el cual se activará la interrupción
//Repite indefinidamente:
{

}
//Escribir la rutina de atención a la interrupción (ISR)

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

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

6) Para activar la resistencia de PULLUP en un pin configurado como entrada, sólo volvemos a
escribir un “1” en el puerto:

//Activa resistencia de pullup


PORTD |= 1 << PIND2;

7) Para habilitar las interrupciones, primero activamos las interrupciones generales e


incluimos la librería en el encabezado; después habilitamos la interrupción externa
correspondiente (INT0 ó INT1), definimos el nivel para activar la interrupción (ISC) y
finalmente escribimos el código para la rutina de atención a la interrupción (ISR):

#include <avr/interrupt.h>

int main(void)
{
sei(); //Habilita interrupciones generales
GICR |= 1 <<INT0; //Habilita interrupción externa (INT0=1)
MCUCR |= 1<<ISC01;//ISC01=1,ISC00=0 => pulso de bajada
while(1)
{

}
}
//Rutina de atención a la interrupción
ISR(INT0_vect)
{

8) Diseñe el programa principal.

9) Compile el programa con Atmel Studio, corrigiendo los posibles errores.

10) Realice la simulación del sistema de microcontrolador, guarde la simulación y entregue una
copia impresa de la misma.

11) El alumno deberá traer el circuito de la práctica previamente armado.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD

Material

1 Microcontrolador Atmega8
9 Resistencias de 330 Ω, ½ watt

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

2 Push button
1 Barra de 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. Asegúrese que estén bien colocados la barra de LEDs en el puerto B y un interruptor en INT0
el circuito armado previamente como el mostrado en la figura 4.3.

Figura 4.3. Diagrama del circuito de conteo e interrupción.

3. Programe el microcontrolador y verifique que realice el conteo de forma correcta.


Anote sus observaciones.

4. Tome una fotografía donde se observe el funcionamiento del circuito.

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

Cuestionario.

1) El control de las interrupciones del microcontrolador Atmega8 se lleva a cabo


principalmente mediante los registros MCUCR y GICR, describa la función de los bits que se
programan para tal fin.

2) El microcontrolador Atmega8 cuenta con numerosas fuentes de interrupción interna,


describa detalladamente al menos tres de ellas.

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


modelos que posean más de una fuente de interrupción externa.

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

Conclusiones

Elabore 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 72
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

Los teclados y pantallas son dos de los dispositivos ampliamente usados para proporcionar
entradas y salidas del mundo externo hacia el microcontrolador. Con ellos permitimos una mayor
interacción del usuario. Estos dispositivos se conectan a los puertos de entrada y salida de propósito
general.

Para poder conectar y lograr que funcione de manera correcta cualquier dispositivo con el
microcontrolador, es necesario contar con las hojas técnicas del fabricante de dicho dispositivo y, a
partir de ahí, obtener y entender los parámetros más importantes para poderlo controlar.

Como sabemos, algunas de las funciones del microcontrolador están multiplexadas; sin embargo, la
cantidad de puertos y pines del microcontrolador es limitada y, por tal motivo, es indispensable que
al escoger un dispositivo de interfaz, también consideremos la cantidad de recursos que nos
demandará de nuestro microcontrolador. De hecho, en el diseño de sistemas embebidos, se procede
al contrario, es decir, primero hacemos el diseño (TOP) conceptual de nuestro sistema, analizamos
la cantidad de recursos que demandará del microcontrolador y posteriormente escogemos el
microcontrolador que mejor se ajuste a nuestras necesidades, sin tener recursos de más ni menos.

Por lo tanto, aunque el teclado que usaremos en la práctica (ver figura 5.1) tiene 12 teclas, éste es
un teclado matricial que de acuerdo con la combinación de renglón y columna, podemos determinar
la posición, y la tecla, que se está oprimiendo. De esta manera, en lugar de usar una entrada del
microcontrolador para cada tecla, es decir 12 entradas, se utilizarán sólo 7 líneas, 4 para los
renglones y 3 para las columnas.

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

Así mismo, para controlar el LCD (ver figura 5.1) que usaremos en la práctica, es necesario enviar 3
señales de control y 8 pines por donde se envían los datos, de tal manera que se requieren 11 líneas
para controlar y escribir información en la pantalla; sin embargo, el LCD soporta un modo de
transferencia de 4 bits para datos, de tal manera que en lugar de usar 11 líneas usaremos 7. Además
si sólo escribimos en la pantalla (porque también se puede leer de él), podemos reducir la cantidad
de señales a 6. Finalmente, recalcaremos que la mejor manera de controlar al dispositivo es
consultando la hoja técnica del mismo.

Figura 5.1. Teclado tipo matricial y pantalla LCD.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Investigar los parámetros más importantes de la hoja de datos técnicos, tanto del teclado
como de la pantalla LCD a utilizar.

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

4) 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 de cada uno de los miembros del equipo, un familiar de cada uno,
un número 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 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.

5) El pseudocódigo se puede escribir como :

//Configura el puerto de entrada para teclado


//Configura el puerto de salida para pantalla
//Definir base de datos a mostrar
//Configurar pantalla
//Mostrar mensaje de bienvenida
//Repetir indefinidamente la secuencia:
{
//Leer puerto del teclado
//Se oprimió tecla?
//No, volver a leer puerto del teclado
//Sí, codificar la tecla presionada
//Escribir en pantalla la información
}

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

6) Compile el programa con Atmel Studio, corrigiendo los posibles errores.

7) Realice la simulación del sistema de microcontrolador, guarde la simulación y entregue una


copia impresa de la misma.

8) El alumno deberá traer el circuito previamente armado.

Equipo
1 PC con software instalado:
 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD

Material

1 Microcontrolador Atmega8
1 Display LCD 16x2
1 Teclado matricial 4x3
1 Potenciómetro de 2 kΩ
1 Resistencia de 330 Ω, ½ watt
1 Push button
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. Proceda a armar el
circuito en la
protoboard, como el
mostrado en la figura
5.2, tenga cuidado de
que las conexiones del
display y del teclado
correspondan con los
pines de los puertos de
entrada y salida elegidos.

Figura 5.2. Diagrama esquemático del circuito de la agenda electrónica.

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

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


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

4. Incluya algunas fotografías donde se observe el funcionamiento del circuito.

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


manera correcta.

Cuestionario.

1) ¿Qué diferencia existe entre un display de 14 pines con respecto al de 16 pines?

2) Investigue en manuales y hojas técnicas al menos dos tipos de memorias que podrían ser
adicionadas al sistema de modo que se pueda ampliar la capacidad de almacenamiento de
datos en la agenda. Indique las principales características de cada una.

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


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

Conclusiones

Elabore 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 76
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

El microcontrolador Atmega8 cuenta con temporizadores de 8 y 16 bits, se puede decir que el


temporizador de 16 bits es más avanzado que el 8, porque tiene más funciones y permite una mayor
exactitud. El temporizador de 16 bits tiene una opción para medir el tiempo de eventos específicos a
nivel del hardware, para esto utiliza una entrada especial llamada ICP (Input Capture Pin).
Usualmente, este modo de funcionamiento del temporizador se utiliza para medir el tiempo de un
intervalo entre dos eventos, por ejemplo, para medir el ancho de un pulso. Se realiza capturando el
tiempo del evento al principio y al final del evento, se restan uno del otro y se obtiene el tiempo que
duró dicho evento. Es decir, que este modo se utiliza cuando se requiere medir la frecuencia o el
ciclo de trabajo de una señal externa.

Podemos escoger entre dos fuentes de los eventos: el cambio lógico en el valor del ICP o en el valor
resultado en el comparador analógico. Si ocurre el evento, el valor del contador se escribe en un
registro especial (Input Capture Register), desde donde podemos leer el valor en cualquier
momento. La captura de la entrada (ICP) puede ser activada mediante un pulso de subida o de
bajada, además podemos activar la cancelación de ruido en la entrada para que la información sea lo
más real. Hay que tomar en cuenta que la activación de la entrada ICP inicia el conteo a la frecuencia
del oscilador interno, del reloj externo o de una fuente de señal externa, y que para cualquiera de
ellas podemos utilizar el mecanismo de división de frecuencia (precaler). Además, debemos
considerar que cuando usamos la facilidad de cancelación de ruido, ésta simplemente espera por un
alto o bajo de la señal, cuatro ciclos de reloj.

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

Cuando la captura de señal, es decir, ocurre un evento, se genera una interrupción; de tal manera
que debemos escribir la rutina de atención a la interrupción ocurrida. La figura 6.1 muestra el
diagrama de bloques de la unidad de captura de entrada.

La facilidad de captura de entrada es superior a utilizar un pin de entrada de interrupciones


externa debido a que el valor del
temporizador se copia
inmediatamente cuando el pin
cambia de estado. Con el pin de
interrupción estándar, el CPU
puede estar ocupado atendiendo
a las interrupciones, y puede
haber un tiempo extra requerido
para llegar a ejecutar el código
debido a la ocurrencia del propio
evento. El valor del temporizador
habrá cambiado de una manera
significativa hasta el tiempo en
que el firmware copia éste. Esto
es, el ancho del pulso medido
puede ser incorrecto.

Figura 6.1. Diagrama de bloques de la unidad de captura de entrada.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

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

3) Desarrolle un programa que permita que el microcontrolador funcione como una “fuente de
reloj digital”. El circuito debe contar con una entrada de selección que permita cambiar
entre una señal de salida con una frecuencia de 1.2 kHz y una con frecuencia de 3 kHz.

4) El pseudocódigo se puede escribir como :

//Configura el pin de captura de entrada


//Configura resistencia de PULLUP
//Configura el pin de salida para observar la señal
//Repetir indefinidamente la secuencia:
{
//Leer pin de entrada
//Está en alto?
//No, genera una señal de f=1.2Khz
//Sí, genera una señal de f=3Khz
}

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

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

6) Compile el programa con Atmel Studio, corrigiendo los posibles errores.

7) Escriba un 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.

8) El pseudocódigo se puede escribir como :

//Configura el pin de captura de entrada


//Activar resistencia de PULLUP
//Configura el puerto de salida para el LCD
//Configurar el LCD
//Mostrar el mensaje: “Valor de conteo:” en la 1ª. línea del LCD
//Repetir indefinidamente la secuencia:
{
//Leer pin de entrada
//Detectó un flanco de subida?
//Sí, incrementa valor de contador
//Escribir en pantalla la información
}

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

10) Compile el programa con Atmel Studio, corrigiendo los posibles errores.

11) Realice la simulación del sistema de microcontrolador para ambos programas, guarde las
simulaciones y entregue una copia impresa de las mismas.

12) El alumno deberá traer los circuitos de la práctica previamente armados.

NOTA: Al probar el programa en el simulador, se puede colocar un “push button” en el pin de


captura de entrada (ICP) para, a su vez, simular la ocurrencia de un evento.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD
1 Osciloscopio

Material

1 Microcontrolador Atmega8
1 Display LCD 16x2
1 Potenciómetro de 2 kΩ
1 Resistencias de 10 kΩ, ½ watt
2 Resistencias de 330 Ω, ½ watt

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

1 Diodo de luz infraroja, IR333C


1 Fototransistor infrarojo, PT331C
1 Inversor Schmitt Trigger, 74LS14
1 Push button
Tableta de Conexiones
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. Pare armar el circuito previamente armado en la protoboard, como el mostrado en la figura


6.2, cuide que las conexiones correspondan con las terminales del puerto elegido.

3. Con ayuda del osciloscopio, en acoplo de CD, verifique que el circuito genere de manera
correcta la señal de reloj de salida.

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


cuidadosamente la señal de reloj.

Figura 6.2. Circuito de reloj digital.

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


frecuencia en la señal de salida.

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

7. La figura 6.3 muestra las señales de control de baja frecuencia que requiere un servomotor
para funcionar, realice un programa que permita generar dichas señales con las
características indicadas en la figura.

8. El programa debe tener un interruptor para elegir el ancho de la señal, lo que corresponde a
la posición angular del servomotor.

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

Figura 6.3. Señales de control para un servomotor.

9. Con la 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.
10. A continuación, arme el circuito de la figura 6.4, tenga cuidado de que las conexiones del
display correspondan con las terminales del puerto de salida elegido y la orientación de los
elementos ópticos sea correcta.

11. Usando el segundo programa de las actividades previas y siguiendo la lógica de su algoritmo
programe el microcontrolador.

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

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

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

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

Figura 6.3. Circuito de conteo con sensor infrarrojo.

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

Cuestionario.
1) ¿Cuál es el tiempo máximo que permite un retardo utilizando la instrucción delay_ms y
delay_us?

2) En base a lo investigado en las actividades previas y a sus observaciones durante la práctica,


explique si es posible omitir la compuerta Schmitt Trigger del diseño.

3) 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) ¿Cuál es el límite del conteo que se puede alcanzar con el circuito de la práctica y a qué se
debe dicho valor?

Conclusiones

Elabore 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 82
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 (90°) y 200 para el segundo caso
(1.8°), para completar un giro completo de 360°. Para mantener la marcha del motor es necesario
cambiar periódicamente la combinación de voltajes en sus terminales, como se ilustra en la figura
7.2.

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

Figura 7.2. 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, solo 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. 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 y son dispositivos fundamentales para
proporcionar movimiento a los robots.

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

Actividades previas a la práctica

1. El alumno realizará 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 actúe como el sistema control de un


motor a pasos 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 salida de 30 Hz.
 Al presionar un botón pulsador, el motor debe girar una revolución exacta hacia la
derecha o izquierda, de acuerdo al botón elegido, con una frecuencia en las señales de
control de 30 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 una copia
impresa de la misma.

5. El alumno deberá traer el circuito de la práctica previamente armado.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD
1 Osciloscopio

Material

1 Microcontrolador Atmega8
1 Controlador dual de puente completo L298N
1 Pantalla LCD de 16x2
1 Resistencia de 330  a ½ W
1 Potenciómetro de 2 K
2 Capacitores de 0.1 F
3 Push Button normalmente abiertos
8 Diodos 1N4004
1 Motor bipolar de 200 pasos
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones

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

Procedimiento experimental

1. De acuerdo a lo investigado en las actividades previas, determine la secuencia de las fases


del motor a paso 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. Proceda a armar el circuito en la protoboard, como el mostrado en la figura 7.4, tenga


cuidado de que las conexiones correspondan con las terminales de los puertos elegidos
como entrada, salida y para el display.

4. 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.

Figura 7.4. Circuito de control de motor a pasos.

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

Fase 4
Fase 2
Fase 3
Fase 1

Figura 7.5. Fases del motor bipolar a pasos.

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

6. La tabla 7.1 presenta el funcionamiento que debe de tener el motor de acuerdo al circuito de
control que contiene el programa realizado.

Full/Half Izquierda Derecha Función


1 0 1 Giro a la izquierda paso completo
1 1 0 Giro a la derecha paso completo
X 1 1 Motor detenido
0 0 1 Giro a la izquierda medio paso
0 1 0 Giro a la derecha medio paso
Tabla 7.1. Lógica de funcionamiento del programa.

7. Con ayuda del osciloscopio, en acoplo de CD, verifique que el circuito genere de manera
correcta la señales de salida que van hacia el circuito L298 y mida su frecuencia.

8. A continuación, compruebe que el motor complete una vuelta exacta y se detenga al


presionar unos de los botones de giro a la derecha o izquierda. 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) Explique cómo sería posible controlar el movimiento del motor para que se incremente en un
solo paso (conocido como Jogging), cada que reciba un pulso de una señal externa.

3) Explique el funcionamiento del circuito puente contenido en el dispositivo controlador L298N.

4) ¿Por qué es importante mantener la sincronía en motores a pasos?

Conclusiones

Elabore 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 87
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 Atmega8 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 88
Facultad de Estudios Superiores Cuautitlán UNAM

El comparador analógico del Atmega8 compara los valores de entrada entre el pin positivo AIN0 y
el pin negativo AIN1. Cuando el voltaje en el pin positivo AIN0 es mayor que el voltaje en el pin
negativo AIN1, la salida del comparador analógico, ACO, envía un 1 lógico. Aunque estrictamente el
Atmega8 tiene sólo un comparador analógico, es posible seleccionar cualquiera de los pines del
convertidor analógico digital (ADC7 - ADC0) para reemplazar la entrada negativa del comparador
analógico y así tener más canales de comparación.

En esta práctica se usará una fotoresistencia o LDR (Light Dependent Resistors), como sistema 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 disminuye
significativamente (Ver figura 8.2).

Actividades previas a la práctica

1) El alumno realizará 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 del módulo de comparación de voltaje
integrado en el microcontrolador, además, el circuito debe contar con entrada de calibración
para el voltaje de referencia.

3) El algoritmo debe seguir las siguientes especificaciones:


 El comparador deberá tener su entrada de voltaje a través de la terminal AIN1
(terminal negativa) y su referencia deberá estar conectada a la terminal AIN0
(terminal positiva) con un voltaje de 1.8V. La salida deberá conectarse por
programación al pin de puerto correspondiente, donde deberá estar conectado uno
de los LEDs. La polaridad seleccionada no debe ser negativa.

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

5) Compile el programa con Atmel Studio, corrigiendo los posibles errores.

6) Realice la simulación del sistema de microprocesador, guarde la simulación y entregue una


copia impresa de la misma.

7) Imprima el diagrama de terminales del LED RGB y entréguelo junto con las otras actividades
previas.

8) El alumno deberá traer los circuitos de la práctica previamente armados.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD
1 Multímetro

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

Material

1 Microcontrolador Atmega8
1 Amplificador operacional LM339
1 Fotorresistencias LDR de 2 MΩ (también llamada fotoceldas)
3 Potenciómetros de 10 kΩ
1 Resistencia de 100 kΩ a ½ watt
2 Resistencias de 1 kΩ a ½ watt
2 Resistencias de 330 Ω a ½ watt
1 LED RGB
1 Push button
Tableta de Conexiones
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. Proceda a armar el circuito en la protoboard, como el mostrado en la figura 8.3, tenga


cuidado de que las conexiones correspondan con las terminales de las entradas y salidas de
los comparadores de voltaje indicadas en las actividades previas. Utilice una de las
terminales del LED RGB como LED individual y la terminal común conectada a tierra.

Figura 8.3. Circuito de control de iluminación.

3. Ajuste el potenciómetro para igualar el voltaje de referencia como se indicó en las


actividades previas (1.8v).

4. Acerque una fuente luminosa poco a poco al sensor de luz y, con ayuda del multímetro, mida
el voltaje en el que se produzca un cambio en el LED.

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

5. Repita el punto 4 del desarrollo con la diferencia de que ahora debe comenzar con la
fuente de luz sobre el sensor y después alejarla poco a poco.

6. Incluya fotografías del funcionamiento del circuito.

7. Desconecte la señal de entrada Vin, en su lugar conecte el generador de funciones


con una señal triangular de 5vpp y un offset de 2.5VCD, de modo que no tenga parte
negativa, y una frecuencia de 100Hz.

8. Arme el circuito de la figura 8.4 usando dos comparadores del CI LM339 y utilizando
como entrada la misma señal triangular usada en el punto anterior, conectar las
Cout1 y Cout2 de los comparadores (figura 8.4) a las terminales verde (G) y roja (R)
del LED RGB.

9. Varíe los voltajes de referencia por medio de los tres potenciómetros y con ayuda del
osciloscopio observe las señales de salida de las terminales correspondientes.

10. Anote sus observaciones acerca del comportamiento del LED RGB agregando
fotografías y explique a qué se debe.

Figura 8.4. Circuito con comparadores discretos.

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

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

2) De acuerdo a las mediciones realizadas en los puntos 4 y 5 de la práctica, determine el valor


de resistencia del LDR en el momento de los cambios en el LED.

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étera.

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

Conclusiones

Elabore 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 92
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.

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


y el módulo del ADC del Atmega8 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 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 93
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) El alumno realizará la lectura de la práctica.

2) 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.

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


analógica – digital.

4) El pseudocódigo se puede escribir como :

//Configura Convertidor A/D


//Configurar entrada para selección de escala
//Configura resistencia de PULLUP
//Configura el puerto de salida para pantalla
//Configurar pantalla
//Mostrar textos, según figura 9.2
//Repetir indefinidamente la secuencia:
{
//Leer muestra del Convertidor A/D
//Leer entrada de selección para escala
//Está abierto el SWITCH ?
//No, convierte a grados Kelvin
//Sí, convierte a grados centígrados
//*Considerar las características del sensor(fig.9.3)
//Despliega valor digital, voltaje, temperatura y escala
}

Figura 9.2. Información a mostrar en el display LCD después de la conversión A/D.

5) Compile el programa con Atmel Studio, corrigiendo los posibles errores.

6) Realice la simulación del sistema de microprocesador, guarde la simulación y entregue una


copia impresa de la misma.

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

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

𝐺𝑎𝑛𝑎𝑛𝑐𝑖𝑎[𝐺𝑟𝑎𝑑𝑜𝑠℃(𝐹𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝐸𝑠𝑐𝑎𝑙𝑎)] = 𝑉𝑜𝑙𝑡𝑎𝑗𝑒 𝑑𝑒𝑙 𝐶𝑜𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑜𝑟

𝑚𝑉
5 [100℃ (10 )] = 5𝑉

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

8) El alumno deberá traer el circuito de la práctica previamente armado.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD
1 Multímetro

Material

1 Microcontrolador Atmega8
1 Sensor de temperatura LM35D
1 Display LCD 16x2
1 Amplificador operacional LM358
1 Resistencia de 10 kΩ a ½ watt
1 Resistencia de 330 Ω 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
1 Push button
Tableta de Conexiones
Alambres y cables para conexiones

Práctica 9 95
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. Proceda a armar el circuito en la protoboard, como el mostrado en la figura 9.4, tenga


cuidado de que las conexiones correspondan con las terminales de las entradas y salidas de
los comparadores de voltaje indicadas en las actividades previas.

Figura 9.4. Circuito del termómetro digital.

3. Sin tocar el termómetro digital, anote los datos obtenidos, éstos 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 Kelvin y Rankine, además de los Celsius y Farenheit.

6. Utilizando el termómetro digital, tome 5 mediciones más de temperatura de diferentes


objetos, empleando todas las escalas para cada una, y regístrelas en una tabla donde se
muestren todos los datos obtenidos.

7. Incluya fotografías del funcionamiento del termómetro digital.

Cuestionario.
1) Calcule la ganancia de voltaje del circuito amplificador de la práctica y la resolución del
convertidor A/D empleado.

2) De acuerdo a los resultados de las preguntas anteriores, ¿cuál sería el valor de voltaje de
entrada al microcontrolador si la temperatura fuera de 15⁰C?

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

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 una entrada analógica?

Conclusiones

Elabore 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 97
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á:

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


de pulsos, empleando el temporizador en modo PWM.

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,
determina la anchura de cada pulso. Hay que remarcar que el ancho del pulso es independiente de la
frecuencia de la señal.

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

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 – Ancho de pulso de una señal PWM.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Realice los cálculos necesarios y escriba las instrucciones correspondientes para generar
una señal PWM mediante el microcontrolador Atmega8, con las siguientes características:
frecuencia de 1 kHz y ciclo de trabajo del 30%.

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.

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

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

5) Realice la simulación de todos los puntos del desarrollo experimental, guarde la simulación
y entregue una copia impresa de la misma.

6) Desarrolle un algoritmo que proporcione, de manera automática, el perfil de velocidad


mostrado en la figura 10.3.

Figura 10.3. Perfil de velocidad controlado mediante PWM.

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.

7) El programa también debe permitir seleccionar el sentido de giro del motor por medio de un
selector que controle las señales D1 y D2.

Equipo

1 PC con software instalado:


 Atmel Studio
1 Grabador universal, Arduino o grabador de AVRs
1 Fuente de voltaje de CD
1 Osciloscopio
1 Multímetro

Material

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

Práctica 10 100
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. Proceda a armar el circuito en la protoboard, como el mostrado en la figura 10.4, tenga


cuidado de que la salida corresponda con la terminal de salida del módulo OC (Output
Compare).

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. Circuito generador de señales PWM.

4. Programe nuevamente el microcontrolador, ahora con el programa para producir el perfil de


velocidades.

5. Modifique el armado del circuito para tener el mostrado 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 de control de velocidad para motor de CD.

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

Cuestionario.
1) Si se deseara cambiar la frecuencia de trabajo a 10KHz, con un ciclo del 40%, ¿qué
modificaciones haría en su programa?

2) Si se desea trabajar con otro módulo PWM ¿Qué modificaciones se le tendrían que hacer al
programa principal?

3) Si se deseara variar el ciclo de trabajo de forma externa, ¿qué se debe de hacer?

4) 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 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 102

También podría gustarte