¿Cómo hacer una lectura de pulsos? Labview + Arduino

Hola a todos, estoy trabajando por primera ves con estas plataformas "Labview y Arduino", es un pequeño proyecto de laboratorio con el cual trato de demostrar y comparar perdidas por los accesorios mas comunes usados en las tuberías de PVC, tengo conectado varios sensores de presión los cuales leo he interpreto correctamente "muy facil", el problema surge con un sensor de caudal el cual funciona con pulsos, y la verdad nunca he trabajado con un sensor de este tipo, quisiera saber como usar este tipo de sensor, ojala en el mismo labview.

gracias por su cooperación!
 
deberias poner lo que tienes hasta ahora y el modelo del sensor para que alguien te pueda orientar mejor.
 
hola nuyel, pues el sensor no lo tengo, la idea es usar este: www seeedstudio com/wiki/G3/4_Water_Flow_sensor
de momento estoy tratando de aprender a usar o leer los pulsos, lo estoy haciendo con un foto ransistores "emisor reseptor" y usando un motor de 5v con un potenciometro para generar los pulsos, pero nada, visualizar los pulsos con labview es sencillo pero usarlos o tratar de analizarlos es muy complicado o mejor dicho no tengo idea de como se hara:confused:
 

Adjuntos

  • Captura de pantalla (5).jpg
    Captura de pantalla (5).jpg
    50.8 KB · Visitas: 42
hola nuyel, pues el sensor no lo tengo, la idea es usar este: www seeedstudio com/wiki/G3/4_Water_Flow_sensor
de momento estoy tratando de aprender a usar o leer los pulsos, lo estoy haciendo con un foto ransistores "emisor reseptor" y usando un motor de 5v con un potenciometro para generar los pulsos, pero nada, visualizar los pulsos con labview es sencillo pero usarlos o tratar de analizarlos es muy complicado o mejor dicho no tengo idea de como se hara:confused:

Lo que hay que hacer es primero calibrar el sensor de fujo, ¿Como? muy facil, tienes que hacer un algortimo del cual cuente los pulsos que hay en un litro, pero para evitar errores, llena un bote de 20 litros y cuenta todos los pulsos, al tener todos los pulsos entonces solo divide todos los pulsos entre 20 (litros) y te dara los pulsos en un litro y grabalo permanentemente.

Te paso un codigo que realice para ello en un microcontrolador 16f628:



Código:
///Calibracion de Pulsos
void config_pulses(void){
	unsigned char flag=0;
	pulses=0;
	lcd_gotoxy(1,1);
	printf(lcd_putc,"\fSalir<START>");
	lcd_gotoxy(1,2);
	printf(lcd_putc,"C.Pulsos= ");
	while((!START_BUTTON && !PIN_ACCEPTED && !PIN_PLUS));
	while(!START_BUTTON){	
		if(PIN_ACCEPTED==1){
			pulses++;
		}
		if(PIN_PLUS==1){
			pulses=pulses+10;
		}
		lcd_gotoxy(10,2);
		printf(lcd_putc,"%Lu",pulses);
		delay_ms(250);
		flag=1;
	}
	if(flag==1){
		write_eeprom(0,0x00);
		write_eeprom(1,0x00);
		write_eeprom(2,0x00);
		write_eeprom(3,0x00);
		write_eeprom(0,make8(pulses,0));
		write_eeprom(1,make8(pulses,1));
		write_eeprom(2,make8(pulses,2));
		write_eeprom(3,make8(pulses,3));
	}
}

Código:
//Funcion de proceso donde se va a realizar
//La tarea de cubrir los vertimientos
void process(unsigned long Liters_Max,unsigned long Vertminets){
	unsigned long index;
	unsigned long pin_counter_variable=0;
	unsigned long liters=0;
	unsigned long Numbers_Vertiments_per_Liter=0;
	int32 aux_pulses=make32(read_eeprom(3),read_eeprom(2),read_eeprom(1),read_eeprom(0));
	Numbers_Vertiments_per_Liter=(long)(Liters_Max/Vertminets);	//#V*L=LITROSMAX_TANQUES/#VERTIMIENTOS
	lcd_gotoxy(1,1);											//
	printf(lcd_putc,"\fLitros=%Lu,",Liters_Max);					//MUESTRA LITROS TOTAL DEL TANQUE
	lcd_gotoxy(1,2);											//
	printf(lcd_putc,"Verti=%Lu,",Vertminets);					//MUESTRA # DE VERTIMIENTOS
	for(index=1;index<=Vertminets;index++){						//CICLO FOR HASTA LLEGAR AL NUMERO	
		while(!START_BUTTON) continue;							//DE VERTIMIENTOS
		START_BOMB;												//EMPEZAR BOMBA? START BOMBA
		while(TRUE){
			if(PIN_COUNTER==1){									//ENCODER START
				pin_counter_variable++;							//1 LITRO?
				if(pin_counter_variable>aux_pulses){
					liters++;									//LITROS++
					pin_counter_variable=0;						
					lcd_gotoxy(12,1);				
					printf(lcd_putc,"%Lu ",liters);				//SHOW LITROS
					if(liters>=(Numbers_Vertiments_per_Liter*index)){//LITROS >=#V*Lx#Actual
						STOP_BOMB;								//STOP BOMBA
						break;									//SALE DE CICLO WHILE
					}
				}
				while(PIN_COUNTER)continue;
			}
		}
		lcd_gotoxy(12,2);
		printf(lcd_putc,"%Lu",index);
	}
}

Saludos!
 
Hola, george.manson.69 gracias, espero poner a prueba tu ayuda, pero eso sera hasta mañana que llegue el sensor. pero me sigue la duda al momento de adaptarlo a labview
 
Última edición por un moderador:
Hola, george.manson.69 gracias, espero poner a prueba tu ayuda, pero eso sera hasta mañana que llegue el sensor. pero me sigue la duda al momento de adaptarlo a labview

Usa el Serial para transmitir datos, ¿Sabes usar labview? Si es asi, entonces sera muy facil implementar la comunicacion seria en labview yo tengo ejemplo del cual te pasare una liga donde puedes bajar la info:

http://www.mediafire.com/download/cry802zc225rn3e/Curso+de+Labview+y+PIC16.zip

http://ucursos.blogspot.mx/2013/07/practicas-con-microcontroladores-pic.html

Ahí baja el manual y habrá ejemplos para el uso del serial con el microcontrolador y labview.

Saludos!
 
hola, de nuevo, no tengo problemas para comunicar el labview al arduino, el problema es al momento de implementar el sensor de flujo ya que no se como determinar la frecuencia de los pulsos del sensor, esto es es lo ultimo que hice sera que esta bien?
 

Adjuntos

  • Captura de pantalla (6).jpg
    Captura de pantalla (6).jpg
    76.9 KB · Visitas: 22
Atrás
Arriba