Boa noite! Estou tentando achar uma forma de calibrar o hx711, encontrei a seguinte
/*

Started with example code written by Nathan Seidle from SparkFun Electronics and added

LCD output with gram and ounce values.

Setup your scale and start the sketch WITHOUT a weight on the scale

Once readings are displayed place the weight on the scale

Press +/- or a/z to adjust the calibration_factor until the output readings match the known weight

Arduino pin 6 -> HX711 CLK

Arduino pin 5 -> HX711 DOUT

Arduino pin 5V -> HX711 VCC

Arduino pin GND -> HX711 GND

The HX711 board can be powered from 2.7V to 5V so the Arduino 5V power should be fine.

The HX711 library can be downloaded from here: https://github.com/bogde/HX711

*/


#include

LiquidCrystal lcd(51, 50, 49, 48, 47, 46);



#include "HX711.h"


#define DOUT 5

#define CLK 6


HX711 scale(DOUT, CLK);


float calibration_factor = 2125; //-7050 worked for my 440lb max scale setup

float units;

float ounces;


void setup() {

  Serial.begin(9600);

  // set up the LCD's number of columns and rows:

  lcd.begin(20, 4);

  lcd.setCursor(0, 0);

  lcd.print("HX711 calibration");

  Serial.println("HX711 calibration sketch");

  Serial.println("Remove all weight from scale");

  Serial.println("After readings begin, place known weight on scale");

  Serial.println("Press + or a to increase calibration factor");

  Serial.println("Press - or z to decrease calibration factor");


  scale.set_scale();

  scale.tare(); //Reset the scale to 0


  long zero_factor = scale.read_average(); //Get a baseline reading

  Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.

  Serial.println(zero_factor);

}


void loop() {


  scale.set_scale(calibration_factor); //Adjust to this calibration factor


  Serial.print("Reading: ");

  units = scale.get_units(), 10;

  if (units < 0) {

    units = 0.00;

  }

  ounces = units * 0.035274;

  Serial.print(units);

  Serial.print(" grams");

  Serial.print(" calibration_factor: ");

  Serial.print(calibration_factor);

  Serial.println();

  lcd.setCursor(0, 1);

  lcd.print("Grams: ");

  lcd.print(units);

  lcd.setCursor(0, 2);

  lcd.print("Ounce: ");

  lcd.print(ounces);

  lcd.setCursor(0, 3);

  lcd.print("Calbr: ");

  lcd.print(calibration_factor);


  if(Serial.available())

  {

    char temp = Serial.read();

    if(temp == '+' || temp == 'a')

      calibration_factor += 1;

    else if(temp == '-' || temp == 'z')

      calibration_factor -= 1;

  }

}


No entanto, gostaria que fosse o reverso! Que eu selecionasse o peso que estou colocando e o codigo se adequasse a ele, automatizando a calibraçao

Exibições: 332

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço