79 lines
1.7 KiB
C++
79 lines
1.7 KiB
C++
#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");
|
|
}
|
|
} |