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), el cual se enseña a continuación:
#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, 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.