Descrición
Unha célula de carga vainos permitir medir pesos ou deformacións. Hai moitos tipos de células de carga. Nós imos utilizar a da figura, consistente nunha barra de aluminio que ten incorporadas unhas galgas extensiométricas. Estas galgas son uns sensores que varían a súa resistencia en función da deformación que se produce sobre elas. A resistencia extensométrica é proporcional á carga aplicada, o que nos permite calcular o peso dos obxectos. Normalmente, as células de carga teñen dous ou catro medidores de tensión conectados nunha ponte de Wheatstone que nos permiten obter medicións de resistencia precisas.
Montaxe
Para facer unha báscula debemos montar a estrutura cunha plataforma inferior e outra superior, tal e como vén na figura. Hai en aliexpress modelos que xa veñen con elas, pero tamén podes mercar só o sensor e o amplificador e facer ti o soporte.
As células de carga precisan dun módulo amplificador HX711, que é un convertedor de 24 bits. Serve para obter unha maior resolución nas medidas. Arduino, que ten unha resolución de 10 bits, é quen de dividir 5V dunha entrada en 210 = 1.024 partes de 4,88mV. Usando o HX711 podemos dividir eses 5V en 224= 16.777.216 partes de 0,3 μV
A maneira de conectalo é a seguinte.
Calibración
Unha vez temos a nos balanza montada e conectada a un arduino debemos calibrala. Necesitamos un peso coñecido. O mellor sería ter unha pesa de precisión, pero se non a tes podes utilizar calquera obxecto e pesalo noutra báscula que estea calibrada. Con ese peso obteremos o factor de calibración que utilizaremos nos seguintes programas que utilizaremos para os nosos proxectos coa báscula.
Imos necesitar instalar a librería HX711 Arduino Library by Bogdan Necula.
/* Programa de calibración O factor de calibración utilizado será (lectura)/(peso) */ /* Coñecido o factor de calibración podes usar a célula de carga para pesar obxectos. Comeza pesando obxectos cun peso coñecido e repite o proceso de calibración se os valores non son precisos. */ #include <HX711.h> const int Dout_Pin = 3; const int SCK_Pin = 2; HX711 bascula; // declaración de variables float calibration_factor=1; // este dato calcularémolo ao final float peso= 81.51; // peso coñecido co que imos calibrar (en g) Cámbiao polo que teñas ti. // configuración void setup(){ Serial.begin(57600); bascula.begin(Dout_Pin, SCK_Pin); delay(1000); Serial.println(" "); Serial.println("Báscula iniciada"); Serial.println(" "); } // Calibración void loop() { if (bascula.is_ready()) { bascula.set_scale(); Serial.println("Tara... elimina calquera peso da báscula."); delay(5000); bascula.tare(); Serial.println("Tara feita"); Serial.println("Coloca un peso coñecido na báscula"); delay(5000); long lectura = bascula.get_units(10); Serial.print("Resultado: "); Serial.print(lectura); Serial.print(" --- Factor de calibración: "); calibration_factor = lectura/peso; Serial.println(calibration_factor); Serial.println(" "); } else { Serial.println("HX711 not found."); } delay(1000); } /* resultado obtido do factor de calibración: calibration_factor=-488.96 usarémolo no seguinte programa para pesar */
Programa para pesar
Coñecido o factor de calibración podes usar a célula de carga para pesar obxectos. Comeza pesando obxectos cun peso coñecido e repite o proceso de calibración se os valores obtidos non son precisos.
// Báscula #include <HX711.h> const int Dout_Pin = 3; const int SCK_Pin = 2; HX711 bascula; // declaración de variables int calibration_factor=-488.5; float lectura; // configuración void setup(){ Serial.begin(9600); // Escribimos un texto de benvida Serial.println("*** Iniciando a báscula ***"); Serial.println("Retirar peso"); Serial.println(" "); bascula.begin(Dout_Pin, SCK_Pin); delay(1000); bascula.set_scale(calibration_factor); // este valor obtense calibrando a báscula con pesos coñecidos bascula.tare(); // Tara a balanza. Restablece a escala a 0 Serial.println(" "); Serial.println("LECTURAS:"); } // LOOP void loop() { // Lectura do peso lectura=bascula.get_units(5),2; Serial.print("lectura:\t"); Serial.println(lectura); }
No programa anterior utilizamos valores de lectura con decimais para observar se está correctamente calibrada. Se a diferenza entre o peso real e o medido é dunhas décimas de gramo podémola dar como válida. Para operar coa báscula nos proxectos pode chegar con que mostre a medida redondeada en gramos, sen décimas nin centésimas de gramo.
Propostas
- Incorpora unha pantalla LCD ou OLED para visualizar os datos do peso.
- Incorpora un pulsador para poder tarar a báscula. Basta poñer a instrución bascula.tare(); para cando se prema o pulsador. Desa maneira podes poñer un recipiente baleiro, tarar para que marque 0, e despois medir o peso do contido do recipiente.
- Podes incorporar un zumbador que soe cando se tare.
- Báscula para persoas cegas: Incorpora un teclado matricial ao que pegaremos enriba dos pulsadores os números en braille. Un son indica que a báscula está acesa. Outro son diferente indica que xa está tarada cando se preme un dos botóns (asterisco, por exemplo). A persoa debe indicar no teclado a cantidade que quere pesar e premer na almofada. Un son indica que pode empezar a introducir o que quere pesar (arroz, por exemplo) e outro son diferente avisará de que debe parar, pois xa se alcanzou a medida introducida. O sistema pode avisar cando a medida se vaia achegando ao límite.
- Deseña a estrutura da báscula para incorporar todos os compoñentes: báscula, arduino (NANO ocupa menos), pantalla, pulsador, zumbador, interruptor de acendido e alimentación e teclado matricial se o utilizaches. Podes utilizar impresión 3D ou corte láser para a fabricación.
- No proxecto anterior, un brazo robot recolle o recipiente, baléirao e volve poñelo enriba da báscula para facer a seguinte pesada.
Exemplo
Proba básica comparando o peso cunha báscula comercial