/ HX711 к Arduino pin 4->CLK 5->DAT 5V->VCC GND->GND
//дИСПЛЕЙ 1602 и oled VCC — 5V GND — GND SDA — A4 SCL — A5
// The HX711 board can be powered from 2.7V to 5V so the Arduino 5V power should be fine.
#include <LiquidCrystal_I2C.h>
#include "HX711.h" /
#define calibration_factor -6600.0 //This value is obtained using the SparkFun_HX711_Calibration sketch
#define LOADCELL_DOUT_PIN 5
#define LOADCELL_SCK_PIN 4
HX711 scale;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int X = 21;
float units; // задаём переменную для измерений в граммах
volatile boolean intFlag = false; // флаг
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
pinMode(7, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
Serial.println("HX711 scale");
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale();
scale.tare(); //Reset the scale to 0//Assuming there is no weight on the scale at start up, reset the scale to 0
scale.set_scale(calibration_factor);//This value is obtained by using the SparkFun_HX711_Calibration sketch
attachInterrupt(0, buttonTick, FALLING);
}
void buttonTick() {
intFlag = true; // подняли флаг прерывания
}
void loop()
{
if (intFlag) {
intFlag = false;
Serial.print("Reading: ");
for (int i = 0; i < 3; i ++)
{
units = + scale.get_units(), 3;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(units);
if ((units * 10) >= X)
{
digitalWrite(7, LOW);
Serial.println("Interrupt!");//КОНЕЦ, СТАВИТСЯ НА ПАУЗУ.Вес с весов убирается. При нажатии кнопки сначала.
}
else
{
digitalWrite(7, HIGH);
}} }