Autor Tema: ¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple  (Leído 43705 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #30 en: 08 de Julio de 2010, 11:25:22 »
Fer esta es la semana de tu santo felicidades, espero no sea tu cumpleaños, no te compre regalo.
Luego te enviare el pnl en el que estoy trabajando del inversor.
Ahora necesito que me expliques algo del diagrama que me mandaste, esta el icono de inicio luego hay uno rectangular que tambien dice inicio, luego el icono de condicion pero se conecta con uno que he visto pero no se que hace. te mando el diagrama y esta marcado lo que no conozco y me gustaria saber que hace y como llegas a el, su posicion en la barra de herramientas.
Un Abrazo y no seras tu uno de los que corre frente al toro...!

Sergio
« Última modificación: 13 de Julio de 2010, 14:33:17 por Fer_TACA »

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #31 en: 08 de Julio de 2010, 15:26:39 »
Hola Sergio:

Gracias por las felicitaciones es lo que tiene tener por santo a uno tan famoso, pero no, no es mi cumpleaños aunque lo será muuuuuuuuuuuuuy prontito. Vamos al caso:
El segnudo inicio que preguntas es solo una etiqueta, para no mezclar mucho las flechas quiere decir que cuando el programa llega a cualquiera de las elipses con el nombre inicio, el programa vuelve a esta etiqueta blanca y rectalgular llamada "inicio". Quizas mi error fue llamarla allí, pero para que no te lies puedes llamar a todas menos a la 1ª amarilla que pone inicio puedes cambiarlas por "principio", "start" o lo que tu quieras.

En la condicion se comprueba si tienes activada esa entrada (que pudiera ser de puesta en marcha del programa) si es que si, continua con el programa hacia abajo, y si es que no llega por la derecha al rectangulo marcado como "NOP" y como su nombre indica es: NO operacion, vamos que le micro no hace nada, coloca el retardo de un ciclo de reloj, es decir aprox 1/4 la frecuencia de oscilacion. De aqui se regresa a la condicion y se vuelve a estar evaluando el estado de esa entrada hasta que cambia de estado.

Como podrás comprender y ya te dije en post anteriores el programa necesita ser mejorado, pero lo dejaba para mas adelante segun vayas avanzando por ejemplo: -ese NOP se deberia de sustituir por un juego de instrucciones de tal manera que se apague el motor, por que, simple si quitas la orden de marcha lo normal es que se apague todo. Tambien se puede utilizar para realizar algun tipo de secuencia como tu planteabas como que en un momento determinado se quisiera abrir la puerta,etc. Como consecuencia de eso se plantean otras cicustancias como que al abrir la puerta en ese momneeto determinado se parase la cuenta del tiempo y que al volverla a cerrar siguiese el ciclo(tiempo) donde se paro. Pero buenoi estaras conmigo que esto es mejor dejarlo para mas adelante, ¿Te apece?
Bueno pues espero que sigas avanzando y preguntando que te seguiré echando un cable.

fermin
« Última modificación: 13 de Julio de 2010, 14:33:32 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #32 en: 09 de Julio de 2010, 12:13:28 »
Hola FER: como es eso que la reina va a decretar anmistia a los pulpos y no seran mas usados en la paella en honor al pulpo paul.
Vale si salen campeones....
Bueno te mando comprimido como llegue a hacer esto, un doc con la reseta con los pasos y esta sacado de un tutorial y yo lo arregle para mi.Y el npl.
Si estuviese bien me gustaria ver otra forma de realizarlo.
Hoy festejamos el vicentenario del Pais, locro y vino y que viva la patria carajoooo....
Un abrazo Sergio
« Última modificación: 13 de Julio de 2010, 14:33:46 por Fer_TACA »

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #33 en: 09 de Julio de 2010, 14:00:26 »
¡¡ Enhorabuena Sergio !!

Eso es exactamente lo que querias realizar, e igual que lo que te habia puesto yo con la excepcion de que te añadi las etiquetas para no mezclar las flechas de la secuencia y por que te añadí la primera condicion.
Observaciones :

1º En tu programa tienes configurado el bit 2 del puerto como entrada y no lo estás ulizando. Tu programa va a funcionar aunque este asi..
2º Si has decidido mejorarlo estaría bien definido como entrada ese bit.
3º El tutorial está perfecto.
4º En el tutorial te pones que los retardos se pueden obtener por ciclos fijos o variables. Cierto, pero ademas se pueden conseguir retardos con interrupciones.
5º Con el uso de retardos por ciclos, mientras estas con ellos el micro no hace ninguna otra funcion. En algunas aplicaciones esto no es bueno ya que puedes requerir que el micro realice ademas de esa tarea alguna otra. Eso se consigue con el uso de interrupciones.
6º De la forma que esta realizado el programa no es flexible. En algun post anterior comentabas que el operario podria abrir alguna puerta o parar algun motor de forma manual
7º Al no ser flexible cada vez que lo desconectes al volverlo a poner en marcha siempre empezará con el mismo ciclo. Motor a Izquierda.
Posibles mejoras:

1º Parar el motor en un momento indeterminado  y que al querer que vuelva a funcionar, el sistema arranque con el tiempo y ciclo donde se encontraba al pararse.
2º Que este siempre bajo tension y que el equipo se ponga en marcha cuando el operario realice unas determinadas operaciones.
3º Control de tiempos por interrupciones, de esta manera el micro podria realizar cualquier otra cosa que se te pudiese ocurrir.
5º Eliminar la configuracion como entrada del pin2 de tu programa. Se mejora tu programa evitando que ese pin te pueda causar algun daño.

Sobre todo seguir aprendiendo con NIPLE si quieres realizar algunas otras cosas. eso depende de ti y si lees tu tutorial veras que no es dificil sino tener claro que es lo que se quiere realizar. despues intentar plantearlo como lo harias de una manera logica y despues ya implementarlo.

saludos

fermin
« Última modificación: 13 de Julio de 2010, 14:34:01 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #34 en: 10 de Julio de 2010, 13:00:14 »
Hola Fer: Si es como dices el diagrama que me mandaste era eso que yo hice siempre estuvo en mis narices el problema es que estaba en la punta, soy narigon, pero eso no seria nada si no fuera corto de vista........

Bueno como dice Yack el destripador vamos por parte, quiero mejorarlo como me pones en.

Posibles mejoras:

1º Parar el motor en un momento indeterminado  y que al querer que vuelva a funcionar, el sistema arranque con el tiempo y ciclo donde se encontraba al pararse.

2º Que este siempre bajo tension y que el equipo se ponga en marcha cuando el operario realice unas determinadas operaciones.

Me he dado cuenta que me llevo con los tutos porque, yo leo y dicen por ejemplo vaya a barra de herramientas rutinas básica configurar puerto alli, toque eso ponga, esto, con esto se realiza eso y le mostrara esto otro etc. Osea las acciones están explicadas de manera que puedo llegar a realisarlas sabiendo donde están, como se manejan y que hacen.

Me podrias explicar como hacer el punto 1º y el 2º de esa manera y por supuesto los diagramas que me mandaste me ayudaron a ver como queda.
Fer espero puedas enseñarme me esta gustando mucho porque obtengo resultados. Tú eres electronico?

Un abrazo Sergio
« Última modificación: 13 de Julio de 2010, 14:34:14 por Fer_TACA »

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #35 en: 11 de Julio de 2010, 07:39:17 »
Hoy Sergio hoy con el partido creo que va ser un poco chungo quie me pueda sentar concentrado delante del Pc. No obstante tomo nota de lo que quieres mejorar y empezaremos por el principio para ir avanzando.

Respecto a tu pregunta:  LLevo algo a si como 38 años dedicandome a la electronica, aunque nunca obtuve titulacion, no me gustaba el estudiar de forma reglada cuando era joven, despues vi que era necesario saber y aprendi a base de tener constancia como autodictacta. Es duro si realmnete quieres aprender de esa forma pero al final se consiguen buenos resultados.
Mi ocupacon principal es que formo parte de una empresa que se dedica a la fabricacion de controles de frenos y antidelizamientos para trenes a nivel mundial y dentro de ella mis competencias mas importantes es la de estar: diseñando circuitos impresos para las tarjetas electronicas de esos controles de freno y ademas participar en la elaboracion y diseño de los prototipos.

Al mundo de los pics ingresé por hobby desde hace 8 años y desde entonces no paro.

Seguiremos con el proyecto

Un saludo
fermin
« Última modificación: 13 de Julio de 2010, 14:34:30 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #36 en: 11 de Julio de 2010, 15:45:51 »
Fer la mayor de las suertes para España, En Argentina el 70% somo descendientes de inmigrantes Italianos o españoles. Mi apellido es Peralta como veras mi corazon late por la madre patria.
Te preguntaba si eras electronico porque la gran mayoria de los programadores de micros lo son por una necesidad de actualisarse, y ya que lo comentas debe ser facinante tu trabajo y me imagino que debe haber sido duro ser autodidacta, lo vivo en carne propia yo soy herrero o metalurgico y quiero aprender para mejorar mi profesion agregando mano de obra especialisada, estoy seguro que lo lograre..... bueno un par de reencarnaciones puede que me llevo pero tengo perseverancia.
Me puse a ver como llegar al mismo resultado pero con diferentes alternativas te mando lo que hice para que me lo corrijas. pero sigamos con lo del pos anterior.
Un abrazo Sergio.
 
« Última modificación: 13 de Julio de 2010, 14:34:47 por Fer_TACA »

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #37 en: 12 de Julio de 2010, 07:44:59 »
Esta tarde los compruebo y te digo algo al respecto.


F.
« Última modificación: 13 de Julio de 2010, 14:35:00 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #38 en: 12 de Julio de 2010, 14:02:20 »
Hola sergio, me parece que el adjunto ultimo no estan bien, dejaria el que pusiste en el post nº32

Por otra parte:
Basandonosen las propuesta: de posibles mejoras:

1º Parar el motor en un momento indeterminado  y que al querer que vuelva a funcionar, el sistema arranque con el tiempo y ciclo donde se encontraba al pararse.

2º Que este siempre bajo tension y que el equipo se ponga en marcha cuando el operario realice unas determinadas operaciones.

Para poder realizarlo correctamente vamos a utilizar las interrupciones, de esa manera podremos estra cheqeando constantemente el estado de la entrada que tenemos en el bit 2. resumiendo y según tu programa tenemos hasta ahora:

Bit0= motor_izquierda
Bit1= motor_derecha
Bit2= Marcha_paro

Partiremos de que daremos tension(5V) al equipo, pero no se activará todavía ningun sentido de giro del motor debido a que el operario puede tener alguna puerta abierta y/o estar realizando alguna operación. Hecho lo cual querra empezar arelaizar su ciclo y para eso debera de poner =1 (5V) el bit2(marcha-paro).
Una vez realizado esto empiezan los ciclos hasta que el operario quiera pararlos en cualquier momento  después continuar otra vez por lo que se guardaran los tiempos y se continuaran desde el punto en que se paró.

Para usar el uso de interrupciones: El pic tiene dos “contadores” que son el TMR0 y el TMR1, el primero de 8bits y el segundo de 16 bits. Para comenzar utilizaremos el TMR0, aunque por los tiempos que necesitas seria mas comodo el utilizar el TMR1. Despues de puede cambiar con unos pequeños  ajustes.

El TMR0 es un contador ascendente que cuando su valor pasa de FFFFFFFF a 00000000, el pic activa un bit del registro de control del TMR0 llamado T0IF. Bueno pues si se controla adecuadamente ese bit podremos controar el tiempo mediante el uso de interrupciones.

Debes mirar el dataste, la parte de configuración del TMR0 y comprobaras que tambien tiene un predivisor, por lo que si se utiliza el predivisor de 1/256 con un reloj de 4MHz y cargamos el TMRO con un valor de 0000000 vamos a obtener un retardo maximo de 65,536msg.(tosc/4*predivisor*256-valor de TMR0; 1usg*256*256=65536usg=65,536sg)

Como veras hasta conseguir los 120sg se necesitaran algunos registros auxiliares hasta alcanzar los 120Sg.Podemos realizar algo as:

Para el tiempo de 20sg se necesitan 2 registros: cuenta1(contaran 256veces) y conta2 que contara 305-256=49 ya que 20sg/0,065536=305 veces
Para el tiempo de 150sg entonces se deben de producir 7 veces las cuentas anteriores. Luego podemos utilizar otro registro conta3.

Estos valores habria que utilizarlos si se carga el TMR0 con el valor 00000000, pero se tienen errores debido a que al realizar los calculos las divisiones no salen justas. Por tanto para tener unos valores más exactos tendremos que cargar el TMR0 con el valor de 61. Con esto el TMR0 se desbordara cada 49,92msg. Luego:
-TMR0=61
-cuenta1=0 (256 veces TMR0)
-cuenta2=145

Bueno después de la explicación tecnica que espero que comprendas, vamos a la practica. Si partimos de tiu programa el que te dije que funcionaba se debe modificar y quedar de la siguiente forma:

1º Configurar el puerto como xxxxxESS
2º Dar nombres a los bits del puerto
3º Yo dejaria las salidas de los motores desconectados.
4º Crear los registros de “cuenta” y asignarlo los valores.
5º Configurar el TMR0
6º Configurar la interrupcion del TMR0
7º Cargar el valor del TMR0
8º Comprobar si marcha_paro= 1. Si es asi activo el motor_izquiero y si es=0 no hag nada y espero hasta que se active esa señal.
9º Crear tu rutina de interrupcion del TMR0.

Haber si llegas hasta aquí, y realizas la rutina de interrupcion y ya seguiremos……………….
« Última modificación: 13 de Julio de 2010, 14:35:22 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #39 en: 13 de Julio de 2010, 11:15:23 »
Hola Fer me imagino que esas lastimaduras en las comisuras de la boca son por el exceso de sonrisa del domingo y aproposito el bronce para la estatua del pulpo donde hay que mandarlo....?
Voy a tomarme el tiempo para tratar de entender pero es muy dificil esto para mi porque este funcionamiento del programa no lo vi en nada y me puse con lo de las subrutinas que tengo algo pero por lo que me dices del pos anterior ni cerca, lo veo y te digo un abrazo Sergio.
« Última modificación: 13 de Julio de 2010, 14:35:37 por Fer_TACA »

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #40 en: 13 de Julio de 2010, 11:28:52 »
Realmente, te estoy avanzando el programa.
Por supuesto que te lo estoy realizando con subrutinas, me parece que van aser 3 (esto despues todavia se podria mejorar mas, pero prefiero que se vaya paso a paso para comprender como funciona el micro con sus interrupciones que son muy utiles y sobre todo a manejar y configuarar NIPLE):

- Subrutina de giro a izquierda
- Subrutina de giro a derecha
- Subrutina de  tiempo de reposo de acticacion del motor.

Basicamente será eso es simple, pero intenta comprender como funciona la interrupcion y si no pregunta lo que quieras. :mrgreen: :mrgreen: :mrgreen:

¡¡Ah!! y aunque vaya adelantando el programa, doy por supuesto que lo vas a realizar tu hasta llegar al que te estoy haciendo.

 :D :D :D :D :D :D :D :D :D :D

Fermin

« Última modificación: 13 de Julio de 2010, 14:36:00 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fidel Martins

  • PIC16
  • ***
  • Mensajes: 143
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #41 en: 13 de Julio de 2010, 13:49:31 »
Hola Fer.
Veo que en el post anterior, dices para "ponerle nombre a los bits "
Yo antes coseguia hacerlo en la "declaracion de bits", modo expert y ahora no he conseguido (V.5.5 plus), llego y no pasa nada.
Como te resulta?
Gracias.
Fidel.
« Última modificación: 13 de Julio de 2010, 14:36:10 por Fer_TACA »

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #42 en: 13 de Julio de 2010, 14:18:16 »
Hola Fidel,
tambien engo la version 5.5 y los bits los puedo declarar sin problemas con:

control+B; despues pico en el bit que quiero cambiar el nombre del bit y doy a enter. Apartir de aqui te van saliendo unos mensajes que debes ir completando.

¿por cierto conseguiste que te funcione ya la licencia?

Fermin
« Última modificación: 13 de Julio de 2010, 14:36:21 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #43 en: 13 de Julio de 2010, 14:21:59 »
Para que el tema se ajuste mas a la realidad y no confunda a la gente le cambio el titulo, pues la finalidad ultima es el control de un motor realizando el programa por medio del Programa Niple desde 0.


fermin
« Última modificación: 13 de Julio de 2010, 14:36:59 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fidel Martins

  • PIC16
  • ***
  • Mensajes: 143
Re: ¡¡¡ Cambio de titulo!!! a Control de motor. Aprendiendo con Niple
« Respuesta #44 en: 14 de Julio de 2010, 16:11:52 »
Lo de la licencia, Jorge me mando una buena. Mi gran problema es el "error 91" que me da a lo que pincho un proyecto. Pocas vezes arranca bien, pero siempre tengo que ajustar la pantalla.
Por suerte hoy Jorge me paso un mail (finalmente) y me dice que no hay nada de malo en los archivos que le subi. Que se le vá hacer!
Por si las moscas, estoy usando (en otra PC) la V.5.2 pero me falta pic 18f4550 y peor cuando vuelvo a V.5.5plus, me da caca.

Cita: En los ultimos 20 años dos cosas maravillosas: "Pic" y "Niple"

Saludos, Fer y a Sergio exito, yo empeze con Niple (2 años) y ya hice proyectos profesionales.
Fidel.
Brasil.