• Viernes 3 de Mayo de 2024, 07:51

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Nash7

Páginas: [1]
1
Programación de Aplicaciones para Dispositivos / Re: Control De Velocidad
« en: Martes 13 de Septiembre de 2005, 12:07 »
Muchas gracias, ya he mirado los metodos que me has dicho por el "interné" y ya sé como funcionan....dicho y hecho :comp:  :comp:  :comp: .

y otra cosilla, sabes alguna página donde te venga como ajustar bien el controlador, porque estaba claro que el teórico no iba a funcionar como es debido y hay que retocar, lo que no sé muy bien es como hacerlo... :rolleyes:

Mil gracias por la ayuda, Diodo, me esta viniendo dibuti!!.Al final voy a tener que invitarte a unas cañas, jeje!!

 :hola:

2
Programación de Aplicaciones para Dispositivos / Re: Control De Velocidad
« en: Domingo 11 de Septiembre de 2005, 17:12 »
Tengo un problemilla de concepto a ver si me ayudas a entenderlo... Se supone que yo leo la velocidad del disco mediante una fotocélula, la señal le llega a un micro que lee el tiempo entre vuelta y vuelta y éste le manda una señal de PWM al motor, rectificando el error...Teoricamente...

El rollo está, yo he hecho el ensayo para sacar la planta para un PWM fijo, de tal forma que he obtenido la respuesta a un escalon de la planta...Una vez obtenida la planta, puedo calcular un controlador de una forma relativamente fácil, ya sea por el método de Nichols, o pasándolo a tiempo discreto y utilizando el modelo digital puro....Una vez tengo el controlador, ya sea en S's o en Z's, que hago?(supogno que hay que obtener el algoritmo, no?) Y sobre todo, que es cada parámetro fisicamente?. Es decir si yo obtengo un controlador de la forma:

C(s)=0.0241 * (1+1.33S / S)       :(  

Para pasarlo a tiempo discreto tendré que utilizar la transformación bilineal, no? y la pregunta en este caso sería, ¿para que frecuencia característica, la de recogida de datos(muestreo)...?, una vez realizada la transformación tendré algo de la forma:

C[z] = 0.0322 * (Z-0.991 / z-1)      <_<

Y esto que es? U[Z] / e[Z]? siendo e[z] la diferencia entre una medida y la anterior? y u[z] que es? la variación de la tensión, el numero que define el duty cycle del PWM?

A ver si me puedes ayudar con esto porque no lo entiendo demasiado bienm por no decir que no entiendo nada!!! :lightsabre:

 :angry:  :angry:  :angry:

3
Programación de Aplicaciones para Dispositivos / Re: Control De Velocidad
« en: Jueves 8 de Septiembre de 2005, 18:55 »
UY!!! perdonad, se me ha pirado :blink: Se me habia olvidado que ponias que eran los parametros de una planta de primer grado con un retardo.... :P

4
Programación de Aplicaciones para Dispositivos / Re: Control De Velocidad
« en: Jueves 8 de Septiembre de 2005, 18:44 »
Respecto al método de Ziegler Nichols... Los valores que me das son directamnete los del controlador no?, o son los de la planta... Si son sólo los del controlador, me podrías incluir las fórmuls de la planta, respecto de esos valores?

Muchas grcias :rolleyes:

5
Programación en C / Calculos Ccs
« en: Miércoles 7 de Septiembre de 2005, 20:01 »
A ver, estoy intentado hacer unos calculos con el Timer 1 de form que necesito saber el tiempo que ha pasado entre cada interrupción. El problema es que:

1) No estoy haciendo bien la mascara y borro el byte más significativo
2) A pesar de poner T1 como integer16, está haciendo la multiplicación como si fuera un solo byte

El caso es que cuando F1 = 9, en vez de darme 1566(61E) me da 30 (1E).
Aqui os mando la función que utilizó a ver que os parece:

unsigned int16 calculos(int F1, unsigned int16 T)    //F1 = nº de overflows
{                                                                        //T valor del Timer1 actual

unsigned int16 T1=0, Tt = 0, j=0;
unsigned int32 T2;


T1 = (F1 * 174);          //174ms overflow del Timer1 con un reloj de 12MHz
T2 = (T * 8);
T2 = (T2 / 3);                //Paso a us el tiempo del timer
j = T2 * 0.001;              //trunco la suma quedándome con ms
a1 = T1&0x00ff;
T1>>=8;                       //máscara para presentar los datos en el winzip800
a2 = T1&0x00ff;
cont++;
write_eeprom(cont,F1);
cont++;
write_eeprom(cont,a2);
cont++;
write_eeprom(cont,a1);
Tt = T1 + j;                   //Sumo los tiempos parciales

return (Tt);

}



AYUDA!!!!!!!
¿Que pasa, que hago?como lo soluciono?, porque me multiplica en un solo byte?GRRRRRRRRRRRRR!!!!!!! :angry:

6
Programación en C / Re: Asignacion En Ccs
« en: Jueves 1 de Septiembre de 2005, 18:09 »
Me respondo a mi mismo... Por lo visto el puerto D de del micro 16f877A tiene la opción de ser configuradop como un puerto de microprocesador de 8bit, parece que viene así por defecto (esto no lo puedo asegurar), por lo que para configurar el puerto como entrada o salido normal hay que poner a cero el bit 4 del registro trisE.

Gracias!! ;)

7
Programación en C / Asignacion En Ccs
« en: Jueves 1 de Septiembre de 2005, 17:32 »
A ver, estoy intentando visualizar ciertas variables mediante un puerto, para ello he instalado una serie de Leds a la salida de cada Pin del puertoD, que lo he definido como:

#byte Port_d = 0x08

La pregunta es, puedo asignar un valor al puerto y que me salga el valor?, es decir:

Port_d = 2;

De forma que se me encendería un solo led...y si es así (que no me sale en el programa), lo podría hacer tb con una variable? <_<

Thanx

8
Programación de Aplicaciones para Dispositivos / Re: Control De Velocidad
« en: Miércoles 31 de Agosto de 2005, 20:07 »
Vamos que la respuesta que tngo que conseguir es la del arranque del disco, es decir de cuando está en reposo a cuando se pone a los 45rpm que va en el permanente, no? Y para eso necesitaré obtener X datos en ese intervalo de las velocidades instantaneas del disco no?

Si es así creo que de momento no va a poder ser porque la fotocélula no tiene la resolución precisa y necesitaría hardware que no dispongo...

Y como sería sabiendo las características de motor?lo sabes?

9
Programación de Aplicaciones para Dispositivos / Re: Control De Velocidad
« en: Miércoles 31 de Agosto de 2005, 19:46 »
Una cosilla, dices que tengo que obtener la respuesta desde la célula para medir la velocidad... Para medir la velocidad estoy utilizando una fotocélula que lo que te dá es un escalon cuando pasa una muesca en el canto del disco... como puedo hayar dicha respuesta que me indicas...? <_<

10
Programación de Aplicaciones para Dispositivos / Re: Control De Velocidad
« en: Miércoles 31 de Agosto de 2005, 18:49 »
Pues si, tengo la hoja de caracteristicas del motor, donde vienen las constantes del motor y todo eso... Estaría dibuti uqe me ayudases con el tema por que voy un poco jdido para hacer que esto regule...

Mil gracias!! ;)

11
Programación de Aplicaciones para Dispositivos / Control De Velocidad
« en: Miércoles 31 de Agosto de 2005, 16:56 »
Estoy haciendo un proyecto en el que controlo la velocidad del motor de un tocadiscos, la velocidad la tomo de una fotocélula y el micro (16f877A) tiene que regular la velocidad a la que va el motor. El problema esta en que yo no tengo la planta del tocadiscos y por tanto no sé como puedo hacer para sacar el control PI asociado.

¿Alguien sabe como puedo obtener un PI para un motor de 12V?, o ¿alguien tiene una idea para regular el motor?
Muchas gracias :P

12
Programación en C / Re: Tipos De Las Variables Ccs
« en: Miércoles 27 de Julio de 2005, 12:30 »
pes la verdad es que lo compila perfecto pero... esta claro que tienes razon, se me habia pirado... :whistling:

Te voy a hacer otra pregunta a ver si me puedes ayudar en esto... Mi proyecto consiste en un regulador de velocidad de un tocadiscos, estoy midiendo la velocidad a la que gira el tocadiscos, por eso la función cálculos (donde paso el tiempo entre muesca y muesca a velocidad). El problema es que no tengo ni idea de que valores está dando a la variable n en cada vuelta y por tanto no puedo saber que parte del programa esta mal (porque lo que esta claro es que regular no regula).

¿Sabes como podría visualizar que valores de ciertas variables esta utilizando en cada vuelta al programa, y así saber que está haciendo el micro y por tanto saber en que me estoy equivocando?


Mushas grasias :rolleyes:

13
Programación en C / Tipos De Las Variables Ccs
« en: Martes 26 de Julio de 2005, 20:30 »
Continuo con mis preguntas tontas, pero esto de hacer el PFC de asignaturas que no has visto durante la carrera me esta matando...

A ver el problema es saber si estoy declarando bien las variables siguientes y aque no estoy muy seguro y no se muy bien como funcionan los diferentes tipos. la funcion sería:

int   Dant, D, F, Fant, X,nref;
long Tpar1, Timer, Tpar2;
long int Tt, f1, f2, ;
float n, err, errV, ferr;

void calculos(){

   Tpar1 = (Fant * 65536);
   Tpar2 = (Tpar1 + Timer);
   Tt = (Tpar2 * 0.000001);
   n = (60 / Tt);
   }

void regulacion(){

   err = nref - n;
   errV = err / 8,3;
   ferr = (errV * 85.3333);
   f1 = f1 + ferr;



El problema es que "n" tiene que ser un numero con un decimal (y cercano a 33'3, 45 y 78) y f1 tiene que ser un entero entre 0 / 1024 porque sera el duty cycle del PWM.

Veis si la estoy liando en alguna parte? es que a mi me da que si y no se muy bien donde.

Muchas gracias  :kicking:

14
Programación en C / Re: Interrupcion Ccs
« en: Miércoles 20 de Julio de 2005, 11:58 »
El problema estaba por otro lado, efecctivamente se puede cambiar los valores de variables dentro de una interrupción y despues utilizarla en el main. Por un momento crei que no....

gracias :comp:

15
Programación en C / Interrupcion Ccs
« en: Martes 19 de Julio de 2005, 19:24 »
Estoy haciendo un circuito que controla lavelocidad de un motor, de tal forma que segun le des a un boton o a otro, el motor se pone a una velocidad o a otra... Los diferentes pulsadores están metidos como interrupciones en el programa, pero el problema es: ¿hay alguna forma de cambiar el valor de una variable (el duty cycle) dentro de la interrupcion de tal forma que la puedas utilizar en el programa principal?


Gracias :P

16
Microcontroladores / Re: Interrupcion Pines Rb 4-7
« en: Lunes 18 de Julio de 2005, 17:18 »
Por lo visto es un problema de rebotes... Por ahi he leido esta solución y me ha funcionado


Creo que lo que te pasa es que como la interrupcion es por cambio de estado en cualquiera de las patillas, te salta la interupcion cuando pulsas el pulsador y cuando lo sueltas vuelve a entrar a la interrupcion. Prueba a usar esta mascara.

delay_ms(70); // esperamos para evitar rebotes
if(!(port_b^0xF0)) // si se produce al soltar el pulsador
return; // salimos de la interrupcion.

Salu2

Gracias Jonathan por tu time!!

17
Microcontroladores / Re: Interrupcion Pines Rb 4-7
« en: Lunes 18 de Julio de 2005, 15:32 »
No, efectivamente no es un programa dificil, de hecho sólo es para ver si funcionan dichas interrupciones que no soy capaz de hacerlas funcionar....

ahi te va!!

Gracias otra vez

Por cierto, si ves que te funciona, dime como pones los pulsadores en la Protoboard...

18
Microcontroladores / Re: Interrupcion Pines Rb 4-7
« en: Lunes 18 de Julio de 2005, 15:19 »
De hecho ya tenia unos delay puestos para hacer parpadear el Led, le he intentado porner más tiempo pero sigue pasando lo mismo, de hecho incluso segun lo reseteas se va a la interrupción y no se espera ni a que le de una sola vez al pulsador... En un principio pense que a lo mejor era porque era una interrupción por nivel y le puse un inversor cosa que no produjo ningun cambio asi que no sé.... ¿que te paerce? <_<

19
Microcontroladores / Interrupcion Pines Rb 4-7
« en: Lunes 18 de Julio de 2005, 14:43 »
Estoy utyilizando el 16f877A y el CCS como compilador. Estoy haciendo un programilla chorra en el que al darle u boton se va a la interr y hace parpadear un LED. El problema es que si configuro la interrupción como EXT todo va a las mil maravillas, en cambio si lo configuro como RB 4 - 7 la interrupción salta continuamente y no ejecuta el programa principal  :angry: .

No sé si el problema está en la placa porque tenga muchos rebotes o algo asi... o he pueto un pulsador con un condensador de 0,1 uF, debería ser suficiente,no?.

Si alguien me pudiese ayudar con cualquier sugerencia lo agradecería mucho...

Gracias :P

20
Programación en C / Re: Compilar 16f873
« en: Jueves 14 de Julio de 2005, 10:45 »
mi dirección es: nachogiman@yahoo.com

muchas gracias  :D

21
Programación en C / Compilar 16f873
« en: Miércoles 29 de Junio de 2005, 17:28 »
OK! parece ser que el CCS que necesitamos para trabajar, pero las librerias que trae la demo no inlcuyen el 16f873, alguien las tiene?o alguien sabe como bajarse una version completa del ccs?, o en su defecto cualquier otro software que compile para dicho micro?.

Agrdeceria una ayuda al respecto porque llevo perdido  <_< dos dias con la tonteria y no soy capaz de llegar a ninguna conclusion

Mil gracias poor adelantado

Páginas: [1]