⚡ Descuentos en cursos en video - Lleva tu aprendizaje técnico al siguiente nivel y aprovecha precios especiales antes de que termine la oferta. 🔥 Aprovechar oferta ahora 🔥
Microcontroladores y sistemas digitales

Programar por organigrmas en Picaxe.

abevi
abevi
1
hace 17 años
hace 17 años
Hola a todos, tengo un problema, y es que no me aclaro para programar con organigramas el picaxe, si alguien me puede explicar como se hace, se lo agradeceré, el programa que quiero pasar a organigrama es el siguiente goto paro inicio: if input0 is off and input1 is off then avanza if input0 is off and input1 is on then giraizquierda if input0 is on and input1 is off then giraderecha if input0 is on and input1 is on then avanza goto inicio retrocede: low output4 high output5 high output6 low output7 goto inicio paro: low output4 low output5 low output6 low output7 wait 5 goto inicio giraderecha: low output4 high output5 low output6 high output7 high output2 pause 1 low output2 goto avanza giraizquierda: high output4 low output5 high output6 low output7 high output1 pause 1 low output1 goto avanza avanza: high output4 low output5 low output6 high output7 Lo tengo que programar con un picaxe 18. Gracias.
abevi
abevi
1
hace 17 años
hace 17 años
Lo que tengo que hacer son dos programas para este coche, uno es que cuando los interruptores que tiene delante o el que tiene detras que pare, gire y tire para atrás o avance, según le dé, delante o atrás,y lo otro que tengo que hacer es que siga una línea con los sensoneres que tiene delante del morro, y eso lo tengo que hacer con un organigrama. Eso es lo que tengo que hacer. Si me puedes ayudar, gracias, e igualmente gracias por la corrección y el link, que ahora le pegaré un vistazo. Quería poner unas fotos, pero no se como subirlas, si las quereis ver las fotos del coche os las puedo mandar.[/youtube]
torres.electronico
hace 17 años
hace 17 años
Hola amigo, antes de ver la manera de programar por intermedio de flow chart (diagrama de flujo), debes de re-ver la teoría de programación de estos microcontroladores en basic, ya que note que tienes errores en los comandos y rutina en gral...a continuación te detallo... inicio: if input0 is off and input1 is off then avanza if input0 is off and input1 is on then giraizquierda if input0 is on and input1 is off then giraderecha if input0 is on and input1 is on then avanza goto inicio (el error aquie esta en los comandos inexistentes de "is of - is on") retrocede:(esta subrutina no figura en el programa principal) low output4 high output5 high output6 low output7 (este espacio ocupa memoria dentro de microcontrolador, y en versiones antiguas de los compiladores de estos micros, te tiraban errores) goto inicio(cuando termines una subrutina, trata de no emplear goto, por que como resultado vlveras a comenzar desde la 1era linea que tienes en el programa principal, y eso te traeria el problema de que siempre estaria accionando el mismo comando momentaneamente empleado...te recomiendo que implementes el comando "return", que te dara la ventaja de que cuando termine de accionar la subrutina, volvera a la linea inferior de donde partio con la orden de entar a la rutnia donde esta en ese momento... al implementar un watch dog, amplias mas ventajas a tu proceso, tales como velocidad y accionamientos multiples) paro:(esta subrutina no figura en el programa principal) low output4 low output5 low output6 low output7 wait 5 goto inicio giraderecha: low output4 high output5(si implementas esta funcion asi, hasta que la salida4 no cambie de estado, no pasara a la siguiente linea...para que ello no ocurra, debes implementar el comando "let pin" que configura directamente los estados de las salidas) low output6 high output7 high output2 pause 1 low output2 goto avanza (esta orden esta bien? ya que mencionas en la parte superior una orden especifica para ir hacia delante) giraizquierda: high output4 low output5 high output6 low output7 high output1 pause 1 low output1 goto avanza avanza: high output4 low output5 low output6 high output7 (aqui faltaria la instruccion de adonde ir cuando termine la subrutina) esto, tendria que ser asi: inicio: if input0 =0 & input1=0 then paro if input0 =0 & input1=1 then giraizquierda if input0 =1 & input1=0 then giraderecha if input0 =1 & input1=1 then avanza goto label_73 paro: let pins = 0 ' %00000000 return giraderecha: let pins = 132 ' %10000100 pause 2000 let pins = 128 ' %10000000 return giraizquierda: let pins = 82 ' %01010010 pause 2000 let pins = 80 ' %01010000 return avanza: let pins = 144 ' %10010000 return Igualmente, antes de hacerte la rutina para el proceso que vos queres, me gustaría que me comentes que acciones querías hacer, asi yo te la subo, ya que la rutina que te subi, seria la manera correcta de como se escribiría, pero no la manera correcta para que funcione....digamos que la rutina que mencionamos es un tanto obsoleta. Aca te dejo como seria la rutina que subiste vos, pero en diagrama de flujo...(si la imagen no sale completa, click con el botón derecho del mouse sobre la imagen y si tienes firefox, selecciona "ver imagen", si tienes internet explorer, selecciona "guardar imagen") Te recomiendo que le pegues una leida a este curso que subi en el foro de microcontroladores: ToDo SoBRe MiCRoCoNTRoLaDoReS "PICAXE"
Reparaciones similares solucionadas

¿Conoces una solución?

¡Aprende a reparar con estos cursos YoReparo!

4.6
(10)

Curso Localización de Fallas en Refrigeración en Heladeras/Neveras On/Off

Yamil Alarcón
$ 29 USD
$ 12 USD
4.94
(16)

Curso Refrigeración Comercial Aplicado a Diagnóstico y Reparación

Ing. Georga Melgarejo
$ 40 USD
$ 13 USD
4.64
(45)

Curso Tecnología Inverter - Fabricación de probadores y herramientas

Yamil Alarcón
$ 240 USD
$ 40 USD
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos?
Regístrate gratis