Autor Tema: Manipulando Conversion A/D  (Leído 2529 veces)

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

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Manipulando Conversion A/D
« en: 30 de Septiembre de 2008, 12:55:53 »
Estoy haciendoo una conversion A/D. Es deci, ya esta hecho eso y logro hacer la conversion. Ahora esta el problema en la manipulacion de esta, que se dividiria en dos. La primera es hacer esto:
 (5/1024)   x [ADRESH ADRESL] x 100 = Temp[°c]. Lo multiplico por 100 para que, por ejemplo, si a la entrada del pic tengo 2,36v, en el codigo tenga 236 para el paso que sigue:
A esos 236 los muestro en 3 displays, entonces lo divido en centenas, decenas y unidades, que representarian los 23,6°c.
Las dudas son si esta bien pensado, o hay alguna forma mas eficiente para el pic y como hago para hacer la division de 5*100 /1024 ya que ese es un numero menor a cero.
No me convendria usar 8 bits en vez de 10 para la conversion? Es decir, que el numero mas alto sea 128? Si tengo 5v de ref, que son 1024, el 128 serian 0,625. Como el sensor de temp es de 0 a 50°c, tendria que tener °Cmax equivalente a los 0,625v..............

Gracias por la ayuda!
« Última modificación: 30 de Septiembre de 2008, 13:15:44 por aripod »

Desconectado Castiguito

  • PIC10
  • *
  • Mensajes: 1
Re: Manipulando Conversion A/D
« Respuesta #1 en: 15 de Octubre de 2008, 18:35:04 »
No se entiende bien, para que realizas esa cuenta? Cual es la relacion de tu sensor Temp/Volt ?


Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Manipulando Conversion A/D
« Respuesta #2 en: 16 de Octubre de 2008, 15:33:14 »
Puedo recomendar lo siguiente:

- Medidor de temperatura LM35 que entrega 10mV/°C
- ADC a 10bits (0 a 1023)
- Vref positiva a 4.096V
- Vref negativa 0V

Si entran 0.25V al ADC tendrás 62bits como resultado de la conversión (0.25 x 1024 / 4.096). Multiplica por 4 los bits resultantes y obtendrás 248bits, los cuales se pueden ver como 24.8°C.

Deberás cambiar los valores que te di aquí para tu sensor en específico.

« Última modificación: 16 de Octubre de 2008, 15:35:51 por migsantiago »

Desconectado pity

  • PIC10
  • *
  • Mensajes: 4
Re: Manipulando Conversion A/D
« Respuesta #3 en: 16 de Enero de 2009, 14:12:46 »
Hola, me contas como haces para separarlo en unidades decenas y centenas? porque es en lo que estoy trabado para poder mandarlo al LCD

gracias

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Manipulando Conversion A/D
« Respuesta #4 en: 16 de Enero de 2009, 23:11:31 »
Aripod, yo en su momento tuve que hacer algo parecido, busque y no me quedo otra que hacer la multiplicacion y division. Y ya que tenes que hacerla usa los 10 bits para la conversion, no lo dudes.- Si necesitas las runinas de multiplicacion y division avisa...


Y para pity esta es una rutina para separar en Unidades, Decenas, Centenas, Unidad de mil, Decena de Mil.-


; convierte el binario de 16 bits (NumA + NumB) en DecM, UniM, Cen, Dec y Uni.-
   swapf          NumA,w
   andlw          0x0F
   addlw          0xF0
   movwf          UniM
   addwf          UniM,f
   addlw          0xE2
   movwf          Cen
   addlw          0x32
   movwf          Uni
   movf          NumA,w
   andlw          0x0F
   addwf          Cen,f
   addwf          Cen,f
   addwf          Uni,f
   addlw          0xE9
   movwf          Dec
   addwf          Dec,f
   addwf          Dec,f
   swapf          NumB,w
   andlw          0x0F
   addwf          Dec,f
   addwf          Uni,f
   rlf          Dec,f
   rlf          Uni,f
   comf          Uni,f
   rlf          Uni,f
   movf          NumB,w
   andlw          0x0F
   addwf          Uni,f
   rlf          UniM,f
   movlw          0x07
   movwf          DecM
   movlw          0x0A
Lb1   addwf          Uni,f
   decf          Dec,f
   btfss          3,0 ; STATUS,C
   goto          Lb1
Lb2   addwf          Dec,f
   decf          Cen,f
   btfss          3,0
   goto          Lb2
Lb3   addwf          Cen,f
   decf          UniM,f
   btfss          3,0
   goto          Lb3

Espero que te sirva!  :-)
No contesto mensajes privados, las consultas en el foro


 

anything