Autor Tema: compensacion por soft  (Leído 5385 veces)

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

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
compensacion por soft
« en: 25 de Noviembre de 2007, 06:15:20 »
hola
tengo un quiebro en la cabesa estupendo, estoy jugando con el CAD de un 16f877 he querido conectarle a las entradas potenciometros en paralelo

pero no es muy estable, si muevo uno, los otros cambian la tension  :? :? y haciendolo con una F. de alimentacion independiente para cada pote el pic registra el mas minimo cambio, y son demasiados. He estado viendo algun proyecto donde conectan asi potenciometros y lo que dicen hacer es "compensacion por soft" yo no se como se hace eso  :shock: :shock: he pensado ponerle operacionales para que sea mas estable. Pero me pica la curiosidad. Alguien sabe la teoria de como se hace, o alguna otra forma de solucionarlo

este es el retazo e codigo que configura el CAD y compara el resultado con el de un registro
Código: [Seleccionar]
;---------------------------------------------------------
CONFIG_ADCON1 ;00000000
BSF STATUS,RP0
MOVLW B'00000000'
MOVWF ADCON1
RETURN
;----------------------------------------------------------
           
CANAL_AD_X
BCF STATUS,RP0
MOVWF ADCON0
RETURN

ENCIENDE_CAD
BCF STATUS,RP0
BSF ADCON0,GO ;INICIA LA CONVERSION
ESPERA_CAD ;TESTEA HASTA QUE TERMINA LA CONVERSIÓN
BTFSC ADCON0,GO ;HASTA QUE SE PONE A CERO EL BIT GO/DONE
GOTO ESPERA_CAD ;VUELVE ATRAS HASTA QUE TERMINE
MOVF ADRESH,W ;MUEVE A W EL RESULTADO DEL CAD
MOVWF REG_DIVISOR ;AL REGISTRO
BCF ADCON0,ADON ;APAGA EL CAD
BCF STATUS,C ;PONE A CERO C
RRF REG_DIVISOR,F ;PARA DIVIDIR POR DOS RESULTADO A W
MOVF REG_DIVISOR,W
BCF STATUS,Z
SUBWF INDF,W ;QUE LO RESTA DE INDF Y LO DEJA EN W , F SE QUEDA COMO ESTABA
NOP
NOP
BTFSS STATUS,Z ;SI NO ES IGUAL
CALL ENVIA_POTE ;ENVIA EL DATOS
RETURN ;SI ES IGUAL AL QUE HABIA VUELVE PARA OTRO
y esto es el programa,cambia de canal cada vez x8 veces y vuelve a PROGRAMA
PROGRAMA
CALL CANAL1 ;CANAL 1 DEL MULTIPLEXOR
MOVLW DIRECCION_POTES
;1 CANAL1
MOVWF FSR ;0X30
CLRF N_POTE ;Nº DE POTE CERO IGUAL 0XAO EN LA TABLA DE FUNCIONES
MOVLW B'10000101' ;A W
CALL CANAL_AD_X ;CANALx DEL CAD
CALL ENCIENDE_CAD ;ENCIENDE EL CAD DIVIDE EL RESULTADO Y LO COMPARA CON INDF
;2

INCF FSR ;SIGUIENTE DIRECCION PARA POTE
INCF N_POTE ;SIGUIENTE Nº DE POTE
MOVLW B'10001101' ;A W
CALL CANAL_AD_X ;CANALx DEL CAD
CALL ENCIENDE_CAD ;ENCIENDE EL CAD DIVIDE EL RESULTADO Y LO COMPARA CON INDF
un saludo y gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: compensacion por soft
« Respuesta #1 en: 25 de Noviembre de 2007, 11:59:51 »
Cuando cambies de canal, espera un tiempo prudente antes de iniciar la conversión para permitir que el módulo A/D haga la adquisición correcta del valor del potenciómetro.

1. cambias el canal
2. esperas un tiempo (esto depende de la R de tu potenciómetro pero si queres asegurar el resultado ponele 1 milisegundo o 10 mseg)
3. inicia la conversión

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: compensacion por soft
« Respuesta #2 en: 25 de Noviembre de 2007, 17:30:10 »
Bien¡¡ gracias, estuve cambiando la velocidad de la conversion y como no conseguia nada excepto que se me bloqueara el ordenador tras terencientos de mile de bytes en vez de cada ercienmil  :? :?......   tambien le puse retardos entre conversion y conversion pero no despues de seleccionar el canal  :mrgreen: :mrgreen:

esto es el prog. en lo que ha quedado, lee el valor de la conversion en cada canal, si este es diferente de la ultima conversion, envia el dato midi y muestra el valor en 3 displays

no me deja pegarlo pero esta como adjunto
gracias y un saludo

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: compensacion por soft
« Respuesta #3 en: 25 de Noviembre de 2007, 17:34:19 »
jajaja pues mira que se poco ingles , por eso seguro que s me ha pasado la formulita pero vamos que a ello voy , con el diccionario en mano

gracias y un saludo

Desconectado picNIC

  • PIC16
  • ***
  • Mensajes: 140
Re: compensacion por soft
« Respuesta #4 en: 26 de Noviembre de 2007, 01:30:49 »
 :? :? suena extraño lo que te pasa... Si respetas los tiempos de conversion y probastes de usar fuentes separadas y sigue el haciendo lo mismo... tendras algun problema en el hardware..  yo me fijaria de algun falso contacto en la masa.


suerte

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: compensacion por soft
« Respuesta #5 en: 26 de Noviembre de 2007, 12:43:41 »
jajaja pues mira que se poco ingles , por eso seguro que s me ha pasado la formulita pero vamos que a ello voy , con el diccionario en mano

Una recomendación es que lamentablemente deberás aprender inglés... todo lo nuevo sale en este idioma y no manejarlo es una seria limitación si te quieres dedicar a esto ;) ;)

Respecto al A/D, te dejo un link que tal vez te aclare algunas dudas

http://www.todopic.com.ar/foros/index.php?topic=14529.msg88942#msg88942

También podrias leer todo ese hilo así ves como venía el tema y como sigió después.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: compensacion por soft
« Respuesta #6 en: 26 de Noviembre de 2007, 14:11:00 »
Vaya explicacion Maunix, mucho mejor que en el datasheet, que yo no me entero,gracias. has escrito algun libro sobre pics, si es asi yo lo quiero  :mrgreen: :mrgreen: ya estoy ajustando tiempos


gracias y un saludo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: compensacion por soft
« Respuesta #7 en: 26 de Noviembre de 2007, 14:40:49 »
Vaya explicacion Maunix, mucho mejor que en el datasheet, que yo no me entero,gracias. has escrito algun libro sobre pics, si es asi yo lo quiero  :mrgreen: :mrgreen: ya estoy ajustando tiempos


Gracias, es que los datasheets son solo eso, una hoja de datos que hay que interpretarla.  Muchas veces uno termina de interpretar la información por saber de otras cosas (como electrónica) o bien por haberlo usado bien al módulo y haber probado alternativas.

Ya cuando los uses mucho tiempo verás que no es la gran cosa lo que he escrito y no lo digo por falsa modestia, realmente creo que es así. 

Creo que para escribir libros de pics ya me han ganado de mano hace rato varios jaja, no se quien compraría un libro con los otros que están ya en venta.  :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: compensacion por soft
« Respuesta #8 en: 26 de Noviembre de 2007, 14:54:42 »
acabo de comprar el de microcontroladores pic 16f877 y 18fxx de Angulo y....  yo no soy quien para criticarlo es mas no deberia decir ni comentar tan siquiera con tan poco conocimiento , pero no me ha gustado, no creo ni conveniente explicar el por qué , que seguro me arrepiento de mis palabras

de lo que seguro que no me arrepiento es de buscar post por el foro e ir recopilando joyas como esa con el cad y distintos perifericos que alguna ya he ido guardando cuando las he visto

gracias y un saludo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: compensacion por soft
« Respuesta #9 en: 26 de Noviembre de 2007, 15:14:37 »
acabo de comprar el de microcontroladores pic 16f877 y 18fxx de Angulo y....  yo no soy quien para criticarlo es mas no deberia decir ni comentar tan siquiera con tan poco conocimiento , pero no me ha gustado, no creo ni conveniente explicar el por qué , que seguro me arrepiento de mis palabras
Confieso que no lo he leído el libro de Angulo pero he oído criticas en negativo también


de lo que seguro que no me arrepiento es de buscar post por el foro e ir recopilando joyas como esa con el cad y distintos perifericos que alguna ya he ido guardando cuando las he visto

Asi es , aquí hay muchos artículos, hilos, proyectos , etc que permiten aprender realmente mucho con los pics.

Todopic es un vicio... una vez que lo conoces no lo puedes dejar  :D :D
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: compensacion por soft
« Respuesta #10 en: 27 de Noviembre de 2007, 08:04:55 »
Asi es , aquí hay muchos artículos, hilos, proyectos , etc que permiten aprender realmente mucho con los pics.
Todopic es un vicio... una vez que lo conoces no lo puedes dejar  :D :D
ni que lo digas yo ya estoy enganchado  :mrgreen: :mrgreen:

ahora que ya funciona y lo he podido probar sobre el circuito me he dado cuenta que cuando empece a programar esto tuve otra duda, fué que no sabia como hacer para que utilizando como Vref+=Vdd ý Vref-=Vss hacer que el cad diese como maximo 127 en vez de 1023 con los diez bits, con los potes conectados a Vdd y Vss=5v. fue en este hilo en el me dieron una buena solucion que funaba, justificando a la izquierda el resultado, se dividia rotandodolo, así si el resultado fue 11111111 en ADRESH quedaba como 01111111 pero de esta forma la curva con la que responde es la de un potenciometro logaritmico y necesito que sea lineal o menos acentuada la curva. Ni que decir si utilizase potes logarítmicos, seria como darse con un muro :D, tengo otro cacharro que la programacion no es mia el cual esta confeccionado de la misma forma con potes de 10k conectados en paralelo a Vdd y Vss y la respuesta es lineal  :shock: :shock: como lo hacen. he intentado hacerlo de todas las formas que se me han ocurrido sin exito y bueno a lo mejor es que voy por mal camino y hace falta enfocarlo desde otro punto de vista , yo hasta ahora para que sea lineal he bajado la tension de los potenciometros a 0,60v +- para que justificando a la derecha el dato no rebose 127 en ADRESL pero me gustaria conocer como se puede hacer algo asi programando y no usando valores diferentes de esta forma creo que podria usarlo para programar diferentes perifericos como este que la respuesta del analogico es de 0-3,5v y creo que la rutina se puede utilizar tambien para cambiar la curva de respuesta de los potenciometros, normalmente en las mesas de mezclas el potenciometro de los medios la curva de respuesta esta mas acentuada o la de paneo exponencial si tienen alguna teoria de como hacerlo a ver si a base de picateclas me sale. si no seguire usando lo de tener los potes a 0,60v  lo que me limita el uso de juguetes como el del dibujo

un saludo y gracias

Desconectado NANO1985

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
    • Desarrollos Tecnologicos - Tucuman - Argentina
Re: compensacion por soft
« Respuesta #11 en: 27 de Noviembre de 2007, 08:11:39 »
hola alogic.on! yo tenia un problema similar con un 16F873A y 5 entradas analógicas, lo que hice para solucionar el problema fue, utilizar cables blindados con maya y pantalla, y además respetar los tiempos de conversion y de conmutacion a otros canales...
ahhh!!!, me olvidaba, es muuuuuy importante el tema de el tipo de placa que usas para realizar el circuito impreso, (inmaginate que si tenés montado el circuito en una protoboard, el ruido es inmenso e incontrolable, acuérdate que son millones de "falsos contactos" entre todos los componentos que conformen el circuito)
a mi gusto te diria que los montes en placas Epoxi, o fibra de vidrio (son las clásicas verdes texturadas).
después contame.
saludos.  8)
"La inquebrantable voluntad de vencer"
"hay dos cosas infinitas... El universo y la Estupidez humana" Albert Einstein
 "El sabio actua sin anhelos, permanece sosegado,... así no es afectado por el resultado de sus acciones sean éstas el triunfo o el fracaso"
- UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL TUCUMAN -

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: compensacion por soft
« Respuesta #12 en: 27 de Noviembre de 2007, 09:01:34 »
alogic.on me cuesta ver qué necesitas.

Tu quieres por un lado que el valor que te devuelva la rutina de lectura del A/D esté entre 0 y 127, pero por el otro quieres usar el pote conectado a 5V? Es esa la duda?

Te digo esto porque cambiar la Vref no hará que el valor de A/D varíe de 0 a 127, el valor de A/D siempre variará de 0 a 1023, solo que en algunos casos puedes , con la justificación izquierda, descartar los 2 bits menos significativos, nada más.

Ahora si lo que tu necesitas es un valor de 0 a 127 , de toda la conversión A/D (del rango de 0 a 5V) entonces, lo que te han sugerido de tomar el valor alto y dividirlo por 2 es totalmente adecuado.

Por favor, aclarame bien qué necesitas porque no te he comprendido.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: compensacion por soft
« Respuesta #13 en: 27 de Noviembre de 2007, 10:09:14 »
Citar
a mi gusto te diria que los montes en placas Epoxi, o fibra de vidrio (son las clásicas verdes texturadas).
esta montado sobre fibra ya no tiene problemas de ruido el circuito es este gracias por el aporte que nunca se sabe

mmmm perdona Maunix no se expresarme ni en mi doma :? :? el problema es que haciendolo como dices descartando los dos bits de ADRESL  y dividiendo ADRESH a la salida la escala de 0-127 es logritmica aun siendo lineales los potes y necesitaba que fuese lineal o aun mas intentar que se pueda regular la curva de respuesta, que es mucho pedir, aunque con hacer que vaya lineal seria perfecto
como te cuento si los potes los alimento con 0,62v y leo el dato en ADRESL descartando ADRESH funciona perfectamente pero ya monte en placas el circuito con multiplexores no me importa ponerle la minifuente de 0,62 no ocupa mucho pero queria que fuese compatible con esas placas. Si sabes que operaciones tendria que hacer intento hacer la rutina y asi pregunto por algo mas concreto que no funcione , o quien sabe a lo mejor me doy una sorpresa¡¡ :D

gracias y un saludo

« Última modificación: 27 de Noviembre de 2007, 12:13:46 por alogic.on »

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: compensacion por soft
« Respuesta #14 en: 27 de Noviembre de 2007, 11:04:17 »
haaaaaaaaaaaaaaaaaaaa creo que ya se que pasa , y es que fui la semana pasada por material y me han vendido los potes logaritmicos en vez de lineales, anda que me lleve 70 veras cuando vaya, se van a cagar por que ya estan soldados

de todas formas creo que para 10 bits lo que tendria que hacer es devidirlo entre 8,55 dejando de lado los decimales puede valer

y perdon por haceros perder el tiempo con estos dos ultimos post
un saludo y gracias