Un espectrofotómetro para microplaca Arduino powered (6 / 16 paso)

Paso 6: Ejecutar el steppers

Los pasos de 28YBJ-48 es una bobina de 4 paso a paso con un cociente del engranaje alto (citado como 64:1). Hay algunos tutoriales útiles aquí:

http://42bots.com/tutorials/28byj-48-Stepper-motor...

https://Arduino-info.wikispaces.com/SmallSteppers

Y un gran, general paso a paso Instructable aquí:

Que se conectan a la Arduino a través de un tablero de conductor del ULN2003 (el cable de paso a paso conecta de una manera solamente, así que no se preocupa de conseguir el cableado incorrecto). Puede ejecutar estos motores con el integrado biblioteca paso a paso en Arduino. Esto activa cada bobina en secuencia, el rotor en movimiento a través de 4 posiciones para hacer una rotación. Esto es muy simple, pero limita la velocidad de los pasos. Si las bobinas cambiar demasiado rápido, no puede mantener el rotor y el motor se congela (oirá un zumbido con algunas vibraciones). Hemos utilizado la biblioteca de AccelStepper , que permite el control más sofisticado del motor. Permite utilizar una secuencia de 8 pasos para mover el rotor en semitonos, haciéndolo más fácil para él, y por lo tanto llegar a velocidades más rápidas. También le permite utilizar la aceleración, que también aumenta la velocidad máxima. Tratando de conseguir el rotor para pasar inmediatamente a la velocidad final de resto hará que el rotor se atasque. Aceleración hasta la velocidad final permite el impulso del rotor para construir, lo que le permite llegar a velocidades más rápidos finales. La biblioteca de AccelStepper toma un poco acostumbrarse, pero que nos permitió ejecutar los motores significativamente más rápido. Usted tendrá que descargar la librería desde el enlace dado e instalarlo.

Configurar

 include <AccelStepper.h> // Motor pin definitions #define motorPin1 38 // IN1 on the ULN2003 driver #define motorPin2 40 // IN2 on the ULN2003 driver #define motorPin3 42 // IN3 on the ULN2003 driver#define motorPin4 44 // IN4 on the ULN2003 driverdefine motorPin5 39 // IN1 on the ULN2003 driver#define motorPin6 41 // IN2 on the ULN2003 driver#define motorPin7 43 // IN3 on the ULN2003 driver#define motorPin8 45 // IN4 on the ULN2003 driver // Define Parameters for Steppers #define HALFSTEP 8#define STEPS_PER_MOTOR_REVOLUTION 32#define STEPS_PER_OUTPUT_REVOLUTION 32*64 // =2048AccelStepper stepperX(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);AccelStepper stepperY(HALFSTEP, motorPin5, motorPin7, motorPin6, motorPin8);Stepper stepper_X(STEPS_PER_MOTOR_REVOLUTION, 38, 42, 40, 44);Stepper stepper_Y(STEPS_PER_MOTOR_REVOLUTION, 39, 43, 41, 45); int Position1 = 0;int Position2 = 0; 

Los puertos de salida de Arduino que conectan con las tarjetas de conductor del motor deben ser definidos. Cada motor de pasos se conecta a un tablero de conductor que modula la salida de Arduino y la convierte en la secuencia correcta de pulsos a los electroimanes de los pasos.

El mecanismo de paso de 8 se define como HALFSTEP como un parámetro para controlar los motores paso a paso. Esto proporciona la información a codificar para la rotación de los motores paso a paso a través del mecanismo de paso de 8. El ángulo de paso en la secuencia de 8 pasos (como mucho un solo paso gira los engranajes) es 5.625˚ (64 pasos por revolución). La relación de transmisión es 1/64, por lo que son 64 x 64 (4096) pasos por revolución del eje de salida del motor. También se definen las posiciones de los motores paso a paso como 0 en su posición inicial. Position1 es la variable de posición de stepper1; Position2 es la variable de la posición de paso a paso 2. Location define la columna en la microplaca que el sensor está por encima de (1-12), que es controlado por stepperX; PositionY define la fila en la microplaca que el sensor está por encima de (A-H), que es controlado por stepperY. En la posición inicial ambas variables de posición son 0, que equivale al sensor de la mentira sobre el pocillo A1

 // Set stepper speed and acceleration void setup(){stepper1.setMaxSpeed(3000.0);stepper1.setAcceleration(500.0);stepper2.setMaxSpeed(3000.0);stepper2.setAcceleration(500.0);} 

La configuración está encerrada en llaves: {...}. Se define la velocidad y la aceleración de los motores para ambos motores. Estas variables fueron solicitadas a ser dentro de las capacidades de los motores paso a paso para evitar el estancamiento, pero lo suficientemente rápido como para el programa de excesiva longitud. La velocidad, 3000 (pasos por segundo), equivale a 44 rpm; la aceleración, 500, equivale a 7.3 rpm ^ 2

Mover la mesa

 delay (2000); //Take reading of A1 

Antes de mover los motores se produce un retraso de 2000ms (2 segundos) para permitir que la primera muestra (A1) para analizar

 stepper1.runToNewPosition(stepper1.currentPosition() +52406);Position1 = Position1 +1; delay(5000); // Stepper1 with delays between each turn 

Paso a paso 1 está rotado 52406, que equivale a mover la microplaca 9mm entre dos muestras adyacentes. Una vez que el paso a paso se ha trasladado al pozo adyacente, la variable Location se incrementa en una unidad para definir que la columna que el sensor se encuentra por encima en la microplaca se ha incrementado en uno (por ejemplo, desde el pocillo A1 a A2). El paso a paso se detiene para permitir que el pozo a analizar.

 if (Position1 == 11){ //after 11 turns of stepper 1 (at A12)stepper2.runToNewPosition(stepper2.currentPosition() +52406); Position2 = Position2 +1; delay(2000); stepper1.runToNewPosition(0); //return motor 1 to A1 Position1 = 0; delay(2000);} 

Por lo tanto se moverá la microplaca para pozo adyacente está por debajo del sensor, pausa y repetir hasta que el sensor está por encima de la columna 12 (Location = 11). En este punto, la cláusula de if() ordena que stepperY cambia de puesto la microplaca hacia abajo para que el sensor está por encima de la fila siguiente (de la columna A fila B etc.), hay una pausa y la microplaca es devuelto por lo que el sensor se encuentra por encima de la primera columna.

 if (Position2 == 8){ //after 7 turns of motor 2 (row H)stepper1.runToNewPosition(0); //return motor 1 to H1 Position1 = 0; delay(2000); stepper2.runToNewPosition(0); //return to A1 while(1){}}} 

El segundo if() cláusula comandos de ambos motores para volver a sus posiciones originales (con la muestra A1 debajo del sensor) una vez la primera cláusula del if() se ha repetido 8 veces. En este punto se ha analizado cada pocillo de la microplaca para que esta cláusula sólo restablece la posición de la microplaca para el próximo uso. El código while(1) {} ordena esta cláusula sólo se repita una vez. Esto significa que una vez que la microplaca ha sido analizada y vuelto a A1 bien las paradas del lazo y la microplaca permanezca inmóvil.

Artículos Relacionados

Ratón óptico odómetro para Robot (Arduino)

Ratón óptico odómetro para Robot (Arduino)

Determinar con precisión el progreso de un robot con ruedas puede ser bastante complicado (y caro). Cómputo muerto asume que nuestros motores están perfectamente adaptados, no deslizan las ruedas y la superficie nos estamos quedando en es perfectamen
Termómetro Digital con Arduino Powered

Termómetro Digital con Arduino Powered

este es un dispositivo de medición de temperatura digital con la Arduino UNO R3. Es bastante simple y algo muy práctico para ser capaces de hacer. Un proyecto adecuado para aprender sobre pantallas de cristal líquido (LCDs) interactuando con un Ardui
Espectrofotómetro de Arduino

Espectrofotómetro de Arduino

Soy un astrónomo aficionado, la tarea de dar una charla educativa a otros astrónomos aficionados sobre cómo limpiar las superficies ópticas como lentes de telescopios y oculares. Quería hacer un pequeño experimento limpieza algunas muestras de vidrio
Termómetro binario Arduino Powered

Termómetro binario Arduino Powered

recientemente adquirí un Arduino Uno y estaba buscando un proyecto "getting started" cool. Decidí hacer un termómetro, como el kit he tenido todas las piezas necesarias (termistor, cables, resistencias, LEDs). A través de iteraciones de un par,
Vúmetro analógico y el reloj (Arduino Powered)

Vúmetro analógico y el reloj (Arduino Powered)

este proyecto trae el viejo tiempo Analog VU Meter, con la funcionalidad añadida de un reloj de aspecto aseado! Cuando apagas tu música los metros swing automáticamente en modo de reloj. Detrás de todo está el Arduino popular y fácil de usar.Esta es
Arduino odómetro para bicicleta (1,1 mA corriente total, sin pantalla)

Arduino odómetro para bicicleta (1,1 mA corriente total, sin pantalla)

Aquí es un odómetro simple, compacto (algo) y baja energía (sólo unos 1,1 mA de corriente) que puede ser instalado en una bicicleta. Rotaciones de la rueda son detectadas por picos de voltaje generados a partir de un movimiento de imán (zip-atado a u
Arduino intervalómetro para Sony a6000 / A7

Arduino intervalómetro para Sony a6000 / A7

Yo quería hacer lapsos de mi cámara sin espejo de Sony, pero la aplicación incorporada sólo admite 999 disparos a la vez. Así que, decidí construir un intervalómetro simple basado en Arduino que puede tomar una fotografía en un intervalo deseado para
Arduino intervalómetro para Nikon D40

Arduino intervalómetro para Nikon D40

Hola desde ItaliaConstruí un intervalómetro basados en Arduino para mi Nikon D40 porque no tiene ninguna conexión directa mediante cable y no comercialmente intervalómetro en ahora hay excepción a la montada en un apretón de la batería, pero tiene un
Escáner de hoja Arduino powered

Escáner de hoja Arduino powered

Para mis prácticas yo estaba interesado en la concentración de antocianina y clorofila en las hojas de Begonia semperflorens: Begoña. Existen instrumentos para medir estos pigmentos, pero éstos son costosos (alrededor de $2500,-) y sólo puede medir l
Orientada a solar, reloj de Arduino-Powered

Orientada a solar, reloj de Arduino-Powered

esto es un reloj diseñado para mantener la hora exacta (independiente de atómico o GPS), Mostrar la salida local del sol, el mediodía solar y puesta de sol y también sí mismo ajustar horario de verano.Quería el reloj para ser fácil de usar y flexible
Un espectrofotómetro simple DIY

Un espectrofotómetro simple DIY

¿Qué es esto?Este instructable le explicará cómo construir un bastante básico pero trabajo espectrofotómetro de partes fácilmente sourceable.Por supuesto, este dispositivo es nada comparado con un espectrofotómetro comercial, pero permitirá que el co
Espectrofotómetro de estudiante

Espectrofotómetro de estudiante

Inspiración:Permítanme primer de dan de crédito donde crédito es debido. Mi inspiración para este proyecto viene de AlfonsVH con su "Un espectrofotómetro simple DIY". Dicho que he hecho algunas mejoras a su diseño y quiero compartir lo que he ap
Arduino powered tanque RC

Arduino powered tanque RC

este es mi primer instructable así que por favor oso conmigo. Mi nombre es Stanley Deakins y he estado jugando con la electrónica desde hace algún tiempo, aunque fue hace años. Debido a mi trabajo reciente he reavivar esa pasión. He conseguido mis ma
Espectrofotómetro de Edison de Intel

Espectrofotómetro de Edison de Intel

Este instructable le explicará cómo construir una bastante básica.Por supuesto, este dispositivo es nada comparado con un espectrofotómetro comercial, pero permitirá que el constructor entender como funciona un aparato de esos para usarlo para DIYbio