![]() |
microC®
Líder
en la programación de microcontroladores PIC
©2009-2012 |
|
Síguenos en
|
| Inicio | La empresa. Contáctanos
| Cómo comprar
nuestros productos | Ofertas | Recursos | Mapa del sitio | |
| Tacómetro digital - Ejemplo | |
| Tacómetro digital.- El circuito consta de un PIC16F88, una pantalla LCD 2x16 , un sensor tipo herradura GP3S62 de Sharp, y un regulador de 5V/100mA. El Timer0 del PIC trabaja como contador de las transiciones alto-bajo en el pin RA4/T0CKI durante 1 segundo. Este valor corresponde al número de revoluciones por segundo (r.p.s) el cual es transformado a r.p.m y rad/s para su presentación en el LCD. La lectura se actualiza continuamente cada 2 segundos. Se genera una transición cada vez que la ranura en el disco giratorio pasa en frente del emisor de luz, es decir una transición por vuelta. |
![]() |
| Código
en lenguaje C
(mikroC).- //Tacometro.c //El registro OPTION_REG tiene todos sus bits en 1 después del //encendido por lo tanto el Timer0 actúa como contador, //incrementa en transición descendente y el prescaler //está asignado al WDT. //Declaración de las 12 variables necesarias para la conexión //del módulo LCD. sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB6_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit; sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB6_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; // Fin de declaración de variables de conexión. char texto1[7], texto2[7], numflancos=0; int rpm, rads; void main(){ OSCCON=0x40; //Oscilador interno a 1MHz. ANSEL=0x00; //Pines AN<6:0> como E/S digital. Lcd_Init(); //Inicializa el LCD. Lcd_Cmd(_LCD_CLEAR); //Borra el display. Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga el cursor. Lcd_Out(1,1,"TacometroDigital"); Lcd_Out(2,1,"Wmax=15.300 rpm"); Delay_ms(3000); Lcd_Cmd(_LCD_CLEAR); //Borra el display. while (1) { TMR0=0; //Inicializa el registro TMR0. Delay_1sec(); //Cuenta durante 1 segundo. numflancos=TMR0; //numflancos=velocidad en rps. rpm=60*numflancos; //Transformación a rpm. rads=6.28*numflancos; //Transformación a rad/s. IntToStr(rpm,texto1); //Transformación de rpm a texto. Lcd_Out(1,1,"W[rpm]="); Lcd_Out(1,10,texto1); IntToStr(rads,texto2); //Tramsformación de rads a texto. Lcd_Out(2,1,"W[rad/s]="); Lcd_Out(2,10,texto2); Delay_ms(1000); //Espera para la nueva medición. } } Esquema eléctrico del tacómetro.- ![]() |
Si esta
información te ha sido útil
entonces considera la posibilidad de hacer una contribución para microC. Tu apoyo es muy importante para seguir adelante. Muchas gracias. |