Tabla de contenido:
- Suministros:
- Paso 1: La celda de carga
- Paso 2: El Amplificador
- Paso 3: El Código
- Paso 4: Calibración y uso
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