Hola,
Como menciona Mglsoft, el ajuste de offset y span te permite maximizar el rango del convertidor AD, y por lo tanto maximimizar la resolución.
No se exactamente los voltajes que tenes a la salida del amplificador de celda, pero hagamos un ejemplo. Si tenés una celda de 5Kgs de capacidad, y tu convertidor AD tiene un rango de entrada de 0..5V. Lo ideal sería que con el máximo peso que piensas medir obtengas 4,95V (siempre un poco menor que la maxima tension de entrada). Como tampoco conviene sobrepasar la capacidad de la celda, vamos a suponer que tu máximo peso es de 4.0Kgs.
Ahora bien teniendo el ajuste de offset y span el procedimiento sería así:
Sin peso sobre la balanza se ajusta el offset hasta que la salida del amplificador de celda sea igual a 0. Por lo general el peso no se transmite directamente a la celda, sino que se hace a traves de alguna plataforma (este excedente de peso es el que se anula con el offset).
Ahora se pone una pesa patrón (por lo general aconsejan utilizar un 60% de la capacidad), suponiendo que la pesa patron sea de 4Kgs. Se ajusta el span hasta obtener un voltaje un poco menor al máximo del convertidor AD, en nuestro caso 4,95V.
De esta forma nos aseguramos que todo el rango de entrada del AD se corresponda al rango de peso para obtener la máxima resolución.
Estos ajustes se realizan para compensar diferencias de manufactura o mecanizado de las piezas, y diferentes tolerancias de los componentes electrónicos. Pero si tenés la certeza de que las piezas son fabricadas en serie con tolerancias muy estrictas y utilizando componentes electrónicos precisos con minimo desvio de los valores nominales se podrían poner valores fijos de resistencias y dejar fijos el offset y el span, a costa de aumentar el costo del desarrollo.
Una vez que tenés el maximo rango del AD, para convertir el valor entero del AD en unidades de ingeniería [Kgs] lo que se hace es multiplicarlo por una constante.
Por ejemplo:
Peso: 4.0 Kgs.
LecturaAD: 16000
KPeso: (Peso / LecturaAD) = 0,00025.
Es decir que cada unidad del rango del AD equivale a 0,00025 Kgs.
Como menciona Mglsoft, si el programa lo tenés en C, PBP, u otro lenguaje que soporte calculos con coma flotante, la rutina se facilita.
En assembler también se puede hacer. Fijate esta Nota de aplicacion de Microchip:
AN660 Floating Point Routines
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010982En assembler el problema es despues convertirlo de coma flotante a BCD o a ASCII para mostrarlo en un LCD o display de 7 segmentos:
AN670 Floating Point to ASCII Conversion
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010987Algunas veces no es necesario usar coma flotante, en cambio se puede usar coma fija, por ejemplo en vez de hacer el calculo en Kilos, se hace en gramos y luego al visualizar el dato se agrega la coma donde corresponde. Fijate esta Nota de aplicacion de Microchip:
AN617 Fixed Point Routines
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010962Aparte del peso por lo general se agrega una funcion de Tara. Esto equivale a incrementar el peso de la plataforma. Para esto se lee el AD y se guarda en una variable Tara.
Luego:
PesoAD = LecturaAD - Tara,
Peso = PesoAD * KPeso,
Bueno espero te sirva.