1
0
mirror of https://gitlab.com/lander-team/static-load-test-code.git synced 2025-08-02 11:31:28 +00:00

setup for calibration values and some rudimentary filtering

This commit is contained in:
Brendan McGeeney
2021-11-21 11:31:58 -07:00
parent 91db1a179d
commit 11e2aeede6

View File

@@ -4,6 +4,7 @@
#include <Arduino.h> #include <Arduino.h>
LoadCells State; LoadCells State;
LoadCells PrevState;
HX711 lc0; HX711 lc0;
HX711 lc1; HX711 lc1;
@@ -18,6 +19,13 @@ void read_lc0();
void read_lc1(); void read_lc1();
void read_lc2(); void read_lc2();
void read_lc3(); void read_lc3();
double limit(double current, double previous);
// Load Cell Calibration Constants
const double k0 = -518.7;
const double k1 = -633.39;
const double k2 = -202.56;
const double k3 = -295.53;
const int lc_clock = 23; const int lc_clock = 23;
const int pin_lc0 = 14; const int pin_lc0 = 14;
@@ -28,11 +36,13 @@ const int pin_lc3 = 20;
const int chipSelect = BUILTIN_SDCARD; const int chipSelect = BUILTIN_SDCARD;
File dataFile; File dataFile;
void setup() { void setup()
{
delay(1000); delay(1000);
Serial.print("Initializing SD card..."); Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) { if (!SD.begin(chipSelect))
{
Serial.println("initialization failed. Things to check:"); Serial.println("initialization failed. Things to check:");
@@ -93,21 +103,22 @@ void setup() {
String dataString = "lc0,lc1,lc2,lc3"; String dataString = "lc0,lc1,lc2,lc3";
File dataFile = SD.open("datalog.csv", FILE_WRITE); File dataFile = SD.open("datalog.csv", FILE_WRITE);
if (dataFile) { if (dataFile)
{
dataFile.println(dataString); dataFile.println(dataString);
dataFile.close(); dataFile.close();
} }
else { else
{
Serial.println("error opening datalog.csv"); Serial.println("error opening datalog.csv");
} }
delay(10000);
} }
void loop() { void loop()
{
String dataString = String(State.lc0) + "," + String(State.lc1) + "," + String dataString = String(State.lc0) + "," + String(State.lc1) + "," +
String(State.lc2) + "," + String(State.lc3); String(State.lc2) + "," + String(State.lc3);
Serial.println(dataString); Serial.println(dataString);
@@ -115,23 +126,50 @@ void loop() {
File dataFile = SD.open("datalog.csv", FILE_WRITE); File dataFile = SD.open("datalog.csv", FILE_WRITE);
if (dataFile) { if (dataFile)
{
dataFile.println(dataString); dataFile.println(dataString);
dataFile.close(); dataFile.close();
Serial.println(dataString); Serial.println(dataString);
} }
else { else
{
Serial.println("error opening datalog.csv"); Serial.println("error opening datalog.csv");
} }
} }
void read_lc0() { State.lc0 = lc0.get_value(); } void read_lc0()
void read_lc1() { State.lc1 = lc1.get_value(); } {
void read_lc2() { State.lc2 = lc2.get_value(); } State.lc0 = lc0.get_value();
void read_lc3() { State.lc3 = lc3.get_value(); } State.lc0 = limit(State.lc0, PrevState.lc0);
PrevState.lc0 = State.lc0;
}
void read_lc1()
{
State.lc1 = lc1.get_value();
State.lc1 = limit(State.lc1, PrevState.lc1);
PrevState.lc1 = State.lc1;
}
void read_lc2()
{
State.lc2 = lc2.get_value();
State.lc2 = limit(State.lc2, PrevState.lc2);
PrevState.lc2 = State.lc2;
}
void read_lc3()
{
State.lc3 = lc3.get_value();
State.lc3 = limit(State.lc3, PrevState.lc3);
PrevState.lc3 = State.lc3;
}
double limit(double current, double previous)
{
double limit = 1000000;
if (abs(current - previous) > limit)
return previous;
else
return current;
}