Files

79 lines
1.7 KiB
Arduino
Raw Permalink Normal View History

#include "HX711.h"
#include "CalibConsts.hpp"
HX711 c0, c1;
// adjust pins if needed.
#define c0Data 2
#define c0Clock 3
#define c1Data 4
#define c1Clock 5
#define DIR0 7
#define PWM0 6
#define DIR1 8
#define PWM1 9
void setup()
{
pinMode(DIR0, OUTPUT);
pinMode(PWM0, OUTPUT);
pinMode(DIR1, OUTPUT);
pinMode(PWM1, OUTPUT);
Serial.begin(115200);
Serial.println();
Serial.println(__FILE__);
Serial.print("HX711_LIB_VERSION: ");
Serial.println(HX711_LIB_VERSION);
Serial.println();
c0.begin(c0Data, c0Clock);
c0.set_offset(OFFSET0);
c0.set_scale(SCALE0);
c1.begin(c1Data, c1Clock);
c1.set_offset(OFFSET1);
c1.set_scale(SCALE1);
}
void loop() {
while (Serial.available()) Serial.read();
Serial.println("Enter any key to begin reading");
while (!Serial.available());
Serial.println("Reading Load Cells (Mean over 10 Readings)");
float c0Avgs[11] = {0};
float c1Avgs[11] = {0};
uint8_t ind = 0;
for (int16_t i = -250; i < 255; i+=50) {
Serial.print("Running PWM: ");
Serial.println(i);
digitalWrite(DIR0, i >= 0);
digitalWrite(DIR1, i >= 0);
analogWrite(PWM0, abs(i));
analogWrite(PWM1, abs(i));
delay(200);
for (uint8_t j = 0; j < 10; j++) c0Avgs[ind] += c0.get_units();
c0Avgs[ind] /= 10;
for (uint8_t j = 0; j < 10; j++) c1Avgs[ind] += c1.get_units();
c1Avgs[ind] /= 10;
ind++;
}
digitalWrite(DIR0, 0);
digitalWrite(DIR1, 0);
digitalWrite(PWM0, 0);
digitalWrite(PWM1, 0);
Serial.println("Average Values:");
for (uint8_t i = 0; i < 11; i++) {
Serial.print("PWM ");
Serial.print((int) -250+i*50);
Serial.print(" - Cell 0: ");
Serial.print(c0Avgs[i]);
Serial.print("g, Cell 1: ");
Serial.print(c1Avgs[i]);
Serial.println("g");
}
}