Hola a todos y desde ya, gracias por el tiempo que se toman.
Tengo un proyecto en el cual se deben dar estas condiciones:
1º- La velocidad del motor PAP debe poderse controlar con un potenciómetro.
2º- El giro debe cambiar con dos "final de carrera": A y B.
3º- Debe inicar el proceso desde el final de carrera A.
4º- Se debe poder cambiar el giro del motor en cualquier momento con pulsador.
Hasta ahora solamente tengo un sketch que permite el punto 1º.
Cuando quiero incorporar más cosas, se me descontrola todo y no logro avanzar.
Busqué en internet de todo (hasta en idioma hindi) sin poder resolver estas cuestiones. Llevo 4 meses buscando y fallando. No sé qué más buscar y por eso pido ayuda.
El código que tengo (a través de internet) es el siguiente:
// Pin definitions
const int stepPin = 5; // STEP pin
const int dirPin = 4; // DIR pin
const int potPin = A0; // Potentiometer pin
void setup() {
// Set pins as outputs
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
// Set initial direction (HIGH = one direction, LOW = opposite)
digitalWrite(dirPin, HIGH);
}
void loop() {
// Read potentiometer value (0-1023)
int potValue = analogRead(potPin);
// Stop motor if pot is near 0
if (potValue < 50) {
return; // Skip the rest of the loop → motor stops
}
// Map potentiometer value to delay (faster = lower delay)
int stepDelay = map(potValue, 50, 1023, 5000, 50); // Min speed: 2000µs, Max speed: 500µs
// Generate a step pulse
digitalWrite(stepPin, HIGH);
delayMicroseconds(10); // Short pulse
digitalWrite(stepPin, LOW);
// Delay between steps (controls speed)
delayMicroseconds(stepDelay);
}
SI alguien me puede tirar una punta o ayudar, le voy a agradecer eternamente (o casi).