// importa libreria Keypad
#include "HX711.h"
#include <Keypad.h>
#include <Wire.h> //Biblioteca utilizada gerenciar a comunicação entre dispositicos através do protocolo I2C
#include <LiquidCrystal_I2C.h> //Biblioteca controlar display 16x2 através do I2C
// define numero de filas
const uint8_t ROWS = 4;
// define numero de columnas
const uint8_t COLS = 4;
// define la distribucion de teclas
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
// pines correspondientes a las filas
uint8_t colPins[COLS] = { 16, 4, 2, 15 };
// pines correspondientes a las columnas
uint8_t rowPins[ROWS] = { 19, 18, 5, 17 };
// crea objeto con los prametros creados previamente
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27,16,2); //Cria o objeto lcd passando como parâmetros o endereço, o nº de colunas e o nº de linhas
String entrada = "";
int ledmotor = 23;
HX711 scale;
int valor;
int peso;
void setup() {
Serial.begin(9600);
lcd.init(); //Inicializa a comunicação com o display já conectado
lcd.clear(); //Limpa a tela do display
lcd.backlight(); //Aciona a luz de fundo do display
pinMode(ledmotor, OUTPUT);
scale.begin(13, 14);
}
void loop() {
valor = scale.get_units(), 1;
Serial.println(scale.get_units(), 1);
peso=map(valor,0,2100,0,5000);
char key = keypad.getKey();
lcd.setCursor(0,0);
lcd.print("Quantas g:");
//aparece o valor desejado
if (key != NO_KEY && key != 'A') {
entrada += key;
lcd.setCursor(entrada.length() + 9, 0);
lcd.print(key);
}
//apagar valor desejado
if (key == 'C'){
lcd.setCursor(1,1);
lcd.clear();
entrada = "";
}
//balança
//monitor serial
//balança lcd
lcd.setCursor(0,1);
lcd.print("Peso: ");
lcd.println(peso);
lcd.println(" g");
//inicia o corte
}