// ESTE ES NUETRO PROYECTO DE CINTA TRANSPORTADORA
#include <LiquidCrystal.h>
#include <ESP32Servo.h>
#include <Stepper.h>
//Conector del primer actuador.
const int servoPin = 17;
//Revoluciones del motor de cinta
const int StepsM= 200;
//Config de pines "motor"
Stepper motorC (StepsM,12,14,27,26);
//Pines de Sensor Ultrasonico
const int trig=5;
const int echo=18;
// Listas para clasificar las cajas.
int buenos = 0;
int malos = 0;
int objetos=0;
// Esto es para crear con la libreria y manejar el servo motor
Servo servo1;
// Pin del led
int ledPin = 19;
void setup() {
Serial.begin(115200);
servo1.attach(servoPin);
//Colocar velocidad en RPM
motorC.setSpeed(60);
//Config pines Sensor
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(ledPin, OUTPUT);
}
//Funcion para leer distancia Sensor
float leerDistanciaCM() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int duracion = pulseIn(echo, HIGH, 3000);
return duracion * 0.034 / 2; // Division de 2 para solo tener como dato un pulso y no tenerlo duplicado.
}
void loop() {
float distancia= leerDistanciaCM();
// Logica para saber si es bueno o malo con el sensor ultra sonico
if (distancia > 0 && distancia < 30 ){
objetos++;
Serial.print("Objeto detectado en la cinta: ");
Serial.println(objetos);
//Simulando la celda de carga con el sensor
if (distancia < 15){
malos++;
Serial.println("Objeto calificado como MALO.");
servo1.write(40); // Servo debe moverse a la izquierda
} else {
buenos++;
Serial.println("Objeto calificado como BUENO.");
servo1.write(140); // Servo debe moverse a la derecha.
}
digitalWrite(ledPin, HIGH);
delay(1000); // El tiempo para que el servo pueda empujar los objetos
servo1.write(90); // Servo debe volver al centro.
digitalWrite(ledPin,LOW);
Serial.print("Objetos BUENOS (< 15cm --> 0-500g) detectados -------> "); //Si es un objeto que pesa entre 0 y 500g es BUENO.
Serial.println(buenos);
Serial.print("Objetos MALOS (> 15cm --> 0g)detectados -------> "); // Si es un objeto que pesa menos de 0g es MALO.
Serial.println(malos);
}
//Giro del motor
motorC.step(StepsM);
}
SERVO MOTOR
MOTOR DE LA CINTA
LED PARA SABER SI PASA O NO UN OBJETO
VER SI PASA O NO UN OBJETO