Autor Tema: voltimetro de 0 5v  (Leído 2875 veces)

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

Desconectado lalodesant

  • PIC10
  • *
  • Mensajes: 5
voltimetro de 0 5v
« en: 12 de Junio de 2012, 13:18:10 »
buenos dias tengo que hacer un programa con pic c compiler, con el pic18f4550 me lo dejaron en la escuela y es para hoy :S tengo esto pero no voy muy bien si alguien me ayudaria seria un heroe(que superman nni q nada hahaha) de antemano gracias señores. no me compila esto.

#include <18F4550.h> //
#device adc=10
#fuses hs,nolvp,nowdt,noprotect
#use delay (clock=20000000) //Declaración del cristal que se ocupa para la operación.

int valor_adc;

inicializar()
{
 set_tris_b(0x00);
 set_tris_a(0x01);
 setup_adc(ADC_CLOCK_INTERNAL);
 setup_adc_ports(AN0);
 setup_adc_channel(0);
 valor_adc=0;
}

void main()
{
inicializar();
while(true)
{
valor_adc=read_adc();
delay_us(5);
ouput_b(valor_adc);
delay_us(50);
}
}

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: voltimetro de 0 5v
« Respuesta #1 en: 12 de Junio de 2012, 13:52:25 »
Hola lalodesant, bienvenido al foro.  No he revisado si el código es funcional, pero para que te compile de momento debes cambiar a:

Código: [Seleccionar]
setup_adc_channel(0);por:
Código: [Seleccionar]
set_adc_channel(0);y:
Código: [Seleccionar]
ouput_b(valor_adc);por:
Código: [Seleccionar]
output_b(valor_adc);
Saludos!

Desconectado lalodesant

  • PIC10
  • *
  • Mensajes: 5
Re: voltimetro de 0 5v
« Respuesta #2 en: 12 de Junio de 2012, 14:29:22 »
cierto gracias pero ahora el resultado lo kiero poner en un display de 7 segmentos sin punto decimal algo facil pero nesesito ayuda por favor t agradeceria demasiado pic18 si me dices como poner el valor en un display (ya tengo el sistema minimo) graciassss

Desconectado sancarajo

  • PIC10
  • *
  • Mensajes: 3
Re: voltimetro de 0 5v
« Respuesta #3 en: 23 de Junio de 2012, 10:36:55 »
cierto gracias pero ahora el resultado lo kiero poner en un display de 7 segmentos sin punto decimal algo facil pero nesesito ayuda por favor t agradeceria demasiado pic18 si me dices como poner el valor en un display (ya tengo el sistema minimo) graciassss
Buenas, para ponerlo en un display tenes que hacer un par de cosas. Primero,  el valor que te entrega el conversor adc es de 10 bits, osea 2 ^10 = 1024 valores diferentes y vos solo queres 5 (de los 5 volts) asi que tenes que ajustar esto. Para ajustarlo podes hacer 1024/5 = 204.8 y entonces siempre dividir el read adc por este valor. Despues de hacer esto, el read te va a dar entre 5 valores y solo tenes que traducirlo con alguna fucion para q te lo muestre en un display. Para hacer esto podrias armarte una funcion con un switch y tantos case como numeros quieras mandar (en tu caso del 0 al 5) que contengan los 1 y 0 a mandar al output para q se lea el nro en el display