Autor Tema: Duda con codigo para sensor efecto Hall  (Leído 4057 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Duda con codigo para sensor efecto Hall
« en: 30 de Octubre de 2011, 17:14:06 »
hola, he mandado a pedir un sensor de efecto hall, el UGN 3503. hoja de datos

Es un sensor lineal, entrega 1.3mV/G.     G=gauss
Cuando no hay presencia de campo magnetico (B=0) su salida es igual a VCC/2.

Como el ADC esta a 8bits la sensibilidad es aprox 19mV y la del sensor es 1.3mV.
La idea por ahora es mostrar el campo magnetico en gauss.
este será el codigo con el que lo probaré. Sin embargo creo que tocará tomar multiples muestras y promediar.

La duda es si la interpretacion del sensor es la correcta. Cuando lo simulo en proteus la variable Gauss siempre muestra cero en el lcd, cual es problema con el tipo de dato de las variables??

Código: [Seleccionar]
#include <18F4550.h>
#DEVICE ADC=8
#FUSES  HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,NOPBADEN,NOVREGEN,NOBROWNOUT
#USE delay(clock=48000000)

#INCLUDE "FLEX_LCD.C"


INT16 ADC=0;
FLOAT VO_SENSOR=0;
FLOAT GAUSS=0;
VOID MAIN()
{
SETUP_ADC(ADC_CLOCK_INTERNAL|VSS_VDD);
SETUP_ADC_PORTS(AN0);

LCD_INIT();


WHILE (TRUE)
   {
   SET_ADC_CHANNEL(0);
   ADC=READ_ADC();
   LCD_GOTOXY(1,1);
   VO_SENSOR=(ADC*(5.0/255.0));                      //voltaje entragado por el sensor
   GAUSS=((VO_SENSOR-2.5)*(1.3/1000.0));        //al voltaje del sensor le resto 2.5V(cuando B=0) y luego multiplico por la sensibildad del sensor
   
   PRINTF(LCD_PUTC,"%f",VO_SENSOR);
   LCD_GOTOXY(1,2);
   PRINTF(LCD_PUTC,"%f",GAUSS);
   
   }
}
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda con codigo para sensor efecto Hall
« Respuesta #1 en: 30 de Octubre de 2011, 18:20:45 »
kizas sea porque el float es muy pekeño y solo te muestra como mucho 2 digitos despues de la coma.

Tendrias que poner "%2.5f" este te muestra 2 digitos antes de la coma, y 5 digitos despues de esta.

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re: Duda con codigo para sensor efecto Hall
« Respuesta #2 en: 30 de Octubre de 2011, 18:32:28 »
Entiendo que este sensor es simetrico, o sea que puede ir de 1/2 de Vcc a 0 o tambien de 1/2 de Vcc a Vcc, dependiendo de la polaridad del campo magnetico. Si presentas un polo sur a la cara serigrafiada ira a Vcc y si es un polo norte entonces ira a 0. Logicamente dependiendo de la intensidad del campo magnetico podra tener valores intermedios.
Personalmente pondria un operacional de buena calidad, preferiblemente de instrumentacion, para adaptar le señal y de ese modo jugando con la ganancia del OP, tener una division de Vcc por gauss, o sea 19,4 mV./Gauss. Asi te evitas las conversiones por software que no te van a  dar la misma precision y si muchos problemas.

Saludos.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Duda con codigo para sensor efecto Hall
« Respuesta #3 en: 30 de Octubre de 2011, 19:31:42 »
si tendre que probarlo en fisico, habrá que considerar amplificar la señal.
Por otro lado, pienso que me he equivocado en el calculo, en el programa multiplico por 1.3mV. Lo que debo hacer es dividir por 1.3mV.

Corrigiendo lo anterior en el programa, se tiene:
Supongamos que tengo un iman de campo magnetico G=100 gauss. Esto segun el sensor seria un señal de salida V=2.5v + 0.13v= 2.63V.  Ahora en el LCD se muestra 98.03 gauss. Esperaré a que llegue el sensor a ver si esa medida se acerca mas al 100

Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda con codigo para sensor efecto Hall
« Respuesta #4 en: 30 de Octubre de 2011, 21:08:15 »
((VO_SENSOR-2.5)*(1.3/1000.0));

vo_sensor-2.5*0.0013

cualquier resultado que te de VO-2.5 sera muy bajo ya que lo multiplicas por 0.0013, no te habras confundido en esto?