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.pdfand I'm using this driver
LINK :
http://focus.ti.com/lit/ds/symlink/sn754410.pdfThe 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 [...]"
* [http://www.cs.uiowa.edu/~jones/step/example.html]
*
* 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);
}
}