Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
No estoy realizando un tobot, pero espero obtener algun tipo de ayuda. Mi planteamiento es el siguiente: Deseo que un motor de paso se mueva en base a los datos que yo le digite desde un teclado y lo puedo visualizar por pantalla LCD.
Si yo digito 16.3 cm en pantalla lo visualizo y el micro tendrá que realizar el calculo dividiendo entre la cantidad de pasos por cm que tendra que dar (constante, por ejm 0.1 cm/paso) Mi problemas es como paso los datos digitados a binario fraccionario y luego como realizo el calculo con valores fraccionarios para hallar los pasos necesarios ( pienso hacerlo con un PIC 16x873 y en asembler.
Ojo que el motor mueve un rodillo que jala el papel
Hola Carp25-3, porque en vez de hacerlo por pasos no lo calculas por tiempo, por ejemplo 100 cm= 100segundos , tendrias 1 cm = 1 segundo, te sera mas facil calcularlo.
10 cm = 10 segundos
30 cm = 30 segundos
Si la velocidad es mayor por ejemplo el doble serian 100 cm = 50 segundos
y asi sucesivamente.
es mejor trabajar con tiempos que con pasos en relacion con la velocidad que vaya usando disminuye o aumenta el tiempo.
O hacerlo con un motor con reductora y usando el PWM tambien te seria mas facil.
Un cordial saludo de Francisco Balbuena
Yo creo que debe hacerlo por pasos y no por tiempo, por que alo mejor aunque lo dejes un tiempo, no tienes verdadera certeza de que lo hizo.
En mi modesta opinión, sería utilizar una "retroalimentacion" al pic, es decir, mandarlo lo que realmente recorrio el motor, llamse encoder 😛
Lo mejor es que no uses datos fraccionarios, simplemente cambia de unidad, en vez de usar cm usas mm en los calculos 🙂 y te ahorras tener que trabajar con decimales, ya apartir de eso haces los calculos del numero de pasos, lo malo es que si trabajas con ensamblador el PIC no tiene instrucciones especificas de multiplicacion o division, por lo que tendrias que usar los algoritmos apropiados (esto en C no tendrias problemas ya que de ello se encargaria el compilador), los algoritmos los tienes aqui:
http://dac.escet.urjc.es/docencia/ETC-S ... ma16v2.pdf
apartir de la pagina 33
Aunque si es 0,1cm/paso es dividir por 1mm por lo que no te tendrias q complicar la vida ya que el resultado es simplemente el nº de milimetros que tiene que avanzar
Ya si quieres presentar en el lcd la notacion en cm simplemente consiste en poner la coma en la segunda posicion (en realidad lo que hacemos es trabajar con "coma fija" 😀
Saludos, y espero que te ayude
Si tu proyecto te exige precisión te aconsejo que optes por el consejo de RaDoN.
Yo creo que debe hacerlo por pasos y no por tiempo, por que alo mejor aunque lo dejes un tiempo, no tienes verdadera certeza de que lo hizo.
También me topé con un caso similar donde utilicé motores stepper y cuando intenté controlar el movimiento por tiempo no logré la precisión necesaria, en cambio por pasos logré mi cometido. Utilice un contador programado para saber exactamente cuantos pasos daría el motor (el 74LS161), en el caso de un PIC como dice RaDoN la retroalimentación substituiría la función del contador.