Convertidor A/D para termometro con PIC16f876a
| #1 Convertidor A/D para termometro con PIC16f876a |
| #2 |
|
kaldor
|
Bueno pues ya he conseguido configurar los puetos de entrada analogicos con:
setup_adc_ports( RA0_RA1_RA3_ANALOG ); aun asi no consigo leer la conversion individual de cada una de las entradas |
|||||||||||
|
|
||||||||||||
| #3 |
|
tiopepe123
Colaborador
|
Haces el ?
set_adc_channel(1); Mira el ex_admm.c C:\Archivos de programa\PICC\Examples Y aqui todas combinaciones que puedes configurar tu ADC (puedes abrirlos con el bloc de notas) C:\Archivos de programa\PICC\Devices Si quieres mejorar un poco mas en precision, puedes utilizar las REF o sea poner en A2 tension minima y A3 tension maxima. Con tres resistencias en serie calculas los margenes que te interesan, pero hay un limite La tension diferencial entre A2 y A3 debe ser de unos 2.5V si no interprete mal el datasheet. |
|||||||||||
|
|
||||||||||||
| #4 |
|
kaldor
|
Muchas gracias por la informacion tiopepe
pues no utilizo set_adc_chanel(1); por que al compilar me da error: undefined identifier set_adc_chanel mi progrma es el siguiente: #include<16f876.h> #device adc=10 #fuses HS,NOPROTECT,NOWDT #use delay(clock=4000000) #include <string.h> #include <lcd.c> #byte por_b=6 #ORG 0X1F00,0X1FFF{}// reserva la memoria para el bootloader int y; unsigned long int resultado,x; main() { lcd_init(); set_tris_b(0x00); setup_adc_ports( RA0_ANALOG ); setup_adc(ADC_CLOCK_INTERNAL); //set_adc_chanel(); da error resultado=read_adc(); while(1) { resultado=read_adc(); x=(resultado-559); y=x/2; delay_ms(10); printf(LCD_PUTC,"\f %d%cC",y,223); delay_ms(50); } } y sobre la tension de referencia no lo utilizo ya que uso la de 5v a 0v y que la tiene por defecto aunque la tensiones con las que voy a jugar son de 2.73v que en el lm335 son 0ºC hasta 3.73v 102ºC |
|||||||||||
|
|
||||||||||||
| #5 |
|
damianj84
|
No se nada de PICs, pero fijate que tiopepe123 te escribió channel con doble N, y no con N simple como lo escribiste tu.
|
|||||||||||
|
|
||||||||||||
| #6 |
|
kaldor
|
muy observador damian aveces los problemas son las cosas mas tontas
gracias^^ |
|||||||||||
|
|
||||||||||||
| #7 |
|
Paloky
|
A parte de la dos "n" del channel, tambien se tiene que poner el número entre parentesis correspondiente al número del convertidor que quieras leer.
|
|||||||||||
|
|
||||||||||||
| #8 |
|
tiopepe123
Colaborador
|
Pero que vista teneis...
Yo lo copie directamente del help. Tambien seria interesante meterle un set_tris_a(0xff); por si acaso |
|||||||||||
|
|
||||||||||||
| #9 |
|
kaldor
|
ya me funciona el programa prefectamente , gracias por vuestra ayuda
Saludos |
|||||||||||
|
|
||||||||||||
| #10 |
|
kaldor
|
Ya sabia yo que esto no iva a ser tan facil
Bueno pues el programa funciona correctamente en proteus y me saca las temperaturas por lcd, pero ahora estoy montando el circuito y no aparece nada en el lcd, se que este dispositivo necesita un tiempo entre instrucciones para que funcione bien y ya nose que hacer le he metido delays en casitodo el programa pero no consigo que se visualiza nada. el codigo es el siguiente: #include<16f876.h> #device adc=10 #fuses HS,NOPROTECT,NOWDT #use delay(clock=4000000) #include <string.h> #include <lcd.c> #byte por_b=6 #ORG 0X1F00,0X1FFF{}// reserva la memoria para el bootloader int y,w; unsigned long int resultado,x,resultado2,z; main() { set_tris_b(0x00); delay_ms(40); set_tris_a(0xff); lcd_init(); delay_ms(40); setup_adc_ports( RA0_RA1_RA3_ANALOG ); delay_ms(40); setup_adc(ADC_CLOCK_INTERNAL); delay_ms(40); while(1) { set_adc_channel(0); delay_ms(10); resultado=read_adc(); delay_ms(10); set_adc_channel(1); delay_ms(10); resultado2=read_adc(); delay_ms(10); x=(resultado-559); y=x/2; z=(resultado2-559); w=z/2; delay_ms(10); printf(LCD_PUTC,"\f %d%cC",y,223); printf(LCD_PUTC,"\n %d%cC",w,223); delay_ms(50); } } Agraderia cualquier detalle que pueda ser de ayuda . gracias |
|||||||||||
|
|
||||||||||||
|
| Temas de interés | |
|---|---|
| Sensor de temperatura | |
| Necesito un sensor de temperatura que lo lea la computadora | |
| Sobre sensor de temperatura | |
| Control de temperatura y humedad | |
| Control de temperatura | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 0.09998 segundos, Consultas = 13
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 0.09998 segundos, Consultas = 13

