En este capítulo no vamos a explicar ningún módulo interno del microcontrolador de la familia PIC, sino que vamos a usar un dispositivo externo y aplicar los conocimientos ya expuestos. En este caso, vamos a mostrar como trabajar con un Zumbador o Buzzer PASIVO.
Un zumbador o buzzer es un dispositivo externo que emite sonidos, no podremos reproducir música por ejemplo, solo tonos. Ahora bien, existen dos tipos de buzzer:
· Buzzer ACTIVO: Esta clase de zumbador, emite sonido cuando lo conectamos directamente a la fuente de alimentación.
· Buzzer PASIVO: En cambio, esta clase de zumbador, solo emite sonido si lo excitamos mediante un tren de pulsos.
El ejemplo que vamos a presentar aquí, consiste en un Buzzer PASIVO, y el programa que vamos a desarrollar consistirá en hacer sonar tres Beep, cada tres segundos.
Bien, el microcontrolador elegido en esta ocasión es el PIC18LF4550, y usaremos el módulo interno Timer1 para que supervise dos acciones:
· Acción 1: Generar retraso de tres segundos.
· Acción 2: Generar tres Beep.
En realidad, configuraremos el módulo Timer1 en modo timer de 16-bits y que produzca una interrupción cada, aproximadamente 50 ms, usaremos una variable contador para ajustar los tres segundos deseados. Una vez haya transcurrido los tres segundos, empezaremos a emitir los tres beep.
El resto del tiempo, el microcontrolador PIC18LF4550 estará en modo IDLE ( bajo consumo ).
El material que vamos a necesitar y su función, es la que se muestra a continuación:
· PIC18LF4550: Microcontrolador para este programa.
· Protoboard: Donde insertaremos nuestros componentes.
· PICKIT 3: Programador y depurador necesario para programar el código.
· Transistor NPN: Un transistor NPN de propósito general, en nuestro caso C9013.
· Resistor 220 Ω: Se conectará al pin RD2 ( tres de pulsos ) y a la base del transistor NPN.
· Resistor 4.7 kΩ: Un resistor que irá conectado entre los pines #MCLR y VDD.
· Buzzer Pasivo: Un zumbador del tipo PASIVO que irá conectado su pin positivo a la fuente de alimentación y el pin negativo al pin colector del transistor.
El firmware es el que se muestra a continuación:
/** * @file main.c * @author Manuel Caballero * @date 14/3/2015 * @brief Archivo principal. * \copyright * AqueronteBlog@gmail.com * * Este archivo es propiedad intelectual del blog Aqueronte, * cuya direccion web, es la siguiente: * * http://unbarquero.blogspot.com/ * * Se permite cualquier modificacion del archivo siempre y cuando * se mantenga la autoria del autor. */ #include < xc.h > #include < stdint.h > #include "variables.h" #include "functions.h" #include "interrupts.h" /** * \brief void main( void ) * \details Este programa consiste en mostrar como funciona un Buzzer o * zumbador PASIVO. * * En este caso, el programa consiste en hacer sonar el buzzer PASIVO * mediante tres Beep breves cada aproximadamente, 3 segundos. * * Se usará el módulo Timer1, 16-bits, para gestionar tanto el * tiempo 3 segundos deseado como los tres Beep del buzzer PASIVO. * * El microcontrolador estará en modo bajo consumo Idle hasta que * no se produzca una interrupción del Timer1. * * * \author Manuel Caballero * \version 0.0 * \date 14/3/2015 * \pre Este firmware está probado para el PIC18LF4550. * * \pre MPLAB X IDE v2.35. * \pre Compiler XC8 v1.33. */ void main( void ) { uint8_t var3seg = 0; /**< Variable contador que junto al Timer1 nos permite contabilizar 3 s */ uint8_t var3beep = 0; /**< Variable contador que junto al Timer1 nos permite realizar tres Beep */ conf_CLK (); // Configura Relojes conf_IO (); // Configura I/O conf_TA1 (); // Configura Timer1 INTCONbits.PEIE = 1; // Peripheral Interrupt Enable ei (); // enable interrupts do{ SLEEP(); // uC modo IDLE if ( var3seg == 60 && var3beep < 6 ) { // Tres Beep cada 3 segundos LATDbits.LD2 = ~LATDbits.LD2; var3beep++; } else { if ( var3beep > 5 ) { // Reset variables ( vuelta a empezar! ) var3beep = 0; var3seg = 0; } var3seg++; } } while ( 1 ); }
Como vemos, el ejemplo es bastante simple, se recomienda bajar los archivos disponibles más abajo para indagar entre sus librerías y leer sus funciones de manera más detallada.
Un vídeo que demuestra lo explicado anteriormente se presenta a continuación:
Os pongo a vuestra disposición el programa en lenguaje C (XC8 y CCS) para que lo podáis descargar y probar:
Microchip PIC: PIC18LF4550 + Zumbador Pasivo + Beep | |||||||||||||
Compilador XC8 | Compilador CCS | ||||||||||||
C | C | ||||||||||||
|
|
· NOTA 1: Lo comentarios están en formato doxygen. Aunque no se entrega dicha documentación ya que el MPLAB X no tiene ningún pulgin capaz de trabajar con dicho formato.
0 comentarios:
Publicar un comentario