Como hacer código en arduino para una celda de carga
Hola! Buen día!
Necesito hacer un código en arduino el cual consiste en controlar una celda de carga para que me mande lecturas al display por el momento solammente lo estoy probando con el serial pero no me da datos lógicos aun no he colocado ningún peso en una celda de carga y ya me esta mandando los siguientes datos:
analogValue: 1023.00
Load: 51.14985
Tomando en cuenta que mi celda de carga es para un máximo de 40kg
El código utilizado es el siguiente:
// Load cells are linear. So once you have established two data pairs, you can interpolate the rest.
// Step 1: Upload this sketch to your arduino board
// You need two loads of well know weight. In this example A = 10 kg. B = 30 kg
// Put on load A
// read the analog value showing (this is analogvalA)
// put on load B
// read the analog value B
// Enter you own analog values here
float loadA = 10; // kg
int analogvalA = 200; // analog reading taken with load A on the load cell
float loadB = 30; // kg
int analogvalB = 600; // analog reading taken with load B on the load cell
// Upload the sketch again, and confirm, that the kilo-reading from the serial output now is correct, using your known loads
float analogValueAverage = 0;
// How often do we do readings?
long time = 0; //
int timeBetweenReadings = 200; // We want a reading every 200 ms;
void setup() {
Serial.begin(9600);
}
void loop() {
int analogValue = analogRead(0);
// running average - We smooth the readings a little bit
analogValueAverage = 0.99*analogValueAverage + 0.01*analogValue;
// Is it time to print?
if(millis() > time + timeBetweenReadings){
float load = analogToLoad(analogValueAverage);
Serial.print("analogValue: ");Serial.println(analogValueAverage);
Serial.print("load: ");Serial.println(load,5);
time = millis();
}
}
float analogToLoad(float analogval){
// using a custom map-function, because the standard arduino map function only uses int
float load = mapfloat(analogval, analogvalA, analogvalB, loadA, loadB);
return load;
}
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;
}
Espero me puedan ayudar, gracias anexo info de los datos de la celda de carga .Saludos y de antemano gracias!
Modelo: PW6K
Capacidad: 40 Kg
Grado de protección: IP 65
Material: Aluminio
Limite de carga: 150 %
Resistencia de entrada: 420 ohms (+/- 20)
Resistencia de salida: 350 ohms +/- 5
Voltaje de excitación: 1-15 Vcc
Estoy utilizando un amplificador ina125P