Hi,
I'm working on a project to modify the motor of a cine projector S8/16mm with a stepper motor to be able to control with Arduino...
For the moment I've here this motor :
LINK : http://www.slidesandballscrews.com/pdf/steppermotors/SY42STH47-1206A.pdf
and I'm using this driver
LINK : http://focus.ti.com/lit/ds/symlink/sn754410.pdf
The motor is powered with a 5V regulated circuit...
The idea is to be able to upload the max RPM of the motor with out loosing the torque and not use gears to accelerate...
The RPM that i need for the projector is : 1440RPM or 24 images for second...
So, maybe this is not the right motor, but someone have an idea on how can i work for this...
For the moment I'm using this sketch that i'v found on the WEB and that work really well but i can go at faster 60rpm
I've look on the web and there is nothing on how modify a cine projector with step motor, so maybe this can be a really good work to share with the community...
CODE :
/* Motor paso a paso de Copal
-
- Programa para manejar un motor paso a paso unipolar extraido de una
- unidad de disquette de 5'25. De acuerdo a la documentación que
- he encontrado, este: "[...] motor paso a paso fabricado por
- Copal Electronics, con 1,8 grados por paso y 96 ohmios por cada
- vuelta (de la bobina), con una etapa central conectada a diferentes
- cables [...]"
- [Jones on A Worked Stepping Motor Example]
- Es un motor paso a paso unipolar con cinco cables:
-
- rojo: conector de alimentación, lo tengo a 5V y funciona bien
-
- naranja y negro: bobina 1
-
- marrón y amarillo: bobina 2
- (cleft) 2005 DojoDave for K3
- http://www.0j0.org | http://arduino.berlios.de
- @author: David Cuartielles
-
@date: 20 Oct. 2005
*/
int motorPin1 = 5; // PIN-es del Motor
int motorPin2 = 10;
int motorPin3 = 6;
int motorPin4 = 11;
int delayTime = 2; // Delay que determina la velocidad de giro
int stepmotor = 0;
void setup() {
pinMode(motorPin1, OUTPUT); // Configuración de los PIN-es como salida digital
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
void loop() {
for (int stepmotor = 0; stepmotor < 50; stepmotor++)
{
digitalWrite(motorPin1, HIGH); // Los pines se activan en secuencia
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);
Serial.println(stepmotor, DEC);
}
}