tecmikro logo
Programación de microcontroladores PIC en mikroC PRO
Email: tecmikro@gmail.com   Cel. 098 743 8877   Telf. 243 0352 Quito-Ecuador


Tacómetro digital con microcontrolador PIC

 

Tacómetro digital con pic

El tacómetro digital con PIC 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.

Ejemplo en mikroC PRO con el PIC16F88

//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 digital con PIC

Circuito de un tacómetro digital con PIC
Información complementaria

 


eBook en formato PDF "Cómo programar microcontroladores PIC"

Guía básica para programar microcontroladores PIC en mikroC PRO. Disponible en formato PDF. A la venta por tan sólo US$12.00

¡Cómpralo ya!