TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pendexgabo en 27 de Febrero de 2004, 09:51:00
-
buenas, hace unos dias realice una fuentes regulada con un LM350, y andaba con ganas de ponerle un voltimetro, para tener una buena referencia de la tension que estoy utilizando, el tema es que me la paso buscando y no encuentro nada de como hacer una conversion analogica con un 16f876A para poder utilizarlo como voltimetro y expresar el valor de la tension en un display de 7 segmentos.
Como hago, si el pic trabaja de un rango de tension desde 0 a 5v y yo tengo en mi fuente 1.2 a 25.2 volt´s.
desde ya gracias
-
Que tal con un montaje con un amplificador operacional?? Le calculas el cero para 1,2 y el span para 25,2. Aunque si amplias un poco el rango tanto por abajo como por arriba no estaría mal, por si acaso alguna vez tu fuente entrega más o menos. El cero lo haces coincidir con 0v y el span pues lo que más te guste. Si tienes una referencia de 2,5 pues ese. Dependen de la Vref que uses.
-
Buenas:
Algo asi estuve probando,para luego medir temperatura,pero lo voy a adaptar a voltimetro hasta 50 volts, lo unico que va a estar escrito en basic,si les interesa lo puedo subir en el subforo de basic.-
Jorge
-
Buenas
Lo prometido
Este es el programa de un voltimetro de 0 a 50 volts.-
Se ensayo linealidad con un tester fluke 189 y la mantiene.-
Las conexiones son las siguientes:
entrada de tension: a través de un divisor resistivo formado por
una resistensia de 47k en serie con un preset de 10k,del punto
medio del preset se conecta a RA0 poniendo en serie una resistencia
de 1k como proteccion de la entrada y un capacitor de 1micro en
paralelo a masa como filtro de entrada.-
A puerto B van conectados 3 displays de 7segmentos catodo comun
coincidiendo los segmentos de a-f con b0 a b6 (conectar en serie
con los segmentos resistencias de 470ohm)
Cada catodo comun va conectado al colector de transistores 2a238
cuyos emisores van a masa,las bases de los transistores se
conectan a través de resistencias de 10k al portc,0 para el
digito menos significativo (decimas de volt),portc.1 para unidades
de volt y portc,2 para decenas de volt.-
Espero que alguien dibuje el esquematico y/o el pcb.-
Saludos
Jorge
"****************************************************************
"* Name : voltim_876.BAS *
"* Author : Jorge ansuini *
"* Notice : Copyright (c) 2004 jorge ansuini *
"* : All Rights Reserved *
"* Date : 27/02/2004 *
"* Version : 1.0 *
"* Notes : voltimetro com display multiplexado y 16f876 *
"* : FUNCIONA *
"****************************************************************
define osc 8
digit1 VAR Byte
digit2 VAR Byte
digit3 VAR Byte
veces var byte
cuenta var word
cuenta2 var word
intermedia VAR word
symbol digi1=portc.0
symbol digi2=portc.1
symbol digi3=portc.2
symbol digito=portb
TRISA = %11111111
ADCON1 = %10001110
ADCON0 = %11000101
TRISB = %00000000
TRISC = %00000000
inicio:
cuenta=0
for veces= 0 to 49
ADCON0.2 = 1
no_termino:
gosub display
IF ADCON0.2 = 1 Then no_termino
intermedia.highbyte = ADRESH
intermedia.lowbyte = ADRESL
cuenta=intermedia+cuenta
next veces
cuenta2=cuenta
gosub display
goto inicio
end
display:
digit3 = cuenta2 dig 4
digit2 = cuenta2 dig 3
digit1 = cuenta2 dig 2
LOOKUP2 DIGIt3,[63,6,91,79,102,109,125,7,127, 111],digito
high digi3
pause 1
low digi3
LOOKUP2 DIGIt2,[63,6,91,79,102,109,125,7,127, 111],digito
high digi2
pause 1
low digi2
LOOKUP2 DIGIt1,[63,6,91,79,102,109,125,7,127, 111],digito
high digi1
pause 1
low digi1
return
-
Hola, en una oportunidad, Jorge me paso un programita justamente para leer y promediar entradas, yo tenia que leer entradas de 20 voltios, asi que le coloque un divisor de tension, similar a lo que explica Jorge, pero, por seguridad, coloco un diodo, desde el pin de entrada, con el catodo apuntando a +5v... y esto, si por algun motivo, se supera la tension de entrada, se polariza el diodo, y la corriente circula hacia la fuente, y no destruye la entrada del pic....

Un abrazo
Norberto
-
buenas a todos y muchas gracias por sus rapidas respuestas, jorgeansuini me harias el favor de subirme el codigo compilado, ya que no poseo ningun compilador en basic. por mi parte, en cuanto pueda solucionar un problema que tengo con un virus voy a poner manos a la obra para poder hacer la placa y el esquematico del circuito.
saludos a todos.
-
bueno ejmc me mando el codigo compilado, pero cuando lo quise proabr e proteus con la configuracion del puente resistivo que jorge me indico no andubo nada, en realidad realiza una conversion pero no muestra la tension que yo le inyecto, les mando el circuito simulable en proteus al que le interese es que no hay mas espacio en el foro (¿¿alguien sabe donde lo puedo ubicar??) para que se fijen los errores y tambien les adjunto el .hex
nos vemos, espero alguna novedad
-
Ponlo aquí: http://miarroba.com/foros/ver.php?id=256746
-
porcher, ya lo subi a la dirrecion que me mandades, espero que vos puedas hacer algo, saludos
gabriel
-
Hola a todos
Me interesa el circuito del voltimetro digital, intente abrir el archivo del proteus y no lo logro, tiene alguien el esquema en jpg...
-
te lo mande por privado
si no te funciona lo paso a jpg pero primero fijate
saludos
-
Ya logre abrirlo con el proteus, lo unico que no me da valores correctos en los digitos, me va muy lento , mirare a ver de que puede ser..
SALUDOS..
-
Hay bastante parte del codigo que no entiendo, me podrias indicar donde descargar un manual en castellano reciente, el que tengo es el del picbasic pro 2.33 y notiene o yo por lo menos no veo como leer valores analogicos....
SALUDOS..
-
lamento desilucionarte pero no manejo basic. solo C y asembler mas o menos, pero por ahi alguno de los genios de por aca te puede ayudar..
saludos
-
Hola Gente...
Me interesa este proyecto ya que tengo que hacer un voltímetro con varias entradas seleccionables por reles para un barco.
Agradecería si me mandan el jpg del esquema y alguien me dice con que versión de PicBasic Pro usaron para compilar el código, ya que no me larga error en las lineas "intermedia.highbyte = ADRESH y intermedia.lowbyte = ADRESL" al no reconocer "ADRESH" y "ADRESL".
Muchas gracias....