Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

05/11/2009 #1


Como agregarle medidor de voltaje
Hola a todos espero que esten bien,
Lo primero quería pedir ayuda con un proyecto que estoy realizando con un pic16f877a mido temperatura este es el programa:
///////////////////////////////////////////////////
#include "16f877.h"

#device adc=10 //Usa resolución de 10 bits
#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(); //Inicia LCD
lcd_putc(" Termometro\n"); //Saca texto
lcd_putc(" con LM35"); //Saca texto
delay_ms(2000);
lcd_putc("\f"); //Limpia pantalla
lcd_putc("Temperatura\n"); //Saca texto
lcd_putc("actual"); //Saca texto
delay_ms(1000);
lcd_gotoxy(14,2); //Acomoda cursor LCD
lcd_putc("oC");

while (1)
{

lcd_gotoxy(8,2); //Acomoda cursor LCD
lcd_putc(" "); //Limpia ese sector de pantalla
lcd_gotoxy(8,2); //Acomoda cursor LCD


setup_adc (adc_clock_internal);

setup_adc_ports (all_analog);

set_adc_channel (0); //Elige canal a medir RA0
delay_us (20);
medicion=read_adc (); //Hace conversión AD
setup_adc (adc_off); //Apaga ADC

temper=medicion*(0.48875); //Pasa binario a °C

//////////////////////////////////////////////////////////////////////////////////
// el "0.48875" sale de dividir 5/1023 y el resultado de eso multiplicarlo por 100
// el 5 sale de los 5 voltios aplicado a el voltage de referencia, los 1023 salen
// de los 10 bit de resolucion del conversor analogico digital que seleccionamos.
// Si utlizaramos la resolucion de 8 bist del conversor analogico digital, la
// formula fuera (5/255)*100 ya que con 8 bits el numero maximo posible es de 0-255
//////////////////////////////////////////////////////////////////////////////////

printf(lcd_putc,"%02.1f",temper); //xxx.x °C
delay_ms (1000);
}
}


El programa ya esta probado con el proteus

Mi problema es que ocupo que mida voltaje un aproximado de de 400vcd, esa seria mi pregunta me seria mucha ayuda sus consejos.
Se acepta libros o teorías para realizar el proyecto
Nota:
Este programa lo conseguí navegando por Internet
05/11/2009 #2

Avatar de iDan

Respuesta: Como agregarle medidor de voltaje
A ver a ver... quieres medir temperatura y voltaje verdad?? y quieres que mida un voltaje maximo de una linea de 400VDC?? es asi o me equivoco?? bueno el primer paso seria "reducir" por asi decirlo los 400VDC a 5VDC que seria la entrada analogica del PIC... lo primero un divisor de tension: Vx*RT=Vt*Rx; te aconsejaria que uses una R fija de 1MΩ y ya tu puedas sacar la resistencia donde tendras los 5VDC para el PIC, claro tomando en cuenta la potencia y demas... mmm... lo segundo seria separar los 1023 datos de entrada analogica y desglosar esto en tus unidades, decenas y centenas por medio de divisiones y modulo (%) que es muy util en este caso; ya todo lo demas es facil; la verdad no estoy seguro de lo que en verdad preguntas pero a lo que yo entendi esta es mi respuesta, corrije si estoy equivocado y si quieres vuelve a plantear tu pregunta... perdon si no le entendi!!


Saludos
09/11/2009 #3


Respuesta: Como agregarle medidor de voltaje
yo creo que si lo entendiste lo que quiero programar es un pic que mida temperatura y voltaje y lo muestre todo en el LCD.

Tu idea es crear un divisor de tensión mmm pero de 5V si hago eso no aparesera en el LCD que muestra los 400v asi que son las instrucciones (%) todavia soy nuevo en los pic????? gracias por la ayuda
09/11/2009 #4

Avatar de iDan

Pequeño ejemplo de un voltimetro
(Asi lo interpreto yo) Tu quieres que con el mismo PIC puedas medir temperatura y voltaje verdad? ok ok entonces la parte de la temperatura ya la tienes, muy bien y ahora quieres la parte del voltaje, mira el divisor de tension es para no quemar la pata del PIC ya que meterle 400VDC a un PIC hara que este arda en llamas (hahaha) y entonces para eso hacemos el divisor... para que ahora los 400VDC que tu tienes pasen a equivaler (no que se reduzcan) a 5VDC que es mas seguro para el PIC... entonces los 400VDC que midas apareceran en la LCD sin ninguna variacion ok? bueno en el caso del modulo (%) es el residuo de dividir un numero entre otro... 5/2=2 y el residuo de esta division seria 1... entonces 5%2 = 1, digamos que el divisor ya lo tienes... bueno ahora toca la parte del PIC... yo programo en MikroC no se si te sirva de mucho pero me imagino que la idea que yo te exprese la sabras manejar en tu compilador:

son 1023 datos de entrada analogica, ya tenemos la equivalencia de voltaje:

Suponiendo que recibimos el dato en la primera pata analogica (ver datasheet) entonces:

Código:
/*En MikroC seria:*/
/*Voltimetro 0 a 10*/

int dec,uni,decimal,dato,aux;
void main()
{
ANSEL=1;
ADCON1=0x80;
TRISA=1;
TRISC=0;
while(1)
{
dato=ADC_Read(0)        /*entrada analogica 0 (ver datasheet)*/
aux=dato/102.3;  /*division perfecta para marcar rango de 0 a 10*/
dec=aux/10;       /*division para extraer decimal del dato anterior*/
uni=aux%10;      /*modulo (residuo de la division) para extraer unidades*/

/*luego ya con los datos concretos almacenados en variables y desglosados segun su valor (decenas=dec y unidades=uni) haces tu codigo para mostrar tambien en la LCD*/

}
}
Bueno creo que este es un ejemplo para comprender mejor como hacer un voltimetro con PIC, si tienes alguna otra duda puedes postearla y yo tratare la manera de ayudarte en lo que pueda ok??


Saludos inu789
10/11/2009 #5


Respuesta: Como agregarle medidor de voltaje
gracias voy a intentarlo
05/08/2012 #6


Pregunta
Hola iDan. Soy nueva aqui y quisiera preguntar algunas cosas.

Primero no se porque a mi no me copila el codigo que pusiste. Uno de los errores que no entiendo es porque dice que no lo declare o algo asi el ANSEL. Me salen muchos mas errores y he probado con otros codigos y un amigo le pasa lo mismo. La verdad es que no se mucho de pic. Ademas yo estoy haciendo un detector de mentiras y lo unico que me hace falta para terminarlo es el codigo del pic que es 16F84A. No se si me puedes ayudar u orientar en algo porque estoy perdida y es para el martes 7. Ayudame porfa....
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.