codificador controlado Movimiento
descripción
control de rotación simple con el motor reductor que tiene un codificador de dos fases montado en el eje del motor eléctrico. Durante las pruebas que me quemó el 16F84A tuve y para esto he utilizado un 16F628A. El programa se encuentra todavía en la memoria de un 16F84A, con la versión especial.
proyecto
No giudico este proyecto lo remató, Todavía tengo algunas ideas un área en la que se puede utilizar para mis propósitos. Yo impulsado por la curiosidad cuando leo este hilo.
UNQue vendo empezado un tipo de trabajo similar a la discusión, Yo era capaz de reconstruir este proyecto. Hijo estaba involucrado en atrasola necesaria en su deseo de añadir alguna otra función.
Armar los componentes, la vídeo muestra cómo el montaje es capaz de hacer su trabajo.
El programa fue desarrollado con protones básico, pero yo diría que en modo híbrido, ya que contiene tantas partes escritas en asamblea, risparm1are por el espacio y mejorar el rendimiento de todos.
Fue escrito inicialmente por un 16F84A en 4 Megahercio, con la esperanza de que también se puede adaptar para otros micro-pin compatible con el sol cambia la configuración. No estoy seguro de que se ajuste al tipo de clase Micro MEJORADA 16F18xx. De alguna manera cabe duda de que el conjunto puede ser diferente para algunos puntos.
Una cosa curiosa que me pasó, Era que no sabía que el micro que estaba usando era de 4 Mhz y poner el cuarzo 20 Megahercio. A veces también podría trabajar.
|
|
QuESTO proyecto utiliza este tipo de motor que cuenta 11 impulsos por revolución del motor, que luego se reduce con una relación de 1:600 de wormgearbox. Para hacer dos vueltas como el hilo del foro, debe contar 13200 pulso. El cálculo sería:
2 rpm x 600 X 11 = 13200.
Al menos eso es lo que puedo ver en el informe de la serie, el motor que estoy usando.
Aparte de la idea de tener 2 rondas, como en la solicitud, capacidades son mucho más altos, lo que permite contar con más de 65500 pulso, eso sería junto a 10 rpm poste lento.
Se puede pensar en una tuerca acoplada al eje de salida con el fin de hacer un movimiento lineal, que permite una resolución de 1:6600, con ventaja parada sin correr el riesgo de la reversión de movimiento. De hecho, la unidad de reducción es irreversible e incluso si se carga eje de salida 's no se enciende de nuevo.
Podría ser utilizado como servidor, obligando a hacer incluso unos pocos grados de movimiento.
El programa también es adecuado con otro conjunto y que tiene una relación de reducción diferente o d 'recuento de impulsos. Parece que podemos alcanzar muy altas velocidades de recuento.
El programa acepta algunos controles convenientes, el asociado con otro dispositivo maestro es capaz de coordinar los movimientos de algunos de estos proyectos. Teniendo también la posibilidad de almacenar hasta dieciséis mayoría de los comandos comunes en el control de la EEPROM.
Tales como el apuntamiento de una antena parabólica para, o control de la puerta de un gallinero.
el esquema

Llos mismos materiales

Está diseñado para ser capaz de guardar la posición del encoder justo a tiempo para EEPROM, cuando la tensión de alimentación no se encuentra. Permitiendo a continuación para recuperar los datos de la última y ser capaz de moverse con buena precisión desde el mismo punto en que se había detenido.
El diodo en el pin del microcontrolador se utiliza para mantener 5 Volt incluso durante una caída de tensión abrupta al circuito, a través del condensador C3. Haciendo un estudio, He descubierto que sirven al máximo 8 ms para guardar un byte en la EEPROM. Para este caso se tendrá que guardar 4 bytes. i con 100 mF se las arreglan para salvar a todos los datos necesarios para empezar de nuevo. Pero mejor ser generoso y para evitar errores que elegimos 330 mF.
Con el uso del relé, es posible trabajar con motores de corriente continua o alterna, a expensas de que usted no puede tener un control de velocidad. En cualquier caso, es fácil de montar con poca modificación de un control de velocidad y tomar ventaja de las dos salidas para permitir que la dirección de rotación.
el software
el uso de firmware Educación
premisa:
Se comenta la fuente de programas mucho por ayuda entender lo que se ha escrito, y tal vez, en un periodo posterior Normalamente el mantenimientonortemi.
norteell'ultima versión que tenía que ajustar mucho para ser el mejor y por questo che hay muyy partes en el ensamblaje. si considerando también poner el perro guardián, que en Si hubiera que detener el programa en algún momento después, el micro se restablece. En particular manera de cuando se ha detectado una pérdida de poder, necesidad de reiniciar el micro después de guardar los datos en la EEPROM.
Adopté una atención particular que el recuento del codificador no exceda de los valores definidos como mínimo y máximo, que son DRIFT y MAXLIMIT (véase más adelante para las definiciones).
Comenté en Inglés, porque el vídeo está en exhibición para todo el mundo y pueden ser útiles no sólo enla italiano.
en Cabeceraxx.Inc. Existen muchas definiciones de una manera que le permite cambiar la configuración en un solo lugar sin el riesgo de haber perdido ninguna en otras partes del programa. (xx Es una numeración de la versión en uso). El mismo estilo sigue para el nombre del programa.
Hay dos con el fin de utilizar 16F84A o 16F628A, por lo que se puede utilizar toda la memoria EEPROM. Éste tiene que elegir antes de construir.
Debe tenerse en cuenta las dos definiciones principales que determinan una compilación de una manera diferenciada de la utilización del hardware.
Las opciones son:
|
DOTOGGLE |
Sirve para permitir que el botón o la activación por contacto, (en el RUN diagrama) para operar de una manera cíclica. Este método le permite iniciar y detener el movimiento, incluso antes de llegar al final de carrera de software. |
|
WITH_RS232 |
reetermina la adición de la comunicación en serie a los pines TXD y RXD. Se les permite cualquier cambio en la asignación de pines para su uso con la serie, pero no lo recomiendo. De hecho, predijeron que el circuito también ensamblará otros micro-controladores que son pin compatible con el 18F84A. De esta manera usted será capaz de ampliar las funciones del programa y un rendimiento aún mejor con una clase superior microcontrolador. |
|
WITH_OSC |
Sirve para hacer pivotar el movimiento dentro de los dos límites. Ver la descripción siguiente comando. A continuación se coloca la condición de excluirla de la compilación con el fin de activar una opción diferente, tales como el uso de temporizadores. Puesto que no hay lugar para tratar de poner todo. |
|
WITH_GOTO |
Opción que permite dar un comando de movimiento a una posición específica. Si está interesado en utilizar, será posible excluir. |
|
WANTWDT |
Esta opción determina si se debe utilizar el watcdog. Una opción que cuesta algo más de educación para una mayor seguridad, pero podría evitar otra opción para completar. |
Otras definiciones importantes:
|
MAXLIMIT |
Sirve para determinar los límites superiores de los valores de encoder. Es útil para establecer correctamente, Después de las pruebas iniciales, con el fin de definir el valor de punto medio (MEDIO) |
|
MEDIO |
calculados automáticamente. Sirve para definir un valor inicial que se fijará en la EEPROM. |
|
DERIVA |
Valor que tiene en cuenta para calcular la parada antes de que el contador de codificador supera un límite de palabra (que son 16 poco). El caso para evitar que después de apagar el motor, sigue el escrutinio, dada la inercia en el movimiento. Así que si el proyecto de ley, por ejemplo, Está cerca de cero y sigue a la baja, Esto conduciría a tal punto que se convierte 65535 y disminuciones. La razón es precisamente este cálculo. |
|
TIEMPO DE ESPERA |
Un valor que se utiliza para un período de milisegundos de espera que el motor se haya detenido completamente. Si encuentra otro de los 'impulsos del encoder, luego se repite el ciclo. |
|
DEBUGGING |
Se tiene que hacer algunas pruebas de verificación en casos de problemas de encuentro. |
Como utilizar
primer método por controles de botón.
Una sola entrada se proporciona para iniciar el movimiento hacia un punto definido como una parada. Cerrando el contacto con el suelo, el programa decidirá la ruta de la carrera de software más lejana.
Como se ha mencionado, También ya planificada, el contacto puede detener el movimiento antes de que hayan alcanzado el final de carrera. Es posible que desee desactivar esta función para parada durante el movimiento.
Tan pronto como el contacto está cerrado, con tal vez unos pocos milisegundos de retraso, Se inicia el movimiento y el LED (esquema LED0) luces para el período que el motor está en marcha. En mi experiencia he utilizado un LED tricolor, para esto es LED0 azul.
Si se tiene una cierta inercia antes de la inmovilidad completa, Este LED parpadea para indicar la fase de retención a un punto muerto. Tal vez sea sólo un pequeño flash, cuando la deceleración es rápido.
Al llegar al final de carrera de software, prende un interruptor de los dos LEDs. Con mi LED2 LED tricolor es de color rojo y verde LED1 es. Las luces verdes al final de la posición A y el rojo para la posición B.
Si lo hace, asegúrese de la dirección de rotación del motor. De hecho, se espera que cuando el recuento del codificador disminuye la motocicleta se mueve a la posición A. Su comando de configuración de la carta de serie es p minúscula.
Cuando aumenta el recuento del codificador, La motocicleta se mueve a la posición B. Su comando de configuración de la carta de serie es mayúscula.
Será importante en la primera fase de conexión del motor y determinar la dirección de rotación.
segundo método Comandos de serie.
la comunicación ha sido provista con la micro, serie a través. Esto puede ser un adaptador USB-RS232 es compatible con los niveles de tensión de micro. También puede utilizar un módulo Bluetooth, que pueden necesitar un enfoque en los niveles de tensión de la micro. Pongo un divisor de tensión para adaptarse a las 3,3 la pierna voltios módulo Bluetooth RX. El pin TX no crea problemas graves.
Queda listo para operar también la entrada para iniciar el movimiento, que determina el movimiento en función de la distancia a los interruptores de límite. Esta entrada puede verse en el diagrama con una definición del botón CORRER.
Lista de comandos de serie
El modelo de control se basa en una letra inicial seguido de números, si es necesario.
Para ello, el comando sería el caso:
|
Xnnnnn |
X Significa una carta (miniscola o minúsculas) y norte uno o más dígitos de un número entero, único positivo. Cualquier otro símbolo o carácter extremos de entrada válida, hasta alcanzar 6 entrada de escritura. Para completar el comando son las siguientes condiciones:
|
Todas las señales de serie, detener el movimiento.
La razón eligió parada cuando llega a un personaje es el hecho de que los períodos de descanso para la recepción de un bit es corrompido por las interrupciones que son necesarios para mantener el codificador. Esto hace que la pérdida de la medición de un poco y luego ya no es recibida carácter válido.
Sólo se siente un personaje paradas, pero no está listo ahora para recibir más órdenes, porque toma la fase de deceleración del motor. Dependiendo de qué tan bien se establece la definición waitTime.
Los controles sin números son las letras A, segundo, S, V, la, do. Con la letra V, no importa si se envía en mayúsculas o minúsculas que tendrá la información más relevante.
Para cada carta, ver los detalles a continuación.
para los errores tipográficos, el comando para borrar un carácter (de retroceso) interrumpe la entrada de valor.
Comandos en el detalle de la serie:
|
UN |
Endiferente movimiento activo y disminuye el recuento de 'codificador |
|
segundo |
Endiferente activa el movimiento para aumentar el recuento de 'codificador. Todos los demás caracteres detienen el movimiento cuando se lanzó. PAGer este, mejor esperar hasta que se detiene el movimiento y volver a entrar en el comando. |
|
do |
En mayúsculas mover el puntero en la EEPROM de los finales de carrera a la primera locación salvado. De hecho, incluso apagando, los restos de datos. en minúscula, restablece los valores predeterminados, la ubicación actual. Ver detalles de N. |
|
GRAMO |
Tenuemente ya sea en mayúsculas o minúsculas, mueve el motor al codificador de posición por escrito en las figuras que siguen. |
|
METRO |
cualquier, permite el cambio del valor conteo dell'encoder. Así se puede definir un nuevo valor de la posición del codificador. Se puede ayudar a poner el recuento dentro de los límites permisibles y eliminar la compulsión de haberse movido más allá del límite. O para corregir algunos retrasos. |
|
la |
mayúscula, establece la función de oscilación entre los dos finales de carrera de software. Cualquier carácter de entrada se detiene la oscilación l ', pero para eliminar la opción que debe enviar el comando en minúsculas. |
|
PAG |
Minúscula establece el límite en el recuento de descenso. Se debe tener cuidado al introducir un valor apropiado con el fin de ser aceptado. Esto está en reIRECCIÓN que el codificador decrementa el conteo con el comando UN. Shift se aplica al límite opuesto. Esto está en reIRECCIÓN que el codificador incrementa la cuenta con el comando B. |
|
norte |
Comando para cambiar la posición de la memoria EEPROM. Acepta uno o debido cifras, sy una mayor entonces se elige la más alta memoria disponible. Al hacer esto se utiliza una limitación distinta de finales de carrera. |
|
S |
Al igual que el comando P, Sólo que para salvar la posición actual del contador, no hay números que siguen a la letra. Útil para ver la ubicación actual está cerca del límite y luego a establecer que como válida. Si la carta es pequeña usted quiere ahorrar para un equipo, admitido en consonancia con los valores introducidos. |
|
T |
opcional, sacrificar otras opciones, como el perro guardián, oscilación y el comando G. También puede llenar esta opción. |
|
V |
cualquier, muestra información relativa a los valores límite y reell'encoder, más el número de ubicación de memoria EEPROM. |
Fin del mensaje de comando:
Al final de cada comando es un mensaje informativo. La memoria de programa es el límite, no debe hacer cambios necesitan, sin saber cómo.
El mensaje por ARE “DE ACUERDO” Si todo se hace bien, o “ERRAR norte” si hubo un error de operación.
Por norte Hay una explicación del posible error. Ver la lista de abajo.
|
1 |
Informar que trata de ir más allá de los límites predeterminados (OPERACIÓN O MAXLIMIT) |
|
2 |
El valor introducido está fuera de los límites inferiores, determinado por los finales de carrera y la posición media de la carrera. (De hecho, no es un medio, que es el valor de la mediana) |
|
3 |
El valor de entrada se encuentra fuera de los límites superiores, MEDIO y determinado entre el límite superior. |
|
4 |
El valor debe ser superior a MEDIO |
|
5 |
El valor debe estar en el centro |
|
6 |
El enviado primer carácter no es válido, quizás corrupta. |
|
7 |
La ubicación que está intentando escribir en la EEPROM no es correcta |
comandos activos rellenando sin RS232
También puede llenar la opción de usar la serie.
Para el ensayo se esperaba utilizar el impulso de la orden con un solo botón con funciones divese.
Las funciones se añaden en el programa OneButton.Inc que puede utilizar una cadencia de los periodos medidos por el Timer0, también se utiliza para destellar el LED. Esta frecuencia determina el período de validez de la pulsación del botón, para filtrar cualquier pulso vibraciones mecánicas.
Existe la posibilidad de configurar un retardo de tiempo por el software, que, desgraciadamente, no permite el 'uso del flash LED durante la operación. Yo diría, no cambie estas piezas.
No están habilitadas todas las características, que le permite mantener el programa en poco más de 600 instrucciones de la máquina. Utiliza sólo las definiciones útiles para este programa, aunque el programa OneButton.Inc que ofrece alguna otra.
Que aquellos que están activos:
|
Hacer clic |
Se utiliza para guardar en la memoria EEPROM, en la fase del programa. O para moverse en una dirección, el programa selecciona el más distante. También es detener la motocicleta (si utiliza su opción). |
|
Haga doble clic |
Se utiliza para iniciar y terminar la fase de programación. Puede que no se guarde en la memoria EEPROM cuando se pulsa una segunda vez sin haber dado un click para almacenar. Los límites serán válidos solamente en la memoria RAM. No se guardan en la memoria EEPROM. |
|
Presión larga |
Se utiliza para desplazarse en la dirección A, durante la fase de programación. El final de carrera se coloca en el máximo definido con DRIFT. |
|
Haga clic y corta pulsación larga |
Se utiliza para moverse en la dirección B, durante la fase de programación. El límite se establece en el máximo. El final de carrera se coloca en el máximo definido con MAXLIMIT. |
Con estas posibilidades que se pueda imaginar programación de las posiciones finales con la secuencia que requiere un doble clic para iniciar la fase de programación. el LED0 (blu) parpadea rápidamente. En ese momento usted será capaz de actuar para mover el motor en la posición de parada. Con una pulsación larga que empieza a moverse hacia el límite de una. Al soltar el botón almacenará en el límite de memoria RAM. Debe, sin embargo, pasar del puesto de control de punto medio necesario.
Del mismo modo se puede hacer por el otro sentido de giro, el comando que en este caso será un clic seguido por una pulsación larga, bajo guardado. Cuando la presión será lo suficientemente largo que el motor se pondrá en marcha el movimiento en la dirección B, mantenerse en movimiento todo el tiempo que mantiene presionado el botón. A continuación, debe ejecutar el comando después de la finalización de la primera. En este caso se llevará a cabo hasta que llega al límite deseado.
En este punto habrá límites almacenados en la memoria RAM, pero que siempre pueden cambiar mediante la repetición de la 'operación. Para hacer definitiva puede guardarlos en la memoria EEPROM con un comando de un simple clic.
Este clic no tendrá efecto durante el periodo d 'impuestoción que está bordeada por una secuencia de doble clic, o unala doble y comenzandola doble después de la programación.
sumadora, se observa que en la fase de comandos de programación se inició y se concluyó con la doble click. Fuera de la cual no surten efecto. Con la excepción de clics que se necesita para iniciar la motocicleta.
Puede descargar el paquete y / o ver el vídeo
NOTA
Utilice el proyecto implica la responsabilidad, que el 'autor asume que causan daños a personas o bienes.


Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir