#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <AccelStepper.h>
#include "HX711.h"
// --- PINAGEM QUE FUNCIONOU NO SEU TESTE MANUAL ---
#define TFT_CS 15
#define TFT_DC 2
#define TFT_RST 4
#define STEP_PIN 14
#define DIR_PIN 12
#define DT_PIN 32
#define SCK_PIN 33
#define FC_SUP 25
#define FC_INF 26
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
AccelStepper stepper(1, STEP_PIN, DIR_PIN);
HX711 scale;
void setup() {
Serial.begin(115200);
// Configuração dos botões (Essencial para não ficarem cinza)
pinMode(FC_SUP, INPUT_PULLUP);
pinMode(FC_INF, INPUT_PULLUP);
// Inicializa a tela
tft.begin();
tft.setRotation(1);
tft.fillScreen(ILI9341_BLACK);
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(2);
tft.setCursor(10, 10);
tft.print("PRENSA APS - UNIP");
tft.setCursor(10, 40);
tft.print("Hardware Manual OK!");
// Inicializa a balança
scale.begin(DT_PIN, SCK_PIN);
// Configura o motor
stepper.setMaxSpeed(1000);
stepper.setAcceleration(500);
Serial.println("Hardware Inicializado!");
}
void loop() {
// --- LÓGICA DE SEGURANÇA: SE APERTAR O BOTÃO, O MOTOR PARA ---
if (digitalRead(FC_SUP) == LOW || digitalRead(FC_INF) == LOW) {
stepper.setSpeed(0);
stepper.stop();
Serial.println("!!! FIM DE CURSO ATIVO !!!");
} else {
// SE NÃO ESTIVER APERTADO, O MOTOR GIRA
stepper.setSpeed(200);
stepper.runSpeed();
}
// --- LEITURA DA BALANÇA NO SERIAL (PARA TESTAR O SLIDER) ---
float peso = scale.get_units(1);
if (peso > 0.5) { // Se houver peso, avisa no Serial
Serial.print("Peso detectado: ");
Serial.println(peso);
}
}
Loading
esp32-devkit-v1
esp32-devkit-v1