// Código para controlar un motor paso a paso en función de la lectura de tres sensores.
#include <Stepper.h>
// Definir pines de los sensores y el motor paso a paso
const int sensorPin1 = 13;
const int sensorPin2 = 12;
const int sensorPin3 = 11;
const int motorPin1 = 25;
const int motorPin2 = 24;
const int motorPin3 = 23;
const int motorPin4 = 22;
// Definir pasos por revolución para el motor
const int stepsPerRevolution = 100;
const int stepsPerRevolution1 = 50;
const int stepsPerRevolution2 = 20;
Stepper myStepper(stepsPerRevolution, motorPin1, motorPin2, motorPin3, motorPin4);
// Contadores de vueltas para cada sensor
int vueltasSensor1 = 0;
int vueltasSensor2 = 0;
int vueltasSensor3 = 0;
void setup() {
// Configurar pines de los sensores como entradas
pinMode(sensorPin1, INPUT);
pinMode(sensorPin2, INPUT);
pinMode(sensorPin3, INPUT);
// Establecer la velocidad del motor paso a paso
myStepper.setSpeed(100);
}
void loop() {
// Verificar el estado del sensor 1
if (digitalRead(sensorPin1) == HIGH) {
myStepper.step(stepsPerRevolution);
// Incrementar el contador de vueltas para el sensor 1
vueltasSensor1++;
}
// Verificar el estado del sensor 2
if (digitalRead(sensorPin2) == HIGH) {
myStepper.step(stepsPerRevolution1);
// Incrementar el contador de vueltas para el sensor 2
vueltasSensor2++;
}
// Verificar el estado del sensor 3
if (digitalRead(sensorPin3) == HIGH) {
myStepper.step(stepsPerRevolution2);
// Incrementar el contador de vueltas para el sensor 3
vueltasSensor3++;
}
// Pequeña pausa para estabilizar las lecturas de los sensores
delay(10);
}