Google Búsqueda personalizada

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

covertidor a/d de 16f870

comentario del autor Mie Oct 14, 2009 4:48 am
   
Hola,a todos tengo un problema quiero colocar lm35 por la entrada AN4 pata 7 del 16f870 y no puedo ,pero si la coloco por AN0 pata 2 funcina correctamente ,alguna persona que me pueda ayudar.

este es cuando cofiguro AN0 como unica entrada
bsf RP0 ;Pasa a página 1
bcf RP1
movlw b'00011111' ;Configura puerto A
movwf ptoa
clrf ptob ;Puerto B completo como salidas (bus del LCD)
clrf ptoc ;Puerto B completo como salidas
movlw b'10001110' ;Configura los pines del Puerto A
movwf adcon ;AN0 como única entrada análoga
bsf RP1 ;Pasa a página 3
bsf RP0
bcf EEAREA ;Selecciona el banco de EEPROM de datos
bcf RP1 ;Pasa a página 0
bcf RP0
movlw b'01000001' ;Enciende y configura el convertidor A/D - Selecciona AN0 como entrada
movwf adcon



y esta cuando configuro AN6

bsf RP0 ;Pasa a página 1
bcf RP1
movlw b'00111111' ;Configura puerto A
movwf ptoa
clrf ptob ;Puerto B completo como salidas (bus del LCD)
clrf ptoc ;Puerto B completo como salidas
movlw b'10000010' ;Configura los pines del Puerto A
movwf adcon ;(la opcion que me da es habilitar todas las AN)
bsf RP1 ;Pasa a página 3
bsf RP0
bcf EEAREA ;Selecciona el banco de EEPROM de datos
bcf RP1 ;Pasa a página 0
bcf RP0
movlw b'01100001' ;Enciende y configura el convertidor A/D - Selecciona AN4 como entrada
movwf adcon



En donde me equivoco? desde ya muchas gracias.

mds2

Reputación

asistió a la solución Mie Oct 14, 2009 11:25 am
   
Hola, lo que veo es que tanto para seleccionar el canal AN.. o como para configurar las entradas como AD o digital, usas un registro llamado adcon, cuando en realidad las entardas se configuran con ADCON1 y el canal con ADCON0.
Si miras las hojas de datos el registro adcon no existe.
Saludos

sanric

Reputación

comentario del autor Mie Oct 14, 2009 2:41 pm
   
Gracias por responder ,te explico coloco adcon porque lo tengo declarado como:

ADCON equ 0x1F ;configuraciondel conversor A/D

mds2

Reputación

asistió a la solución Mie Oct 14, 2009 6:49 pm
   
Esta bien, pero entonces deberias poner el programa completo, cuando definis que entrada es digital o analogica, sigues usando el adcon que esta definido como vos decis con el valor 0x1f, y el registro que cambia esto es el adcon1 que tiene el valor 0x9f.

sanric

Reputación

comentario del autor Jue Oct 15, 2009 12:17 pm
   
Hola graciaspor la ayuda ,ya resolvi el problema, estaba mal configurado adcom 0, pero ten go otra pregunta en adcon 1 yo seleccione :0100
AN0 A
AN1 A
AN2 D
AN3 A
AN4 D
AN5 D

y utilizo AN1 y AN 1 como entredas analogicas, la entrada AN3 la puedo dejar libre o pongo alguna resistencia . El asembler es de un termostato de pagina de pablin que estoy modificando para tomar 2 temperaturas.

mds2

Reputación

asistió a la solución Vie Oct 16, 2009 7:59 am
   
Hola, no deberia causar problemas, puedes dejarla libre.

sanric

Reputación

comentario del autor Jue Oct 29, 2009 1:11 am
   
Hola tengo otro problema ,el control de temperatura funciona bien si presiono con los dedos,uno de los sensores para que tome temperatura,corta y enciende bien, pero si caliento cualquiera de los sensores con un soldador tipo cautin en el LCD aumenta la temperatura hasta unos 70c· y queda clavado en esa temperatura y lo mas estraño , es que al ir aumentando la temperatura en la lectura del otro sensor tambien va aumentando con una diferencia de 10c· ,menos, y cuando va enfriando el otro sensor tambien baja la lectura de este hasta que se estabilizan los dos a la misma temperatura.
Que puede estar pasando

mds2

Reputación

asistió a la solución Jue Oct 29, 2009 9:35 am
   
Hola, no entiendo bien, decime
que tipo de sensor estas usando.
los 2 sensores estan juntos?
No entiendo bien lo de apretar los sensores.
Sin acercarle nada caliente, que valor marca de temperatura,
es mas o menos la del ambiente donde estas.

Saludos

sanric

Reputación

comentario del autor Vie Oct 30, 2009 2:16 am
   
Hola ,lo tengo montado en un protoboard, los sensores son 2 lm35 en el lcd marcan 22c· a 24 c· y si es mas o menos la temperatura ambiente, los sensores estan separados unos 2cm uno de otro, lo de apretarlo es para darle temperatura , es decir lo programo para que corte a 33c· y funciona de maravilla, pero cuando le doy temperatura con el soldador, a uno de ellos , la temperatura en el lcd del otro tambien aumenta, sin embargo,mido la salida con el tester y es estable.

mds2

Reputación

asistió a la solución Vie Oct 30, 2009 8:12 am
   
Hola, estando a 2cm no es raro que al calentar uno, el otro varie tambien, lo raro es que la medicion con el tester no lo registre.
La medicion cambia en la misma relacion, en los 2 marca lo mismo?
Puedes tener un problema en el programa, prueba de asegurarte que la conversion termino antes de empezar la otra y pone en cero cualquier variable o registro que compartan las dos mediciones.
Si queres pone la parte del codigo que hace la conversion, lo podemos ver si hay algun error..
Saludos.

sanric

Reputación

comentario del autor Dom Nov 01, 2009 5:11 pm
   
Hola , ya pude resolver el problema colacandole unas demoras y funcina en apariencia biem,todavia no lo he probado a full,pero funciona dejo el adjunto ,lo que esta en azul son las demoras que le puse, (las demoras son grandes,por si las dudas, asi se toma su tiempo y no jode mas y aparte para que puierda tiempo entre toma y toma asi no es tan presiso en el display) si se puede mejorar un poco la conversion seria buenisimo ,Gracias.

conv.doc  (27.5 kb) -

mds2

Reputación

asistió a la solución Lun Nov 02, 2009 7:49 am
   
Hola, me alegro que hayas solucionado el problema, con respecto a la conversion esta bien, no se puede mejorar nada.

sanric

Reputación

comentario del autor Mar Nov 03, 2009 1:15 pm
   
Ok;muchicimas geacias.

mds2

Reputación



Hacer una pregunta

Boletín de Noticias

Reciba noticias de tecnología, tips de reparación y ofertas exclusivas.



Reglamento / P+F

Foros

Miembros / Expertos