19
Instituto Tecnológico de Orizaba Sistemas Programables Practica No 7 Cristian Ivan Huerta Rojas Miguel Ángel Merino Martínez David Hernández Zúñiga

Practica, uso de interrupciones y del Timer0 en el microcontrolador PIC16LF1936

Embed Size (px)

DESCRIPTION

Reporte de practica de la materia de sistemas programables, programación del microcontrolador PIC16LF1936 utilizando interrupciones, y el timer 0.

Citation preview

  • Instituto Tecnolgico de Orizaba

    Sistemas Programables Practica No 7

    Cristian Ivan Huerta Rojas Miguel ngel Merino Martnez David Hernndez Ziga

  • Prctica No. 7

    Nombre: Uso de timer e interrupciones

    Introduccin:

    Materiales y equipo:

    1. Computadora con Windows xp, 7 o 8

    2. MPLAB-X instalado

    3. XC8

    4. Display de 7 segmentos

    5. Led RGB

    6. PIC16LF1936

    7. Circuito de prctica No. 1

    8. Buzzer de 38 Khz.

    Metodologa:

    1.- Elaborar programa para controlar el ingreso a un estacionamiento, cada vez que un auto

    intente ingresar al estacionamiento el programa verificara si quedan espacios, (considerar

    estacionamiento con 9 lugares disponibles, Utilizando el sensor ptico determinar cundo un auto

    intenta ingresas al estacionamiento, si existen lugares ingresara se encender un led en verde

    abriendo una palanca para dejar pasar el auto mantenindola por 30 segundos y regresndola a la

    posicin original, la palanca puede estar controlada por un motor de dc que o un servo motor o un

    motor a pasos y contara cuantos lugares estn disponibles desplegando la salida en un display de 7

    segmentos, en caso contrario no se contara, Cuando ingrese un auto y con este llene el

    estacionamiento se encender un led en rojo indicando que ya no quedan lugares en el

    estacionamiento. Cuando un auto salga el contador se incrementara, la salida de un auto se

    registrara por un push button u otro sensor ptico, de igual forma el resultado se desplegara en el

    display de 7 segmentos del circuito.

  • 2.- Elaborar programa para controlar semforo con 3 luces (Verde, Amarillo, Rojo) Considere que

    el verde deba tardar 30 segundos, despus parpadear durante 5 segundos y pasar a amarillo

    dejndolo 4 segundos y pasar a rojo dejndolo en 15 segundos, Repetir el proceso de forma

    infinita. Se tiene que utilizar un solo led RGB y el timer0.

  • 3.- Modificar el programa anterior para incorporar el circuito de la practica 2 que se utilizar para

    determinar el funcionamiento del semforo, cuando detecto obscuridad deber el semforo pasar

    a modo nocturno (amarillo parpadeando) en caso contrario funcionara de forma como se indic

    en el ejercicio anterior.

    En este programa se volvi a utilizar el programa del semforo solo se agregaron los siguientes

    cambios:

  • 4.- Revisa el programa que se les proporciona, este programa reproduce sonido, en este caso si lo

    programas y conectas la bocina en el puerto RA0, escucharas la cancin de martinillo. Busca una

    partitura de alguna meloda y modifica el programa segn la partitura cada nota tiene un tiempo

    de duracin. La rutina play ejecuta una nota en un tiempo determinado en una octava utilizando el

    timer1, el primer argumento es la nota, el segundo es la octava y el tercero el tiempo (1000) es un

    tiempo (500) medio tiempo, (250) de tiempo y (125) 1/8 de tiempo.

    La cancin o partitura que buscamos para poder reproducir un sonido a travs del buzzer fue la

    cancin de flauta de pan.

    La funcin es la siguiente:

  • Observaciones:

    Aqu debes describir todas las observaciones realizadas, puedes anexar, imgenes, fotos, grficos,

    etc.

    En esta prctica observamos que el microcontrolador puede controlar al mismo tiempo muchos de

    los dispositivos que se le conectan y llevar a cabo tareas casi simultneamente como se vio en el

    ejercicio 1 donde el microcontrolador reciba informacin de un sensor y en base a esta informacin

    hacia encender un LED un motor e inclusive hacer encender un display de 7 segmentos, adems de

    observar cmo el microcontrolador se comportaba cuando suceda una interrupcin, notamos que

    al suceder esta interrupcin el microcontrolador dejaba por un momento la tarea que estaba

    realizando y al terminar la interrupcin regresaba a realizar la tarea que estaba haciendo,

    justamente como sucede en el ejercicio del semforo con el sensor de luz LDR, en donde al detectar

    una sombra el sensor provocaba una interrupcin especficamente la interrupcin para ejecutar el

    modo nocturno y una vez que retiramos la sombra el microcontrolador regresaba a su

    comportamiento normal que era controlar el funcionamiento del LED RGB como un semforo,

    tambin observamos que para hacer encender un LED RGB y un display de 7 segmentos de nodo

  • comn es necesario que los nodos estn conectados a la corriente y enviarle desde el

    microcontrolador un 0 a los ctodos para encender ya sea el display de 7 segmentos o el LED RGB.

    Algo parecido sucedi cuando observamos el funcionamiento del circuito del estacionamiento ya

    que mientras el microcontrolador se mantena sin hacer nada ms que solo controlar el display de

    7 segmentos y encender el LED verde, si el sensor CNY-70 detectaba algo este enviaba una seal

    que hacia activar la interrupcin externa y llamar a una funcin para hacer girar el motor, adems

    para poder hacer funcionar el motor a pasos se necesitaba que se llevara a cabo muchos pasos para

    que el motor girara, ya que porcada paso que se daba el motor se mova de una forma lenta.

    Notamos que en los programas no se necesitaba de llamar a la rutina de interrupcin ya que esta se

    ejecutara siempre y cuando se activara una interrupcin.

    Otras de las cosas importantes que pudimos notar es que no siempre es bueno utilizar los

    __delay_ms() para realizar retardos ya que al realizar el retardo hacia que el microcontrolador se

    mantuviera esttico y desperdiciar tiempo que podra aprovechar para realizar alguna otra cosa,

    entonces para eso estaba el timer 0 y al aplicarlo en los ejercicios de esta prctica observamos que

    los retardos que se realizaban gracias al timer como temporizador hacia el mismo funcionamiento

    que el uso de los __delay_ms(). Tambin otra cosa que notamos y que nos llam la atencin fue el

    uso que se le daba al timer para poder reproducir sonido y mediante el uso de un buzzer poder or

    una meloda o tono.

  • Cuestionario:

    1.- Como controlaras un cruce de 3 semaforos donde uno tiene el control para dar vuelta.

    Considerar que cada luz es un led distinto, como utilizaras solo el puerto B (8 bits) para controlar

    todas las luces (10 luces).

    Para controlar el cruce lo que hara sera conectar 2 de los semforos en paralelo y el tercer

    semforo que es que se encargara para dar la vuelta dejarlo de manera individual, entonces para

    controlar los semforos que estn conectados en paralelo simplemente por estar en paralelo se les

    enva una seal ya sea para encender y mantener durante cierto tiempo el color verde, el parpadeo

    del color verde, el color amarillo y el rojo, esto har que ambos lleven a cabo el mismo

    funcionamiento. Mientras tanto el semforo que sirve para dar vuelta simplemente al estar de

    manera individual el microcontrolador le enviara una seal en el mismo puerto B para llevar a cabo

    el control de cuando se debe dar de vuelta. Todo se har en el mismo B solo que a tres bits se les

    enviara una seal para hacer funcionar los semforos en paralelo y otros tres bits para enviar otra

    seal para hacer funcionar el semforo para dar vuelta

    El puerto B lo utilizara de la siguiente forma:

    // Estos sern los pines en donde estarn conectados los dos semforos en paralelo

    TRISB = 0b00000000; // los bits marcados de azul es en donde sern conectados los semforos en

    // paralelo, y los bits marcados en color verde sern usados para controlar

    // el semforo para dar la vuelta

    Fuentes de informacin:

    1. Manual de MPLAB +

    http://ww1.microchip.com/downloads/en/DeviceDoc/52027a.pdf

    Conclusiones y reflexiones personales:

    Aqu deben agregar la conclusin llegada como equipo y las reflexiones personales sobre lo logrado

    en la prctica.

    Conclusin

    En esta prctica hemos llegado a la conclusin de que el uso de las interrupciones nos permite

    ciertos beneficios a la hora de llevar acabo ciertos proyectos en donde si ocurre algn evento

    inesperado sea atendido por el microcontrolador y al terminar de atender este evento regrese a su

    realizar su tarea que normalmente realizaba. Ya que muchas de las veces se requiere que el

    microcontrolador no solo este ocupado en controlar o llevar a cabo una sola tarea sino tambin que

    atienda otras tareas o eventos que puedan ocurrir durante su funcionamiento.

    Adems de que no siempre se requiere que el microcontrolador se quede esttico cuando se desea

    realizar un retardo que pueda durar muchos segundos, minutos, horas o inclusive das, es ah en

  • donde entran los timers especficamente el timer 0 ya que al configurarse de manera apropiada

    puede funcionar como temporizador que pueda llevar a cabo el clculo del tiempo ya sea para

    realizar un retardo para encender una lmpara, LED, u otras luces, e inclusive si despus de cierto

    tiempo que lleve el timer 0 provocar una interrupcin.

    Reflexiones

    Cristian Ivan Huerta Rojas

    Como reflexin puedo decir que haber realizado esta prctica me dejo ms en claro que un

    microcontrolador es capaza de realizar otro tipo de funciones y no solo las de prender unos cuantos

    LED, sino inclusive realizar llevar a cabo otras funciones como las interrupciones y el uso del timer

    0, hasta antes de esta prctica no tena conocimiento de lo que era una interrupcin y mucho menos

    sabia como para que pudiera servir un timer 0, pero al aplicar estos dos conceptos en esta prctica

    me dejo ms en claro cmo como es el funcionamiento de una interrupcin y de un timer 0, adems

    de darme cuenta que se pueden aplicar para muchos proyectos lleve un microcontrolador. Tambin

    me dejo un aprendizaje ya que pude observar cmo funciona un display de 7 segmentos, como

    simplemente enviando una seal alta (1) a cada uno de los segmentos del display es suficiente para

    formar un numero o una letra, adems tambin pude observar de manera real el funcionamiento

    de un motor a pasos y como con la ayuda de los circuitos de las practicas anteriores fueron suficiente

    para mover un moto o incluso aprovechar la seal que capturaba el sensor para envirselo al

    microcontrolador.

    Miguel ngel Merino Martnez

    Para amar el circuito, y ver las interrupciones fueron lo ms complicado que tuve que leer as como,

    leer cmo manejar un motor a pasos que siento que para m se me complico ms, fue una gran

    experiencia aprender todo esto ya que hay algunos trabajos en los que se puede aplicar bastante

    bien.

    David Hernndez Ziga

    En esta prctica pudimos seguir con la herramienta MPLAB-X para crear los programas, as como

    ocupamos un display de 7 segmentos que nos fue til para el ejercicio del estacionamiento, en esta

    prctica nos fue til la practica 1, ya que ocupamos el sensor ptico, pudimos checar el

    procesamiento mediante un motor a pasos bipolar as hacia un proceso para moverse y regresar a

    su posicin original, entonces el display cambiaba el nmero, en el ejercicio siguiente igual se ocup

    la misma herramienta para realizar el programa, su funcionamiento del RGB fue bueno y realizaba

    bien el proceso, despus el siguiente ejercicio si se pona en modo nocturno el led a la hora de darle

    sombra, y en el ltimo ejercicio aunque el proceso del sonido iba un poco lento si se comprendan

    las notas, fue algo complejo pero con ayuda del datasheet y practicas anteriores se realiz

    correctamente.