Controlar sensores de balanza con pic18f4550

y midiendo con el tester la celda de carga tambien Fluctua:confused:



has tratado de conseguir una balanza mas grande con circuitos mas normales

hay unas de display led que se ven altamente aprovechables
 
Última edición:
Bueno, Me tuve que tomar un respiro obligado por cuestión trabajo... Pero hoy le continuare de lleno..

He estado revisando cuidadosamente todo lo hecho hasta ahora... y no parece que haya un error de concepto o algún cable suelto en mi montaje..

Con el tester no le había probado :eek: .. (Ahora mismo lo hago) me estaba guiando de plano por lo que salia por el Display LCD del pic..

Sobre lo de la balanza mas grande, la verdad la que compre era la mas económica unos 25$us, habían otros pero estaban arriba de los 150$us ... que ya era demasiado para mi presupuesto..

Acá les dejo la simulación ... que tampoco me funciona :cry:, en esta el pic solo me marca un valor fijo leido por el puerto análogico, así le cambie el valor de la resistencia a la celda de carga simulada; En la prueba real me da valores que fluctuan entre 0 y 1023 tal como les había indicado...
 

Adjuntos

  • FORO.rar
    25 KB · Visitas: 18
Nooooo me sabia esa de que Proteus no me servia pa la analogica... :(

En fin, hoy estuve probando con livewire.. es lo único que pude conseguir. Estuve haciendo el diseño y algunas pruebas.. solo con la parte del amplificador instrumental, esta correcto? o debería hacerle alguna modificacion??
 

Adjuntos

  • AmpliInstru.rar
    2.3 KB · Visitas: 27
pues hice modificaciones a la simulacion de Livewire, pero tampoco sirve, el LM324 No funciona en la realidad como lo hace en la simulacion.

voy a ver si el LM324 que tengo no esta dañado y hago una prueba en la realidad.

si tienes un multimetro que mida milivolts, mide el sensor y dame el maximo voltaje que da presionandolo para basarme en esa medida.
 
Pues ya hice la prueba y concluyo que lo estas armando mal o te falta un osciloscopio para calibrarlo....

video de funcionamiento:

disculpen lo mal echo del video no soy ni editor, ni actor, ni productor, ni guionista mucho menos electronico :LOL:
 
son voltajes tan bajos que es mejor soldar

Con el tester no le había probado :eek: .. (Ahora mismo lo hago) me estaba guiando de plano por lo que salia por el Display LCD del pic..

:)

Sobre lo de la balanza mas grande, la verdad la que compre era la mas económica unos 25$us, habían otros pero estaban arriba de los 150$us ... que ya era demasiado para mi presupuesto..

son unas balanzas de 30kg y valen entre 30 a 50 us con display led o lcd
 
son voltajes tan bajos que es mejor soldar
sugerencia bienvenida e implentada.:)

son unas balanzas de 30kg y valen entre 30 a 50 us con display led o lcd
Bueno, la que compre es para pesar a una persona... 180Kg como máximo, yo le llegue hasta los 71kg.. creo que voy pasado de peso...

no soy ni editor, ni actor, ni productor, ni guionista mucho menos electronico
creo que estoy en el mismo equipo... :LOL:
Te agradezco por el tiempo que te tomaste para armar el circuito y hacer el video (se lo engorroso que es armar en proto), ver que te salio a la primera me inspiro a rearmar el circuito nuevamente, sin el pic, con otro lm324, y finalmente funcionó!!!...

Hasta ahora no entiendo bien porque pudo haber fluctuado tanto los valores al pic18.. Al primer rearme del circuito de pronto funciona todo tal como dijiste y yo quedo más confundido pero contento... lo único que no pude lograr es que la señal de salida del ampli me quede entre 0 y 5V, para que en el pic lo pueda capturar como señal análogica.

Tal como puedes ver en la imagen que adjunto solo pude calibrar entre 0.503V a 0.213V, ah el peso de referencia soy yo.. asi me quedo el circuito y, no le deis mucha atención a mis zapatos.. son muuuy viejos, pero muuuuuy comodos...:LOL:
 

Adjuntos

  • ProbandoAmpli.jpg
    ProbandoAmpli.jpg
    99.9 KB · Visitas: 42
Porlo que veo:
1.- con peso baja el voltaje, entonces invierte los cables del sensor que van al amplificador para que aumente al tener peso.
2.-mide y ajusta el potenciometro del offset para que en el comun o el pin del centro te de mas o menos 1V
3.- despues aplica un peso maximo como de 100kg y ajusta la ganancia para que te de unos 4V en la salida del amplificador de instrumentacion, esto de la ganancia es lo mas dificil de calibrar ;)
 
Última edición:
1.- ...invierte los cables del sensor que van al amplificador...
Me resulto perfecto.

2.-...ajusta el potenciometro del offset...
Esto lo puse en 0.992V pero a la salida del amplificador quedaba en 1.9V.. este sería mi voltaje sin ningún peso encima.

3.- despues aplica un peso máximo como de 100kg y ajusta la ganancia para que te de unos 4V...
Como el peso de referencia soy yo :) (unos 71Kg marcaba cuando aún no desarmaba la balanza) en la salida del ampli me daba 3.63V y ese era el máxímo que podía ajustar sin importar si le daba mas vueltas al ajuste de ganancia... ese sería mi máximo?? o para el ajuste de la ganancia sería mas adecuado poner el peso máximo? como referencia?

A pesar de ello mi rango mejoro con tus consejos entre 1.9V y 3.63V... si quisiera un rango entre 0V = 0Kg y 5V=180Kg sería necesario aumentarle otra etapa amplificadora o debería bastarme con el circuito actual??

También me doy cuenta que el potenciómetro logarítmico hace que el mínimo cambio afecte mucho... así que estoy pensando en potenciometros lineales.. que te parece?? (los preset multuvuelta que me indicaste no los tienen por acá... , es mas creo que algunos ni los conocen :()

Te agradezco de antemano.

un saludo.
 
para el ajuste de la ganancia sería mas adecuado poner el peso máximo?

si tienes que poner el peso maximo para ajustarlo, con el peso maximo ajustas a unos 4V

A pesar de ello mi rango mejoro con tus consejos entre 1.9V y 3.63V... si quisiera un rango entre 0V = 0Kg y 5V=180Kg sería necesario aumentarle otra etapa amplificadora o debería bastarme con el circuito actual??
baja un poco mas el offset o quizas ponlo en 0V, nunca vas a lograr un rango de 0V perfecto a un 5V perfecto alimentando con una fuente simple de 5V, el rango sera de entre unos 200mV a 4.8V aproximadamente, si quieres un 0V perfecto y un 5V perfecto tienes que alimentar el amplificador con una fuente dual de -9V a 9v o -12 a 12v, te sugiero que mejor uses ese rango. de 200mV a 4.8V aproximadamente

También me doy cuenta que el potenciómetro logarítmico hace que el mínimo cambio afecte mucho... así que estoy pensando en potenciometros lineales.. que te parece??
si mejor usa un lineal, seria excelente que consiguieras un poteciometro multivueltas o como los que pongo en el video (los azules) eso no son multivueltas pero son muy precisos.
 
Última edición:
Bueno, la que compre es para pesar a una persona... 180Kg como máximo, yo le llegue hasta los 71kg.. creo que voy pasado de peso...

oo por el tamaño de la balanza crei que necesitabas pesar poco
del mismo tipo hay unas mas grandes pero el precio es mas grande
pero la electronica es casi igual




Tal como puedes ver en la imagen que adjunto solo pude calibrar entre 0.503V a 0.213V, ah el peso de referencia soy yo.. asi me quedo el circuito y, no le deis mucha atención a mis zapatos.. son muuuy viejos, pero muuuuuy comodos...:LOL:


no e calculado pero quizas con ese rango sea suficiente para hacer el resto por software


las balanzas chinas no tienen ninguna regulacion por hardware se calibran por sofware y

entrando en modo de calibracion y colocando un peso patron

norecuerdo si lo puse en la otra hoja pero te puede servir de guia si los chinos las hacen asi es por algo
usan una fuente simple con 7808 un lm324 y un microprocesador
y el resto son componentes pasivos y nada es regulable

el micro es el sm8951 y tambien usan otro que ahora no recuerdo deben ser 2 o 3 micros
para todas las balanzas chinas
 
Última edición:
Bueno, se que ha pasado algo de tiempo desde la ultima vez que comenté sobre el tema; lo abandone un poco, pero también me propuse mejorar los componentes con los que había arrancado y ubicar la balanza en un lugar mas adecuado... lo pude rearmar y volver a hacer funcionar :). Sin embargo aún estoy luchando con las fluctuaciones en las mediciones.. así que me decidí llenar el circuito de capacitores, pero dada mi inexperiencia con este diseño les pido puedan indicarme a donde debería colocar los capacitores ?? y los valores??

El circuito en el que me baso es el que esta en el post Nro9 de este mismo tema..

un saludo.
 
tome algunas fotos para que se entienda mejor... pero el movil no quiere conectarse al PC, estoy #"!%&/·&$$% con este condenado movil! (y lo peor es que solo lo uso pa subir fotos a la web) en fin, lo que hago es tomar 20 muestras del adc en un par de segundos y con los valores centrales hago un promedio; luego la conversión por regla de 3 a Kg...

y me arrojan estos resultados:
71Kg
65Kg
66Kg
63Kg
74Kg

etc etc..

Es decir los valores varian en un rango de 10Kg + o - entre resultado y resultado, lo cual es bastante considerable para mi caso, yo estaba en el plan de aceptar un error de +-2KG pero diez se me hizo mucho es por eso quiero estabilizar un poco (lo mas que se pueda) con capacitores..
 
reabro este tema por necesidad y no se donde mas buscar o pedir ayuda
Muy buenas tardes colegas de forosdeelectronica, yo de nuevo, agradecerles de antemano por la ayuda, resulta que quiero hacer una amplificacion de una celda de carga de 550Kg para poder hacer un pesaje de 200 Kg, la celda de carga es de 2mV/V a 12 V (significa que en su maxima carga se va a registrar a la salida de la celda de carga 24mV), cuando quiero hacer la prueba y amplificarlo en el ad620, lo conecto de la siguiente manera
Pin 1: Resistencia rg de 86.8 ohmios
Pin 2: -S (salida negativa de la celda de carga)
Pin 3: +S (salida positiva de la celda de carga)
Pin 4: -12 V
Pin 5: Lo dejo abierto
Pin 6: Mi multimetro
Pin 7: +12 V
Pin 8: El otro lado de la resistencia de 86.8 ohmios
El problema resulta en que, sin aplicar ninguna fuerza en la celda de carga, el voltaje a la salida (PIN 6) me bota 5.2 V no entiendo porque, y cuando aplico una fuerza en la celda de carga, puede verse un cambo, pero no estoy seguro de cuanto aproximadamente (proximamente me van a entregar el soporte para la celda) si alguien pudiera guiarme
 
Hola. Estuve tratando de obtener un valor de proporción lineal a la posición del cursor de un potenciómetro logarítmico.
Para esto usé la función "log()", dado que conecté el potenciómetro de forma que la tensión en el cursor sea exponencial a moverlo, y en teoría si saco el log de una función exponencial obtendría una recta de la librería math.h de C.
Luego de sacar el logaritmo de la tensión en el ADC, la multipliqué por 146, porque en el caso de que ADC = 1024 (V Max.) El ln de éste, sería 6.9, y este numero multiplicado por 146, daría 1024
Es decir, 146 le daría la pendiente correcta a la recta.

Aplicando lo de arriba para obtener una relación lineal, lo apliqué a un programa de una balanza, en donde usaba lo de arriba para obtener el valor de 0, luego sacaba el valor cuando había 1Kg y le restaba 0, después dividía 1000 en el ultimo valor obtenido.
Con esto obtenía el valor de 0 y la pendiente por la que debía multiplicar el valor del ADC para saber el peso que tenía puesto.

Cuando probé el programa obtuve resultados bastante aproximados, calibrado el supuesto valor de 1Kg en una posición "x" del potenciómetro.
Cuando lo hice en otra posición no eran lineales, y así.

¿Podrían decirme si algo está mal con el código, o mejor dicho, el planteo del programa?.

Muchas gracias.

También había leído que existe un circuito con un operacional que lleva un diodo a la entrada y una resistencia de retroalimentación.
Lo armé y no funcionó, por lo que decidí que sería más rápido hacerlo con un uC, dado que el funcionamiento de este circuito no lo tengo claro.

Desde ya, muchas gracias.



PHP:
double   cero,a,x;


short act,mil,cen,dec,uni;


void main() {
TRISB=0;
TRISA=255;
ADCON1= 0b10001110;
PORTB=0b11110001;
delay_ms(500)   ;
PORTB=0b11110010;
delay_ms(500);
PORTB=0b11110011;
delay_ms(500);


do
{cero =log(ADC_read(0));
cero=cero*146;

 PORTB=0b11110000;
}
while (PORTC.B4==1);
PORTB=0b00010001;

do
{x=log(ADC_read(0));
x=x*146;
x=x-cero;
}
while (PORTC.B4==0);


delay_ms(1000);


x=1000/x;

bucle:
a=log(ADC_read(0));
a=a*146;



a=a-cero;
a=a*x;
if (a>9999){
PORTB=0b10000001;
goto bucle;};
mil=cen=dec=uni=0;

for (a=a;a>999;a=a-1000)
{mil++;};
for (a=a;a>99;a=a-100)
{cen++;};
for (a=a;a>9;a=a-10)
{dec++;};
for (a=a;a>0;a=a-1)
{uni++;};

act=0;
if (dec>=1){act=1;};
if (cen>=1){act=2;};
if (mil>=1){act=3;};


PORTB=mil;
PORTB.B4=(act==3);
delay_ms(1);
PORTB=cen;
PORTB.B5=(act>=2);
delay_ms(1);
PORTB=dec;
PORTB.B6=(act>=1);
delay_ms(1);
PORTB=uni;
PORTB.B7=1;
delay_ms(1);
PORTB=0;


goto bucle ;
}
 

Adjuntos

  • Balanza.zip
    566 bytes · Visitas: 9
Atrás
Arriba