Autor Tema: problema con el A/D de pic16f876  (Leído 2002 veces)

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

Desconectado pentax30

  • PIC10
  • *
  • Mensajes: 11
problema con el A/D de pic16f876
« en: 23 de Febrero de 2005, 12:06:00 »
Buenas a todos:

Llevo poco en el mundo de los pic i despues de probar com ASM i Basic me he puesto ha porobar con C.

He probado un programa para leer un canal analogico concretamente el AN4 i mostrar el resultado por un LCD de 8 bits de datos i la puerta A para el control, todo funciona menos que por la entrada analogica i comprobando con un polimero digital tengo 4,99V sin nada conectado i por lo tanto la lectura siempre es la misma, he probado con otra entrada i parece que funciona bien, tambien tube el mismo problema con basic i se soluciono ampliando el tiempo de espera despues de realizar la configuracion.

Si alguien me puede decir porque pasa esto se lo agradeceria mucho me estoi volviendo locolocolocolocolocolocoloco

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: problema con el A/D de pic16f876
« Respuesta #1 en: 23 de Febrero de 2005, 12:25:00 »
¿No será que tienes configurado el pin como salida?
Revisa el registro TRISA

Desconectado pentax30

  • PIC10
  • *
  • Mensajes: 11
RE: problema con el A/D de pic16f876
« Respuesta #2 en: 23 de Febrero de 2005, 13:21:00 »
buenas nocturno66 No creo pues com otro canal funciona correctamente  adjunto  el codigo del programa, quizas exite algun error que no puedeo ver.

Puede ser que exista algun problema al utilizar el mismo puerto para salidas digitales i entradas analogicas??
Gracias por la ayuda

locoloco

#include "C:Documents and SettingsAdministradorMis documentosDocuments PICTreballs mPICPIC CEXERCICISEXERCICI4PIC16F87X-1PROGRAMA1.h"

#include <stdlib.h>
#include <lcd2.c>

// VARIABLES
long value3;
long value4;
float temperatura, humitat, tensioT, tensioH;

//CONFIGURACIO DELS PORTS
#use fast_io (a)
#use fast_io (b)
#use fast_io (c)

// RUTINA INTERRUPCIONS
#int_EXT
EXT_isr() {

}


void main() {

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);

while (1){
   setup_adc_ports(ALL_ANALOG);
   setup_adc(ADC_CLOCK_INTERNAL);

   set_adc_channel(4);
   delay_ms (500);
   value4 = read_adc();
   set_adc_channel(3);
   delay_ms (500);
   value3 = read_adc();

   setup_adc_ports( NO_ANALOGS );
   setup_adc( ADC_OFF );

   tensioT = value3 * (5.0/1023);
   tensioH = value4 * (5.0/1023);
   temperatura = 100 * tensioT;
   humitat = (tensioH-0.958)/0.0307;


   lcd_init();// Comandos de inicialización del LCD.

   lcd_enviar(LCD_COMANDO, LCD_CLEAR);//borrem el LCD
   lcd_enviar(LCD_COMANDO, LCD_HOME);//posem el cursor a la primera posicio
   lcd_putc("Hum AN4: "Giño;
   printf(lcd_putc,"%02.1f",humitat);

   lcd_gotoxy(1,2);
   lcd_putc("Temp AN3: "Giño;
   printf(lcd_putc,"%2.1f",temperatura);

   }
}

Desconectado victor_esp_1982

  • PIC10
  • *
  • Mensajes: 22
RE: problema con el A/D de pic16f876
« Respuesta #3 en: 24 de Febrero de 2005, 13:32:00 »
Me parece que tu error esque no has puesto la resistencia de pull-up que creo que necesita este pin. Revisa el manual del micro pq me  parece que hay esta tu error

Espero haberte ayudado

Desconectado victor_esp_1982

  • PIC10
  • *
  • Mensajes: 22
RE: problema con el A/D de pic16f876
« Respuesta #4 en: 24 de Febrero de 2005, 13:36:00 »
Hola compi

A pesar de estar un poco verde aun en esto, me parece que tu problema es que no has puesto la resistencia de pull-up que creo que hay q poner en este pin. Revisa el manual de tu micro pero creo q ahí esta tu error

Saludos y espero haberte ayudado

Desconectado oshow

  • PIC18
  • ****
  • Mensajes: 321
RE: problema con el A/D de pic16f876
« Respuesta #5 en: 24 de Febrero de 2005, 16:25:00 »
En principio no hay ningún problema en usar el canal A/D y el resto de pines del mismo puerto como E/S digitales, yo lo he hecho en alguna ocasión, en el foro encontrarás muchos ejemplos de como funciona el conversor A/D, e incluso en mi web tengo algo hecho.

Por otra parte, dices que estás con el canal AN4??, solo recordar que este canal está en el pin A5, no en el A4 donde efectivamente hay un pin en colector abierto. Recordar este pequeño detalle, porque a veces muchos picamos y no nos damos cuenta....Muchas risas


Un saludo.

Desconectado pentax30

  • PIC10
  • *
  • Mensajes: 11
RE: problema con el A/D de pic16f876
« Respuesta #6 en: 09 de Marzo de 2005, 01:15:00 »
Giño
Hola compañeros del foro quiero dar las gracias por la ayuda que he recibido, gracias a sus consejos he conseguido que el programa funcione correctamente.

alfinal lo que hice fue  añadir la instruccion  set_tris_a (0xFF); que configura todo el puerto A como entradas digitales.

Si me es posible intentare de aportar alguna rutina que pueda ser de ayuda, aunque mis conocimientos son  algo pobres, pues llevo poco  en el mundo de la programacion de PICs en C.

GRACIAS A TODOS.


 

anything