/* ESP32 WiFi Scanning example */
// Definir pinos
const int pinoRele = 23; // Pino de controle do módulo relé
const int pinoSensorIR = 12; // Pino de entrada do sensor de barreira IR
int contagem = 0; // Contagem de peças
bool estadoAnteriorIR = HIGH; // Estado anterior do sensor
unsigned long tempoUltimaParada = 0; // Tempo da última parada do motor
const unsigned long intervaloParada = 5000; // Tempo de parada do motor (5 segundos)
// Setup
void setup() {
Serial.begin(115200);
// Configurar pinos
pinMode(pinoRele, OUTPUT);
pinMode(pinoSensorIR, INPUT);
// Inicialmente, ligar o motor (relé ativado)
digitalWrite(pinoRele, HIGH); // Relé normalmente fechado
}
// Loop
void loop() {
// Ler o estado atual do sensor IR
bool estadoAtualIR = digitalRead(pinoSensorIR);
// Verificar se houve mudança de estado (peça passou pelo sensor)
if (estadoAnteriorIR == HIGH && estadoAtualIR == LOW) {
contagem++;
Serial.print("Peças contadas: ");
Serial.println(contagem);
}
// Atualizar estado anterior
estadoAnteriorIR = estadoAtualIR;
// Quando atingir 10 peças, parar o motor por 5 segundos
if (contagem >= 10) {
Serial.println("Parando motor por 5 segundos...");
pararMotor();
delay(5000); // Aguardar 5 segundos
reiniciarMotor();
contagem = 0; // Reiniciar a contagem
}
}
// Função para parar o motor
void pararMotor() {
digitalWrite(pinoRele, LOW); // Desliga o relé (motor)
}
// Função para reiniciar o motor
void reiniciarMotor() {
digitalWrite(pinoRele, HIGH); // Liga o relé (motor)
Serial.println("Motor reiniciado.");
}