TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Chenao en 07 de Agosto de 2016, 16:51:26

Título: Dudas con el Modulo A/D Hx711
Publicado por: Chenao en 07 de Agosto de 2016, 16:51:26
Buena tarde

Chicos en días pasados me puse en la tarea de poner a funcionar el modulito HX711, el cual es un conversor A/D de 24bits con entrada diferencial. La ganancia del canal según la hoja de datos es configurable.

Ahora he adaptado el código que entrega el fabricante para PIC16F877 (pdf https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf (https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf)), el cual se enseña a continuación:

Código: [Seleccionar]
#if defined(__PCM__)
#include <16f877.h>
#fuses XT, NOWDT, NOPROTECT, NOLVP, PUT, BROWNOUT
#use delay(clock = 4000000)      // Fosc = 4MHz
#define use_portb_lcd TRUE      // Puerto B para el manejo de la LCD
#include <lcd420.c>            // Libreria de manejo de la LCD
#BIT ADDO = 0X08.0   // 0x08 = Puerto D, posicion en el banco de memoria
#BIT ADSK = 0X08.1

 
unsigned int32 ReadCount(void){
   unsigned int32 Count;
   unsigned char i;
   // Condición inicial
   set_tris_d(0xfc); // 1111 1100
   ADDO=1;
   ADSK=0;
   set_tris_d(0xfd); // 1111 1101
   Count=0;
   while(ADDO);
  // Empieza el proceso de conversión
   for (i=0;i<24;i++){
   ADSK=1;
   Count=Count<<1;
   ADSK=0;
   if(ADDO) Count++;
   }
   ADSK=1;
   Count=Count^0x800000;
   ADSK=0;
   return(Count);
   }
 
void main()
{
   unsigned int32 power=1000;
   set_tris_c(0xFE);
   set_tris_d(0XFE);
   
  do
    {
      power = ReadCount();
      lcd_init();                   // Se imicializa la lcd
      lcd_gotoxy(5,1);         // Se ubica en la posición X = 5 Y = 1
      printf(lcd_putc,"fuerza=");      // Se escibe en la LCD MICROCHIP   
      lcd_gotoxy(5,2);
      printf(lcd_putc,"%Lu",power);
      //delay_ms(1000);         
      //output_high(PIN_C0);            // Led de Testeo si retorna de la conversión.
      //delay_ms(1000);
      //output_low(PIN_C0);
    }
  while(true);            // Bucle infinito
}



Para validar el funcionamiento estoy utilizando un sensor de presión A201-25LBS-4, el cual, le adapté el siguiente circuito de acondicionamiento http://www.sigmaelectronica.net/docs/FLX-Flexiforce-Calibration-QuickStart.pdf (http://www.sigmaelectronica.net/docs/FLX-Flexiforce-Calibration-QuickStart.pdf), la idea es articular esta etapa con el modulo HX711, para ello he conectado la salida del amplificador a terminal A+ del Hx711 y la referencia la conecto al terminal A-, la idea es detectar los pequeño cambios de voltaje en la salida del amplificador cuando el sensor experimenta una carga dinámica.

El problema que tengo principalmente es el siguiente: Cuando conecto el sensor al sistema de captura, el visualizador empieza a indicar signos extraños (caracteres de tipo char) acompañado de reseteo en la LCD (parpadeo y borrado de información).

Si alguno de los compañeros tiene alguna sugerencia (basada en la experiencia, algún error detectado) para resolver el inconveniente se los agradecería. Quedo pendiente a cualquier tipo de comentario.

Saludos.   
Título: Re:Dudas con el Modulo A/D Hx711
Publicado por: KILLERJC en 07 de Agosto de 2016, 16:54:55
tenes el :

      lcd_init();                   // Se imicializa la lcd


Dentro del do while.. Sacalo afuera. Eso se debe ejecutar solamente 1 ves (despues de los tris ponelo).
Título: Re:Dudas con el Modulo A/D Hx711
Publicado por: Chenao en 07 de Agosto de 2016, 17:00:19
Gracias por responder Killer mañana pruebo y comento los resultados.
Título: Re:Dudas con el Modulo A/D Hx711
Publicado por: Chenao en 09 de Agosto de 2016, 23:30:36
Buena noche

Killer he realizado la prueba sin éxito alguno, intenté volviendo a dejar esa línea donde estaba y poniendo la librería lcd.c en vez de la lcd24.c  la pantalla ya está como más estable. Aunque los números siguen sin ser lógicos.

Por si las moscas adjunto el diagrama de circuito que estoy utilizando, es de notar que en este caso la entrada diferencial del HX711 se conecta así, A+ a la salida del amplificador operacional y A- a la referencia (no se si esto en equivocado). Agradezco cualquier sugerencia.

 - Tienes que ingresar para ver archivos adjuntos -

Saludos.
Título: Re:Dudas con el Modulo A/D Hx711
Publicado por: toresila en 21 de Agosto de 2016, 01:23:26
saludos yo tengo problemas con el pic soy super novato pero de la imagen creo que no te funciona por el operacional sustitúyelo por resistores