Autor Tema: nesecito ayuda para usar el adc del pic 16f877 en pbp plus  (Leído 6211 veces)

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

Desconectado brans

  • PIC10
  • *
  • Mensajes: 3
nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« en: 26 de Mayo de 2008, 16:36:19 »
bueno soy nuevo en este foro, de antemano se agradese la ayuda que me pudan dar, estoy realizando un proyecto en el que tengo que controlar la temperatura de una sustancia la cual debe permanecer en 15ºC sin que tenga ninguna variacion en su temperatura, estoy usando el pic 16f877 y mi sensor es el LM35 la manera de enfriarla es con una placa de peltier, el control lo ago con un puente H, bueno lo que quisiera es que me ayudarn con el programa para estar midendo la temperatura de antemano gracias......

Desconectado mancupic

  • PIC10
  • *
  • Mensajes: 13
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #1 en: 27 de Mayo de 2008, 13:28:08 »
bueno soy nuevo en este foro, de antemano se agradese la ayuda que me pudan dar, estoy realizando un proyecto en el que tengo que controlar la temperatura de una sustancia la cual debe permanecer en 15ºC sin que tenga ninguna variacion en su temperatura, estoy usando el pic 16f877 y mi sensor es el LM35 la manera de enfriarla es con una placa de peltier, el control lo ago con un puente H, bueno lo que quisiera es que me ayudarn con el programa para estar midendo la temperatura de antemano gracias......

Hola brans... Mira, en unas de esas te puedo ayudar... Pero necesito saber algunas cositas antes de hacerte un ejemplito... Por que canal de a/d necesitas entrar los datos y que resolucion en grados/volt tiene tu sensor... Tenes una formulita que te pase Vsen -> ºC del sensor? Si es asi me ayudas mas a ayudarte  :wink: saludos

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #2 en: 28 de Mayo de 2008, 17:51:48 »
Hola:

Bueno, porqué no consultas la ayuda? hay un ejemplo listo para probar, te lo pego tal cual está en la ayuda de Protón:


ADIN
Syntax

Variable = ADIN channel number

Overview

Read the value from the on-board Analogue to Digital Converter.
 
Operators
Variable - a user defined variable of type bit, byte, byte_array, word, word_array, dword, or float.
Channel number - a constant, variable, or expression.
Example

 'Read the value from channel 0 of the ADC and place in variable VAR1.
 DECLARE ADIN_RES 10       ' 10-bit result required
 DECLARE ADIN_TAD FRC      ' RC OSC chosen
 DECLARE ADIN_STIME 50     ' Allow 50us sample time
 DIM VAR1 as WORD
 TRISA = %00000001         ' Configure AN0 (PORTA.0) as an input
 ADCON1 = %10000000        ' Set analogue input on PORTA.0
 VAR1 = ADIN 0             ' Place the conversion into variable VAR1
 
Declares

There are three declare directives for use with ADIn. These are: -
 
DECLARE ADIN_RES 8 , 10 , or 12

Sets the number of bits in the result. If this declare is not used, then the default is the resolution of the PICmicro type used. For example, the 16F87X range will result in a resolution of 10-bits, along with the 16-bit core devices, while the standard PICmicro types will produce an 8-bit result. Using the above declare allows an 8-bit result to be obtained from the 10-bit PICmicro types, but NOT 10-bits from the 8-bit types.
 
DECLARE ADIN_TAD 2_FOSC , 8_FOSC , 32_FOSC , or FRC.

Sets the ADC's clock source. All compatible PICmicros have four options for the clock source used by the ADC. 2_FOSC, 8_FOSC, and 32_FOSC, are ratios of the external oscillator, while FRC is the PICmicro's internal RC oscillator. Instead of using the predefined names for the clock source, values from 0 to 3 may be used. These reflect the settings of bits 0-1 in register ADCON0.
 
Care must be used when issuing this declare, as the wrong type of clock source may result in poor resolution, or no conversion at all. If in doubt use FRC which will produce a slight reduction in resolution and conversion speed, but is guaranteed to work first time, every time. FRC is the default setting if the declare is not issued in the BASIC listing.
 
DECLARE ADIN_STIME 0 to 65535 microseconds (us).

Allows the internal capacitors to fully charge before a sample is taken. This may be a value from 0 to 65535 microseconds (us). A value too small may result in a reduction of resolution. While too large a value will result in poor conversion speeds without any extra resolution being attained.
 
A typical value for ADIN_STIME is 50 to 100. This allows adequate charge time without loosing too much conversion speed. But experimentation will produce the right value for your particular requirement. The default value if the declare is not used in the BASIC listing is 50.
 
Notes

Before the ADIn command may be used, the appropriate TRIS register must be manipulated to set the desired pin to an input. Also, the ADCON1 register must be set according to which pin is required as an analogue input, and in some cases, to configure the format of the conversion's result. See the numerous Microchip datasheets for more information on these registers and how to set them up correctly for the specific device used.
 
If multiple conversions are being implemented, then a small delay should be used after the ADIn command. This allows the ADC's internal capacitors to discharge fully: -
 
Again:
 VAR1 = ADIN 3     ' Place the conversion into variable VAR1
 DELAYUS 1         ' Wait for 1us
 GOTO Again        ' Read the ADC forever



Revisa siempre la ayuda antes de consultar algo, está todo bien detallado y tiene varios ejemplos como el de este caso.

Desconectado brans

  • PIC10
  • *
  • Mensajes: 3
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #3 en: 29 de Mayo de 2008, 17:20:21 »
que tal...... gracias por sus respuestas , mancupic y giovanni......... ... bien amigo, mi sensor es cada 10mv es un grado centigrado y mi entrada es porta 0, saludos gracias por su tiempo

Desconectado mancupic

  • PIC10
  • *
  • Mensajes: 13
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #4 en: 30 de Mayo de 2008, 16:26:10 »
Ok, esto quedaria algo asi...

DEFINE  P16F877
DEFINE ADC_CLOCK 3     
DEFINE ADC_SAMPLEUS 50
DEFINE  ADC_BITS 10   
porta.0 = 0
TRISA = %00000001   
ADCON1 = %10000000
adval        VAR WORD
Y           VAR word
X           VAR word
z           var word

loop:
        ADCIN 0, adval            
      z = (adval */ 5000)>>2                 
        if z >= 150 then enfriar
        call calentar
goto loop

calentar:
'Aca mete lo que sea para que caliente
return

Enfriar:
'Aca mete todo lo que sea para que enfrie
return

end

' z es el valor del a/d en volt... z >= 150 quiere desir z >= 150mV ok?
Acordate que el micro tarda 50uS en tomar la muestra...
 8) Suerte!

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #5 en: 30 de Mayo de 2008, 17:08:08 »
Saludos!
Buen aporte mancupic!
Solo un detalle, en esta parte:

        if z >= 150 then enfriar
        call calentar
Me imagino que lo que querías decir, después del then es: "call enfriar". Bueno eso es una tontería, seguro se te escapó.
Lo que sí es que tendría que ir un "else" después de esa línea y antes del "call calentar", pues si no el micro siempre ejecutaría la subrutina de "calentar" sin importar que la temperatura sea alta o baja.

Quedaría entonces así:

Código: [Seleccionar]
    if z>=150 then call enfriar
    else call calentar

Bueno ese fue el detalle que ví, por cierto brans, no especificas en qué lenguaje estás trabajando, si en pic basic o en protón... sería bueno que lo aclararas.
Ok por ahora es todo, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado mancupic

  • PIC10
  • *
  • Mensajes: 13
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #6 en: 31 de Mayo de 2008, 15:31:24 »
Hola firepic, Gracia por la observacion!   :-/ es que lo hice en un momentito, mientras estaba en mi trabajo y mi jefe salio al kiosco  :D
Otro error es que puse lo siguiente:
' z es el valor del a/d en volt... z >= 150 quiere desir z >= 150mV ok?

y es mentira!
 :lol:
en realidad... :?
z es el valor del a/d en milivolt ... z >= 150 quiere desir z >= 150mV  :mrgreen:
sepan disculpar la situacion!
« Última modificación: 31 de Mayo de 2008, 15:33:42 por mancupic »

Desconectado lowus

  • PIC10
  • *
  • Mensajes: 11
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #7 en: 01 de Junio de 2008, 12:00:57 »
Que tal Amigos?  me sirvió mucho este ejemplo :mrgreen:  ya que estoy haciendo algo parecido con 16f887a y el mismo sensor lm35, tambien uso PBP, mi pregunta es: ¿como hago para que me muestre los datos en un LCD 16x2 que diga algo asi:
temperatura
xx,xx ºC
Muchas Gracias  :)

y necesito que cuando suba de un rango por ejemplo mas de 29ºC se prenda un Led y se mantenga prendido hasta que la temperatura baje a 25ºC
es muy complicado?  :shock:
de nuevo Gracias

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #8 en: 01 de Junio de 2008, 12:17:00 »
Lowus, no es nada complicado, pero te recomiendo que le eches un vistazo al manual de Pic Basic. Te explica todo lo que debes saber.
La instrucción para envío al LCD es LCDOUT. Busca en el manual y verás cómo es la sintaxis.
Recuerda que la idea de este foro es ayudar a personas que tengan ya avances listos.
Trata de montar lo que ya tienes hecho y buscar en el resto del foro, y si tienes duda por aquí estaremos.
El manual lo puedes descargar Aqui
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado brans

  • PIC10
  • *
  • Mensajes: 3
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #9 en: 02 de Junio de 2008, 15:42:12 »
muy agradecido amigos por su ayuda la verdad me estan ayudando mucho gracias.......esto haciendolo en proton
« Última modificación: 02 de Junio de 2008, 16:50:30 por brans »

Desconectado mancupic

  • PIC10
  • *
  • Mensajes: 13
Re: nesecito ayuda para usar el adc del pic 16f877 en pbp plus
« Respuesta #10 en: 03 de Junio de 2008, 15:20:20 »
 ;-) OK, despues nos contas como te salio... cualquier cosa nos encontramos aca!!!  :mrgreen:  :-) :-/