En este grupo En todos

Grupo de Electricidad y electrónica



CONTADOR DE PULSACIONES EN PIC

Edward
Sincronizacion electronica de vehiculo...
Escrito por Edward Rodriguez Santos
el 10/10/2010

Masters, necesito su opinion e ideas de programacion en c; se me ocurre hacer una aplicacion del pic en la que voy a contar las pulsaciones que yo realice en un pulsador y me las va a mostrar en una lcd o dysplay siete segementos. Basicamente es eso; la aplicacion para esto podria ser un contador de botellas o productos que pasan por una banda transportadora o que tal contar personas.

de antemano compañeros, muchas gracias...

Martín G B
Ingenieria mecatronica instituto tecno...
Escrito por Martín G B
el 10/10/2010

Ya sabes que microcontrolador utilizar? , sino yo podria ayudarte usando el microcontrolador 16f877a en el lenguaje C, usando una lcd de 16x2, tal vez deberias entrar al grupo de microcontroladores PIC sigue el enlace: https://grupos.emagister.com/microcontroladores_pic/21492 ahi encontraras dos imágenes que subí donde muestra el uso de la LCD con el PIC mencionado, checalo y me comentas si te parece buena idea.

Edward Rodriguez Santos
Sincronizacion electronica de vehiculo...
Escrito por Edward Rodriguez Santos
el 10/10/2010

Martin muchas gracias, la verdad pretendo utilizar el 18f2550 que es mas robusto y con el que ahora cuento; la lcd la tengo de otros proyectos anteriores... Lo que pasa es que para esta idea no se si usar contadores o auxiliares en c. No me puedes ayudar por ahi?...

Martín G B
Ingenieria mecatronica instituto tecno...
Escrito por Martín G B
el 14/10/2010

Mira lo que yo haria, es utilizar la señal del pulsador y meterla en la entrada del convertidor analogico digital del PIC que para el tuyo es el pin 2 o AN0

Mira lo que yo haría, es utilizar la señal del pulsador y meterla en la entrada del convertidor analógico digital (ADC) del PIC que para el tuyo me parece es el pin 2 o (AN0) y podrías probar este código que a mí me ha funcionado para captar pulsos similares e imprimirlos en la LCD, compara el código con lo que tu estas familiarizado y estamos en contacto.

#include <16f877A. H> //tipo de procesador o pic

#device ADC=10 //libreria de funciones del convertidor

#fuses XT,NOWDT,NOPROTECT,NOLVP

#use delay (clock=4000000) //reloj=4MHz es el valor del cristal externo

#include <lcd. C> //libreria para la LCD para el 16f877 lo habilita en puerto D

float a1; // variable donde se asignara el pulso de entrada

void inicializa (void);

void lee_canal (void); //definicion de funciones principales a usar

void envia_dato(void);

void main () {

inicializa (); //funciones

while (1) {

lee_canal(); // inicializacion del ciclo. Mientras 1 se ejecutan las funciones

envia_dato(); // lee_canal y envía_dato

}

}

void inicializa (void) {

lcd_init();

setup_adc_ports(RA0_analog); //configura entrada CAD AN0

setup_ADC(ADC_CLOCK_DIV_32);

}

void lee_canal(void)

{

set_adc_channel(0); //indica el canal a leer en este momento

a1=read_adc(); //asigna a la variable el valor de funcion

delay_ms(40);

a1=(a1*5)/1024); //asigna valor final de la variable (las operaciones son un arreglo para el valor antes de mandarlo a imprimir)

A1=a1+1; // debes checar si asi te arroja el valor que deseas y si no ir modificando esta parte para que imprima el valor que quieras

}

void envia_dato(void) {

//se imprimen los datos en LCD

lcd_gotoxy(1,1);

printf(lcd_putc," PULSOS");

printf(lcd_putc,"\n%0. 1f ", a1) }

simplemente lo que debes hacer es jugar con la variable "a1" que es la que contendrá los pulsos recibidos y hacer operaciones con ella antes de imprimir

Edward Rodriguez Santos
Sincronizacion electronica de vehiculo...
Escrito por Edward Rodriguez Santos
el 14/10/2010

Vamos a probar a ver martin... Me demoro porque estoy en otros trabajos pero te cuento luego.... Gracias