Arduino Load Cell / Scale: 4 pasos

Arduino Load Cell / Scale: 4 pasos

Tabla de contenido:

Anonim

De las mentes en

¡Actualización importante!

Como tantas personas tenían problemas con el INA125P, ahora tenemos una versión nueva y mejorada que utiliza el módulo de amplificador ADC Hx711 de 24 bits.

Mi objetivo era crear una báscula programable para pesar objetos, contar piezas e incluso dirigir el flujo de productos en un sistema de transporte.

Necesitaba una celda de carga, un Arduino y un amplificador.

Suministros:

Paso 1: La celda de carga

En esta celda de carga (de una escala postal Accuteck W-8260-86W) los 4 cables que provienen de la celda de carga son:

Rojo: Excitación +

Blanco: Señal +

Verde: Señal -

Negro: Excitación -

Esto coincide con el esquema de cableado GSE / NCI / Sensotec.

www.controlweigh.com/loadcell_colors.htm

Desconecté los 4 cables del tablero de control en la báscula, para que estuvieran disponibles para el siguiente paso.

Paso 2: El Amplificador

Para aumentar la salida de la celda de carga para que Arduino pueda leerla en una entrada analógica, necesitaremos un amplificador INA125P y una resistencia de 10 ohmios. Conéctese al Arduino como se indica en el esquema adjunto.

Hoja de datos:

Paso 3: El Código

// Arduino como amplificador de celdas de carga.

// por Christian Liljedahl

// christian.liljedahl.dk

// Las celdas de carga son lineales. Entonces, una vez que haya establecido dos pares de datos, puede interpolar el resto.

// Paso 1: Sube este boceto a tu tablero arduino

// Necesitas dos cargas de peso bien conocido. En este ejemplo A = 10 kg. B = 30 kg

// Poner en carga A

// leer el valor analógico que muestra (esto es analogvalA)

// poner en carga B

// lee el valor analógico B

// Introduzca sus propios valores analógicos aquí

carga flotanteA = 10; // kg

int analogvalA = 200; // lectura analógica tomada con la carga A en la celda de carga

carga flotante B = 30; // kg

int analogvalB = 600; // lectura analógica tomada con la carga B en la celda de carga

// Cargue el croquis nuevamente y confirme que la lectura de kilo de la salida en serie ahora es correcta, utilizando sus cargas conocidas

float analogValueAverage = 0;

// ¿Con qué frecuencia hacemos lecturas?

tiempo largo = 0; //

int timeBetweenReadings = 200; // Queremos una lectura cada 200 ms;

configuración vacía () {

Serial.begin (9600);

}

bucle de vacío () {

int analogValue = analogRead (0);

// media corriente - suavizamos un poco las lecturas

analogValueAverage = 0.99 * analogValueAverage + 0.01 * analogValue;

// ¿Es hora de imprimir?

if (millis ()> time + timeBetweenReadings) {

carga flotante = analogToLoad (analogValueAverage);

Serial.print ("analogValue:"); Serial.println (analogValueAverage);

Serial.print ("load:"); Serial.println (load, 5);

tiempo = milis ();

}

}

float analogToLoad (float analogval) {

// usando una función de mapa personalizada, porque la función de mapa estándar de arduino solo usa int

float load = mapfloat (analogval, analogvalA, analogvalB, loadA, loadB);

carga de retorno;

}

float mapfloat (float x, float in_min, float in_max, float out_min, float out_max)

{

return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

}

Paso 4: Calibración y uso

Ahora verá los datos que se muestran en el monitor Serial, pero no tendrá mucho sentido hasta que calibre la escala. Siga los pasos en el código de calibración, y ahora está listo para usar esta báscula, agregue funciones adicionales, como botones para poner a cero el peso de la tara, o controlar servos y relés para el control del proceso.

arduinotronics.blogspot.com/2013/01/working-with-sainsmart-5v-relay-board.html