Skip to content

Instantly share code, notes, and snippets.

@dwblair
Last active September 13, 2016 21:31
Show Gist options
  • Save dwblair/705b71296556c8a407e7eca7582c3ad5 to your computer and use it in GitHub Desktop.
Save dwblair/705b71296556c8a407e7eca7582c3ad5 to your computer and use it in GitHub Desktop.
#include "HX711.h"
#include <SoftModem.h>
SoftModem modem = SoftModem();
// HX711.DOUT - pin #A1
// HX711.PD_SCK - pin #A0
HX711 scale(A1, A0); // parameter "gain" is ommited; the default value 128 is used by the library
int tareButton = 2;
void setup() {
Serial.begin(9600);
pinMode(tareButton, INPUT);
modem.begin();
/*
Serial.println("HX711 Demo");
Serial.println("Before setting up the scale:");
Serial.print("read: \t\t");
Serial.println(scale.read()); // print a raw reading from the ADC
Serial.print("read average: \t\t");
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC
Serial.print("get value: \t\t");
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight (not set yet)
Serial.print("get units: \t\t");
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight (not set) divided
// by the SCALE parameter (not set yet)
*/
scale.set_scale(2000.f); // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0
/*
Serial.println("After setting up the scale:");
Serial.print("read: \t\t");
Serial.println(scale.read()); // print a raw reading from the ADC
Serial.print("read average: \t\t");
//Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC
Serial.print("get value: \t\t");
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight, set with tare()
Serial.print("get units: \t\t");
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight, divided
// by the SCALE parameter set with set_scale
Serial.println("Readings:");
*/
}
void loop() {
//Serial.print("one reading:\t");
int buttonState = digitalRead(tareButton);
if (buttonState==1) {
scale.tare();
delay(1000);
}
//Serial.println(-1.0*scale.get_units(), 1);
//Serial.println(buttonState);
//Serial.print("\t| average:\t");
//Serial.println(scale.get_units(10), 1);
//scale.power_down(); // put the ADC in sleep mode
String str=String(-1.*scale.get_units(),1);
Serial.println(str);
modem.print(str);
delay(200);
//scale.power_up();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment