Proyecto para pasar del enfoque de un objetivo; en mi caso el 2" 50 mm a una reflex en mi caso la Canon EOS 6D.
Se trata de un proyecto con arduino que permite de forma automática mover el enfoque de nuestro telescopio y pasar del enfoque del ocular al de la cámara réflex.
Este proceso puede ser difícil si estamos intentando fotografiar algún objeto de espacio profundo ya que debido a su escasa luminosidad no podremos verlo en pantalla ni con el ISO más alto.
Para ello hemos calculado el movimiento con una estrella luminosa. Determinando el número de pasos que el motor necesitará para pasar de nuestro ocular a la cámara y viceversa.
Esquema electrónico con arduino:
Con este esquema resultará muy fácil ya que nos permite una vez en cámara realizar un enfoque fino y modificar el número de pasos que previamente hayamos dado por buenos.
El botón rojo permite pasar a la cámara y si lo volvemos a pulsar retorna al ocular. Evidentemente nosotros deberemos cambiar el ocular por la cámara y dependiendo del peso de esta mover ligeramente la posición de las pesas. Conviene hacer unas marcas sobre la barra indicando las dos posiciones.
El programa para arduino es el siguiente:
// Asignamos el pin 10 para indicar la dirección y los pasos // Conectaremos un cable del pin 8 al pin STEP del driver // Conectaremos un cable del pin 9 al pin DIR del driver // Puenteamos los pines del drives RESET y SLEEP y los llevamos a 5V. arduino // Alimentamos con 12 V entre UMOT y GND añadir 100 uF en paralelo // Cable de GND de arduino a GND del driver // Pines del motor: Amarillo, azul, Rojo, verde ahora rojo verde amarillo azul // Intensidad maxima recomendada en el motor 0.6 A // Ajustar la resistencia ajustable del driver a: Vref = 0.5 *8 * 0.1 = 0.4 V. // Punta + tester al destornillador. Punta - del tester a GND Ajustar a 0.4 V. // Pin 6 Pasa de objetivo a cámara y viceversa // Pines 11 y 12 para ajuste fino del enfoque // pines 2 y 3 para el display CLK DIO respectivamente
const int STEP = 8; const int DIR = 9; const int ENABLED = 10; int sentido; int numeropasos; int objetivo; int posicion;
void setup() { numeropasos =600; objetivo=1; posicion=0; pinMode(STEP, OUTPUT); pinMode(DIR, OUTPUT); pinMode(13, OUTPUT); pinMode(6, INPUT_PULLUP); // pasa de cámara a objetivo y viceversa pinMode(12, INPUT_PULLUP); // ajuste fino numero de pasos poara enfoque pinMode(11, INPUT_PULLUP); // ajuste fino numero de pasos poara enfoque digitalWrite(DIR, HIGH); // Indicamos la dirección del motor enciendedisplay(posicion); digitalWrite(ENABLED, HIGH); }
void loop() { if (objetivo==1){if(digitalRead(6) == LOW){mueve(numeropasos,1); objetivo=0;}} // Pasa de objetivo a cámara if (objetivo==0){if(digitalRead(6) == LOW){mueve(numeropasos,0); objetivo=1;}} // Pasa de cámara a objetivo if (objetivo==0){ if(digitalRead(12) == LOW){numeropasos=numeropasos+1; mueve(1,1); delay(300);} if(digitalRead(11) == LOW){numeropasos=numeropasos-1; mueve(1,0); delay(300);} } }
void mueve(int numeropasos, int sentido){ digitalWrite(ENABLED, LOW); // Enerjiza las bobinas del motor for (int x=0; x< numeropasos; x=x+1){ paso(1,sentido); // paso(velocidad, sentido) if (sentido==1) {posicion=posicion+1;} if (sentido==0) {posicion=posicion-1;} enciendedisplay(posicion); //muestra en el display el numero de pasos } digitalWrite(ENABLED, HIGH); // quita tensión de las bobinas del motor }
void paso(int retardo, int direccion){ if (direccion==1){digitalWrite(DIR, HIGH);}else{digitalWrite(DIR, LOW);} // Indicamos la dirección del motor digitalWrite (STEP, HIGH); // Efectuamos un paso 1.8 grados delay (retardo); // Velocidad del motor digitalWrite(STEP, LOW); delay(retardo); }
void destellopin13(){ digitalWrite (13, HIGH); // Encender el led delay (6000); // Tiempo que queda encendido digitalWrite(13, LOW); // Apagar el led delay(1000); }
// Cambia numero en el display void enciendedisplay(int posicion){ display.setBrightness(1, true); //Enciendo el display display.showNumberDec(posicion, false); //Enseñamos valor de pasos }