TODOPIC
Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: Mikro-77 en 06 de Junio de 2013, 21:13:00
-
Hola mi pregunta es esa! como puedo simular un circuito con ADC? ya que hice una cimulacion con un lm35 un pic y un lcd y conecto vref+ a 5v y todo funciona pero si saco el voltaje de referencia funciona igual con los mismos valores de lectura del lm35, supongo que estoy haciendo algo mal... o no?! dejo el codigo y el circuito
saludos
#include "16f877.h"
#device adc=10
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#include "lcd.c"
#use standard_io (D)
void main (void)
{
float temper,medicion;
lcd_init();
lcd_putc(" Termometro\n");
lcd_putc(" con LM35");
delay_ms(2000);
lcd_putc("\f");
lcd_putc("Temperatura\n");
lcd_putc("actual");
delay_ms(1000);
lcd_gotoxy(14,2);
lcd_putc("oC");
while (1)
{
lcd_gotoxy(8,2);
lcd_putc(" ");
lcd_gotoxy(8,2);
setup_adc (adc_clock_internal);
setup_adc_ports (all_analog);
set_adc_channel (0);
delay_us (20);
medicion=read_adc ();
setup_adc (adc_off);
temper=medicion*(0.48875);
printf(lcd_putc,"%02.1f",temper);
delay_ms (1000);
}
}
el circuito pulsar aqui! (https://420fb5c2-a-62cb3a1a-s-sites.googlegroups.com/site/ronnyf7/p8/termometro.jpg?attachauth=ANoY7coh__D9oqff167xjYv2oYFzWXXgSI1cIDrr-Vsi4FfdEaVAVpXSjp2TFjWHZgsduiBzzJXFwvoZEx0BqD5sPd5ax4dsYWU4Ys-BUCYGRVCAZYc5luR0XJIomLOxN8pNBYxmVJkpJ_ap9O2m0v6puBscvt70e_u_quM0qFODhn25V3ZUKq2mB84bZ_9pY4QDINkOG8vvkB4-u0YBkitiwvD2iKRI5g%3D%3D&attredirects=0)
-
no necesitas apagar el ADC dentro de tu while, puedes activarlo antes del while y dejarlo así, y dentro de tu ciclo infinito solo realizas lecturas.
tu voltaje de referencia esta al Vdd del micro, si quieres usar una referencia externa tienes que indicarla al momento de configurar tu adc
-
Hola gracias por responder! y si! ese detalle de apagar el ADC ya lo avia visto, este ejemplo no es mio pero estoy practicando con esto y lo de configurar la referencia te refieres a esto? setup_adc_ports( A0_ANALOG_RA5_REF ) está bien escrito asi?
-
se configura con los puertos, de la siguiente forma para tu ejemplo
SETUP_ADC_PORTS(AN0_AN1_VSS_VREF);
así queda con referencias entre tierra y el pin de referencia positiva
-
SETUP_ADC_PORTS(AN0_AN1_VSS_VREF); AN0 es VSS y AN1 es VREF+? y esa es la mejor forma de hacerlo? me refiero a la exactitud de la lectura final!
-
en la configuración que te puse quedan el an0 y el an1 como analógicos y la referencia positiva quedaría conectada al pin a3
-
Ha entendido! ahora si en la simulacion aunque cambie el voltaje de referencia del pin A3 la lectura es igual! en el circuito fisico si se notará si uso distintos valores de vref?
-
en hardware debería funcionar, no se si proteus respete la simulación de la referencia
-
por lo que veo no! pero queria saber si solo me pasa ami o a otros que usen proteus?!
saludos!