El enrollador original del Mutoh SR1641 tira del material de forma constante mediante un embrague de plástico. Ese embrague dura meses con uso intensivo. El reemplazo con Arduino Nano y sensor ultrasónico HC-SR04 invierte la lógica: el motor no tira — espera. Solo enrolla cuando detecta que hay lazo de material colgando de sobra. Sin embrague, sin tensión constante, sin roturas. Y con más tracción para bobinas completas.
01 — El problema: el embrague original es una basura
El enrollador del Mutoh SR1641 funciona con un motor que gira de forma permanente acoplado a la bobina mediante un embrague mecánico. La idea es que el embrague resbale cuando hay tensión suficiente, y engrane cuando el material afloja. En teoría.
En la práctica el embrague es un disco de plástico contra otro disco de plástico, con un muelle que regula la presión. Con uso diario y bobinas pesadas aguanta unos meses, y cuando falla tiene dos modos: o no agarra nada y el material se amontona en el suelo, o agarra demasiado y tira del vinilo mientras el plotter lo avanza, causando errores de registro y arrugas. En ambos casos, a desmontar.
La solución correcta es eliminar la tensión constante del todo. El motor no tiene que tirar — tiene que recoger el exceso. Y para saber cuándo hay exceso, un sensor ultrasónico es perfecto.
02 — La solución: sensor ultrasónico y relé
El sensor HC-SR04 se monta apuntando al lazo de material que cuelga entre el plotter y la bobina. Cuando ese lazo crece — el plotter avanza material y la bobina no ha enrollado todavía — el sensor detecta que el material está lejos. Eso activa el motor. Cuando la bobina ha recogido el exceso y el lazo se ha tensado, el sensor detecta que el material está cerca. El motor para.
El motor del enrollador original sigue siendo el mismo — no se toca la mecánica. Solo se interpone un relé entre la alimentación del motor y la placa original. El Arduino controla ese relé.
03 — Conexiones
Tres componentes: Arduino Nano, HC-SR04 y módulo relé. El motor del enrollador se conecta a través del relé. Sin placa, sin PCB — todo con cable y bloque de terminales.
04 — Cómo funciona la lógica
El sensor mide cada 500 ms. La variable clave es distanciaMaximaAlRollo, fijada en 50 cm. Esa distancia representa el tamaño mínimo del lazo colgante que queremos mantener.
- Material lejos del sensor (lazo grande, cm ≥ 50): hay exceso de material colgando. El relé activa el motor. El enrollador recoge.
- Material cerca del sensor (lazo pequeño, cm < 50): el lazo se ha tensado, no hay exceso. El relé corta el motor. Se espera a que el plotter avance más material.
Mientras el motor enrolla, el sketch no espera al timer — entra en un bucle while que sigue midiendo cada 200 ms y mantiene el motor parado (enrollaPin LOW) hasta que la distancia supere los 50 cm. En ese momento sale del bucle, activa el relé (HIGH) y vuelve al ciclo principal.
El resultado es que el motor trabaja en ráfagas cortas según demanda. Sin tensión constante. Sin embrague. La bobina se puede cargar completa sin problemas porque el motor es libre de dar toda su tracción cuando lo necesita — no está limitado por un muelle calibrado para no romper el vinilo.
05 — Código completo
// Pakuenroller v.3
// Enrollador Mutoh SR1641 con sensor ultrasónico
#define EchoPin A5
#define TriggerPin A4
#define enrollaPin 7 // pin del relé
#define medirCada 500 // ms entre mediciones
#define distanciaMaximaAlRollo 50 // cm — umbral de lazo mínimo
#define retardoTrasAvance 200 // ms entre pings mientras enrolla
void setup() {
Serial.begin(9600);
Serial.println("Pakuenroller v.3 arrancado");
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(enrollaPin, OUTPUT);
digitalWrite(enrollaPin, LOW); // motor parado al arranque
}
long tempoDistancia = 0;
void loop() {
if ((millis() - tempoDistancia) > medirCada) {
int cm = ping();
Serial.print("Distancia: ");
Serial.println(cm);
// mientras el lazo sea pequeño, esperar sin enrollar
while (cm < distanciaMaximaAlRollo) {
cm = ping();
Serial.print("Distancia: ");
Serial.println(cm);
digitalWrite(enrollaPin, LOW);
delay(retardoTrasAvance);
}
// lazo suficiente — enrollar
digitalWrite(enrollaPin, HIGH);
tempoDistancia = millis();
}
}
int ping() {
long duration, distanceCm;
digitalWrite(TriggerPin, LOW);
delayMicroseconds(4);
digitalWrite(TriggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);
duration = pulseIn(EchoPin, HIGH);
distanceCm = duration * 10 / 292 / 2;
return distanceCm;
}
El único parámetro que hay que ajustar en cada instalación es distanciaMaximaAlRollo. Depende de la altura a la que esté montado el enrollador y de cuánto lazo quieres permitir. Con 50 cm funciona bien para una instalación estándar: suficiente holgura para que el plotter avance sin que el motor tenga que reaccionar en cada paso, pero sin dejar que el material se amontone en el suelo.
06 — Resultado
Lleva funcionando desde 2023 sin un solo problema. El embrague original duraba meses; esto no tiene nada que romper. La tracción es notablemente mayor para bobinas completas y pesadas, y el plotter no nota ninguna tensión adicional porque el motor nunca tira — solo recoge cuando sobra.
El coste del añadido: un Arduino Nano (~3€), un HC-SR04 (~1€) y un módulo relé (~0,80€). Menos de 5€ para dejar de cambiar embragues.