Páginas:
Por: Ariel Palazzesi
@
miércoles, 07 de mayo de 2008
Nota vista 35738 veces
Muchos proyectos, sobre todo los relacionados con la robótica, involucran la utilización de motores paso a paso. Se trata de un tipo muy particular de motor, cuyo funcionamiento difiere sustancialmente de los motores que vemos habitualmente, y cuyos secretos vamos a develar en este artículo.
El software
Nuestro programa tiene que ser capaz de energizar las bobinas en el orden adecuado. Utilizando el lenguaje BASIC del PIC SIMULATOR IDE (que puedes aprender a utilizar leyendo nuestro tutorial sobre programación de microcontroladores) resulta muy sencillo.
Comenzamos definiendo los pines del 12F675 como salidas, a la vez que cambiamos sus nombres por “bobina0”… bobina3”. Como el programa de ejemplo contempla la demostración de giros en ambos sentidos y a diferentes velocidades, es que hemos definido una serie de variables cuyo valor inicial determinan como y a que velocidad girará el motor.
Estas variables están comentadas en el código fuente, y los tiempos están expresados en milisegundos. El giro se produce en uno u otro sentido gracias a las sentencias que componente las subrutinas “rotacionder” y “rotacionizq”.
Cada bucle FOR-NEXT se encarga de efectuar 10 pasos en un sentido, y luego de un tiempo, 10 pasos en el sentido contrario. Por supuesto, el lector puede variar estos parámetros para experimentar con el motor.
|
|
|
Utilizamos el PIC SIMULATOR IDE.
|
El PAP también puede simularse.
|
‘--------------------------------------------------
‘NeoTeo – Controladora de motores PAP
‘con PIC12F675 - Versión 1.01
‘--------------------------------------------------
Symbol bobina0 = GPIO.0
Symbol bobina1 = GPIO.1
Symbol bobina2 = GPIO.2
Symbol bobina3 = GPIO.4
AllDigital
TRISIO = %000000 'GPIO Todo como salidas
Dim tiempoder As Word 'Demora entre energizado de bobinas
Dim tiempoizq As Word 'Demora entre energizado de bobinas
Dim tiempo1 As Word 'Demora después de girar a un lado
Dim tiempo2 As Word 'Demora después de girar al otro lado
Dim i As Word 'cantidad de pasos a dar
tiempo1 = 5000 'En milisegundos
tiempo2 = 1500 'En milisegundos
tiempoder = 50 'En milisegundos
tiempoizq = 10 'En milisegundos
GPIO = %000000 'todas las salidas a 0
loop: 'Bucle principal
For i = 1 To 10
Gosub rotacionder
Next i
WaitMs tiempo1
For i = 1 To 10
Gosub rotacionizq
Next i
WaitMs tiempo2
Goto loop
End
rotacionder:
bobina2 = 1
bobina0 = 1
WaitMs tiempoder
bobina0 = 0
bobina2 = 1
WaitMs tiempoder
bobina1 = 1
bobina2 = 1
WaitMs tiempoder
bobina2 = 0
bobina1 = 1
WaitMs tiempoder
bobina3 = 1
bobina1 = 1
WaitMs tiempoder
bobina1 = 0
bobina3 = 1
WaitMs tiempoder
bobina0 = 1
bobina3 = 1
WaitMs tiempoder
bobina3 = 0
bobina0 = 1
WaitMs tiempoder
Return
rotacionizq:
bobina2 = 0
bobina0 = 1
WaitMs tiempoizq
bobina0 = 1
bobina3 = 1
WaitMs tiempoizq
bobina0 = 0
bobina3 = 1
WaitMs tiempoizq
bobina3 = 1
bobina1 = 1
WaitMs tiempoizq
bobina3 = 0
bobina1 = 1
WaitMs tiempoizq
bobina1 = 1
bobina2 = 1
WaitMs tiempoizq
bobina1 = 0
bobina2 = 1
WaitMs tiempoizq
bobina2 = 1
bobina0 = 1
WaitMs tiempoizq
Return
En un articulo futuro analizaremos con detalle el funcionamiento de los motores PAP de 4 cables, que requieren de dos circuitos conocidos como “puente H” para funcionar.
|
|
|
El PCB tiene solo una cara.
|
Nuestra controladora con PIC, posando para la foto.
|

Controladora de motores PAP

Trucos GTA IV

Cómo agregar música en WinMUGEN
Prohibida su copia total con o sin fines comerciales. Copias parciales deben citar la fuente.